zabbix代理服务器和高可用
参见部署Zabbix监控步骤详解
1.部署zabbix代理服务器
分布式监控的作用:
- 分担server的集中式压力
- 解决多机房之间的网络延时问题
agent --> proxy --> server
1.1 代理端zabbix-proxy配置
###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
(1)修改proxy代理的主机名,并将IP地址与主机名之间的对应关系加入到/etc/hosts文件中
###修改代理服务器的主机名
hostnamectl set-hostname zbx-proxy
vim /etc/hosts
###将以下IP地址与主机名之间的对应关系,分别加入到服务端和客户端的所有主机/etc/hosts文件中
192.168.80.20 zbx-server
192.168.80.20 zbx.gzy.com
192.168.80.40 zbx-agent01
192.168.80.30 zbx-agent02
192.168.80.10 zbx-proxy
(2)在服务端、客户端以及zabbix-proxy中设置计划性任务,每30分钟自动执行一次时间同步
crontab -e
###在所有主机中执行时间同步操作
*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com
(3)设置zabbix的下载源,安装zabbix-proxy
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy
(4)部署Mariadb yum源,安装并启动Mariadb数据库
#配置Mariadb yum源
cat > /etc/yum.repos.d/mariadb.repo << EOF
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
EOF
yum install -y mariadb-server mariadb
###启动数据库
systemctl restart mariadb.service
systemctl enable mariadb.service
netstat -lntp | grep 3306
(5)初始化数据库
mysql_secure_installation
分别输入 回车 -> n -> Y (设置root密码,如123) -> 后面一路 Y
mysql -u root -p123
创建数据库并指定字符集;
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
创建zabbix数据库用户并授权;
GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
导入数据库信息;
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -p123 zabbix_proxy
(6)修改zabbix-proxy配置文件
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.80.20 #32行,指定zabbix服务端的IP地址
Hostname=zbx-proxy #42行,指定当前zabbix代理服务器的主机名
DBPassword=zabbix #194行,指定当前数据库zabbix用户的密码
(7)在zabbix代理服务端,启动zabbix-proxy服务
systemctl start zabbix-proxy.service
systemctl enable zabbix-proxy.service
systemctl status zabbix-proxy.service
netstat