一、部署环境
服务器端
系统 | 版本 | IP | 注释 |
---|---|---|---|
centos | 7.6 | 192.168.3.6 | 最小化安装 |
软件 | 版本 | 用途 | 下载地址 |
---|---|---|---|
mysql | 5.7.28 | 数据库 | MYSQL官方下载地址 |
Bacula | 9.4.4 | 备份安装包 | Bacula官方下载地址 |
Baculum-API | 9.4.4 | web管理 | 通过yum安装 |
二、系统基础环境配置
2.1 关闭防火墙
(测试环境,生产环境开启相关端口)
# vi /etc/selinux/config //将SELINUX=enforcing改为SELINUX=disabled
# setenforce 0 //临时关闭,重启失效
# systemctl stop firewalld //关闭防火墙服务
# systemctl disable firewalld //关闭防火墙随机启动服务
2.2 安装基础软件包
#yum install -y wget lrzsz net-tools gcc gcc-c++ perl perl-devel //可以先安装wget后更新阿里源在安装比较快
软件 | 用途 |
---|---|
wget | 下载文件的工具,用于更换阿里源及下载软件包 |
lrzsz | 上传下载工具,用于把本地软件包上传到服务器 |
net-tools | 网络工具,bacula依赖。 |
gcc gcc-c++ | C 和 C++ 编译器,bacula依赖环境 |
perl perl-devel | mysql依赖的编译环境 |
三、Mysql5.7.28数据库安装
3.1 前期工作
centos7.6系统自带mariadb-libs(MariaDB/MySQL客户端所需的共享库),会与mysql-community-common包冲突必须卸载掉。
# rpm -qa|grep mariadb //查询是否安装及安装包名
mariadb-libs-5.5.64-1.el7.x86_64
#rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64 //--nodeps强制删除包
3.2 Mysql下载及官方说明文档
3.2.1官方下载
下载RPM Bundle完整包。保存本地后上传到服务器,也可用wget直接在服务器下载。
3.2.1官方文档说明
https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html本次使用YUM默认安装,如需其他参数可看官方文档。
3.3 数据库安装
3.3.1 上传解压
#rz //弹出上传窗户选择文件上传
#mkdir mysql //创建文件夹
#tar xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C mysql //解压到mysql文件夹
#cd mysql
#ls //可看到下图文件
3.3.2 YUM安装
#rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm mysql-community-client-5.7.28-1.el7.x86_64.rpm mysql-community-devel-5.7.28-1.el7.x86_64.rpm mysql-community-common-5.7.28-1.el7.x86_64.rpm mysql-community-libs-5.7.28-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
软件包 | 说明 |
---|---|
mysql-community-client-5.7.28-1.el7.x86_64.rpm | 数据库客户端 |
mysql-community-libs-5.7.28-1.el7.x86_64.rpm | MySQL客户端所需的共享库 |
mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm | 兼容库 |
mysql-community-server-5.7.28-1.el7.x86_64.rpm | 数据库服务端 |
mysql-community-common-5.7.28-1.el7.x86_64.rpm | MySQL配置 |
mysql-community-devel-5.7.28-1.el7.x86_64.rpm | 开发库 |
3.3.3 启动mysql服务
#systemctl start mysqld.service //启动mysql
#systemctl enable mysqld.service //添加开机启动
3.3.4 修改mysql密码
#grep "password" /var/log/mysqld.log //查看临时密码,复制随机密码
# mysql -uroot -p //进入数据库回车,黏贴密码进入
# mysql> set global validate_password_policy = 0 ; //验证策略改为最低
# mysql> set global validate_password_length=1; //修改密码长度
# mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; //设置新密码
3.3.5创建bacula 数据库帐号密码
#mysql>grant all privileges on *.* to bacula@'%' identified by 'bacula'; 创建bacula帐号
注释:bacula@'%' 允许远程登录,bacula@localhost 允许本地登录 。mysql5.7 '%'包含localhost
四、bacula安装
4.1 上传及安装
#rz 上传
#tar zxvf bacula-9.4.4.tar.gz
#cd bacula-9.4.4
#./configure --with-mysql //默认安装目录/etc/bacula 可自己定义路径 –prefix=/usr/local/bacula
#make && make install //注意看有没有报错
#make install-autostart //自动启动守护进程
4.2 配置数据库
#cd /etc/bacula //安装完后,进入安装后目录可看到以下文件
#./create_bacula_database -ubacula -pbacula -P 3306 //以bacula帐号创建数据库,这里是数据库刚创建的帐号密码。
执行成功会提示:Creation of bacula database succeeded.
#./make_bacula_tables -ubacula -pbacula -P 3306 //以bacula帐号创建数据库表,这里是数据库刚创建的帐号密码。
执行成功会提示:Creation of Bacula MySQL tables succeeded.
4.3 bacula配置文件修改
4.3.1 bacula-dir.conf配置
此配置文件为bacula的全局配置文件,定义了备份相关的所有配置信息。
#vi /etc/bacula/bacula-dir.conf
数据库资源配置
//查找到catalog{}位置,填入 dbpassword"数据库密码"
配置数据库信息
备份存储物理位置配置
//查找到Autochanger {}位置,填入Address="服务端IP" 有多个Autochanger需全部修改。
配置存储服务器IP
4.4 启动bacula
#/etc/bacula/bacula start //启动bacula
#/etc/bacula/bacula status //确认是否三个都起来
bacula-sd (pid 89518) is running...
bacula-fd (pid 89527) is running...
bacula-dir (pid 89535) is running...
进入bconsole控制台查看状态
#/etc/bacula/bconsole
* status
bconsole控制台
五、Baculum(api web)安装
5.1 添加存储库
添加baculum存储库,需选导入baculum公钥
#rpm --import http://bacula.org/downloads/baculum/baculum.pub
导入密钥后,下一步是添加存储库定义。首先,您必须创建以下文件:
#vi /etc/yum.repos.d/baculum.repo
对于CentOS 7,将以下内容黏贴在刚刚创建的文件中:
[baculumrepo]
name=Baculum CentOS repository
baseurl=http://bacula.org/downloads/baculum/stable/centosgpgcheck=1
enabled=1
5.2 安装Apache
# yum install -y httpd httpd-tools //此处可不执行,后面yum baculum会自动安装此依赖
#systemctl enable httpd //设置随机启动
5.3 安装PHP
本次安装版本php72w
# yum install -y epel-release //安装epel源,简单理解安装一个软件商店
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm //获取PHP7.0的yum源
# yum install -y php56w php56w-bcmath php56w-common php56w-devel php56w-gd php56w-mbstring php56w-mysqlnd php56w-xml php56w-pgsql
软件包 | 说明 |
---|---|
mod_php72w | Apache HTTP服务器的PHP模块 |
php72w-bcmath | 用于使用bcmath库的PHP应用程序的模块 |
php72w-common | PHP的公共文件 |
php72w-devel | 构建PHP扩展所需的文件 |
php72w-gd | 一个用于PHP应用程序的模块,用于使用gd图形库 |
php72w-mbstring | 一个PHP应用程序的模块,需要多字节字符串处理 |
php72w-mysqlnd | 用于使用MySQL数据库的PHP应用程序的模块 |
php72w-xml | 用于使用XML的PHP应用程序的模块 |
php72w-pgsql | 一个用于PHP的PostgreSQL数据库模块 |
5.3 安装baculumWeb及baculumAPI
# yum install -y baculum-common baculum-api baculum-web baculum-api-httpd baculum-web-httpd
baculum 分别提供httpd和lighttpd提供两种web服务。根据自己情况选择安装,本次安装httpd。
软件包 | 说明 |
---|---|
baculum-api | 带应用程序文件的 Baculum-API-main Baculum API 包 |
baculum-api-httpd | Apache HTTP Server配置文件 |
baculum-api-lighttpd | Lighttpd 服务器配置文件 |
baculum-common | Baculum API and Baculum Web 的常用文件 |
baculum-web | 应用程序文件的Baculum Web 包 |
baculum-web-httpd | httpd-Apache HTTP Server 的 Baculum Web 配置文件 |
baculum-web-lighttpd | Lighttpd 用于 Baculum Web 的 Web 服务器配置文件 |
5.4 Apache权限
配置Apache访问控制台目录权限,官网文档
#vi /etc/sudoers.d/baculum
复制黏贴以下内容
Defaults:apache !requiretty
apache ALL=NOPASSWD: /usr/sbin/bconsole
apache ALL=NOPASSWD: /usr/sbin/bdirjson
apache ALL=NOPASSWD: /usr/sbin/bsdjson
apache ALL=NOPASSWD: /usr/sbin/bfdjson
apache ALL=NOPASSWD: /usr/sbin/bbconsjson
重新启动ApacheWeb服务器:
#service httpd restart
查看端口,确认是否都起来:
#netstat -nltp
端口信息
5.5 WEB页面配置
5.5.1 配置API信息
从Web浏览器访问baculumAPI:http://localhost:9096首次登录:admin
第一次密码:admin
安装php72w 后打开网页提示错误
网页报错
:[Warning] session_start(): open(/var/lib/php/… failed: Permission denied
解决方法 提权
# chmod 777 /var/lib/php/session
A、配置数据库信息,数据库创建帐号bacula 此次设置密码bacula
API配置
B、配置控制台路径,如果测试没成功,可能访问权限问题,给Apache授权访问目录
# chown -R apache: /etc/bacula/ //Apache写入权限
控制台路径
C、配置各组件信息,Directory path for new config files 配置文件的目录路径: 默认在安装路径 /etc/bacula
组件信息
D、API链接信息
登录信息
E、完成API配置
完成AIP配置
5.5.2 WEB配置
从Web浏览器访问baculumWeb:http://localhost:9095首次登录:admin
第一次密码:admin
WEB配置
API配置
配置WEB登录信息
完成WEB配置
六、客户端安装
6.1 centos客户端安装
6.1.1 关闭防火墙(生产环境开启对应端口)
#systemctl stop firewalld
#systemctl disable firewalld
6.1.2安装依赖包
#rpm -qa | grep gcc* //检查gcc gcc-c++环境是否安装
#yum install -y gcc gcc-c++ //安装gcc gcc-c++
6.1.3 安装bacula客户端
#rz //上传之前下载的bacula软件包
# tar -zxvf bacula-9.4.4.tar.gz //解压
# cd bacula-9.4.4 //进入目录
# ./configure --enable-client-only //默认安装在/etc/bacula/目录下,也可以加--prefix= 指定安装路径, --enable-client-only只安装客户端
#make&&make install
6.1.4 客户端配置
只需配置/etc/bacula/bacula-fd.conf
#vi /etc/bacula/bacula-fd.conf
以下红色部分需修改,蓝色拷贝
Director {//与服务器端的bacula-dir.conf 内的第一个director名称一样//客户端自动生成密码
}
#
# Restricted Director, used by tray-monitor to get the
# status of the file daemon
#
Director {//与服务器端的bacula-dir.conf 内的console名称一样//与服务器端的bacula-dir.conf 内的console密码一样
Monitor = yes
}
#
# "Global" File daemon configuration specifications
#
FileDaemon { # this is me 定义客户端信息//定义客户端名称
FDport = 9102 # where we listen for the director
WorkingDirectory = /opt/bacula/working
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
Plugin Directory = /usr/lib64
}
# Send all messages except skipped files back to Director
Messages {
Name = Standard
director = zabbix-dir = all, !skipped, !restored
}
6.1.5 服务端配置
编辑服务器/etc/bacula/bacula-dir.comf,(也可WEB添加)
新增以下内容
Client { //此处定义的是一个客户端
Name = "zabbix-fd"
//定义cline的名称,用于JOB调用
Address = "192.168.3.8"
//需备份客户端主机的IP
FdPort = 9102
//需备份客户端主机bacula-fd.conf配置的端口
Password = "4dnxG0BYle3TGSnutkxV4xaasLe3mA7T6qbp9mp7xj62"
//客户端密码,客户端配置文件bacula-fd.conf里第一个Director的密码
Catalog = "MyCatalog"
//定义后台数据库,存储信息;
FileRetention = 5184000
//定义了文件信息在数据库的保存时间,如果AutoPrune为yes,bacula会自动清理,但是并不会删除备份数据;
JobRetention = 15552000
//定义了作业信息在数据库保留的时间,应该大于FileRetention指定的值;
AutoPrune = yes
//当达到指定的保持周期时,是否自动删除数据库中的记录,yes表示自动清除过期的Job
}