作用:
- 分担server的集中式压力
- 解决多机房之间的网络延迟问题
环境准备:
服务器1:zabbix-server
服务器2:zabbix-proxy
服务器3:zabbix-agent
关系:zabbix-agent发送数据到代理,代理汇总数据发送到server
操作步骤:
1.关闭某些设置
关闭server中的自动发现
关闭server中的自动注册
在配置—动作中(没设置自动注册)
2.server服务端无需变动,继续运行
3.配置代理服务器
- 配置zabbix5.0的yum源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm - 修改源地址
sed -i ‘s#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#’ /etc/yum.repos.d/zabbix.repo - 安装proxy,以及数据库和数据库客户端
yum install zabbix-proxy-mysql zabbix-get -y
yum install mariadb-server mariadb -y(提示已被mysql-community取代,就执行yum remove mysql-libs,再重新安装)
yum -y install mariadb-server mariadb mariadb-client mariadb-devel
4. 启动数据库
systemctl start mariadb
5. 进入数据库
mysql(默认没有用户名和密码)
6. 创建数据表
create database zabbix_proxy character set utf8 collate utf8_bin;
7. 授予所有的权限
在zabbix_proxy数据库以及里面所有的表,设置用户名zabbix的密码是zabbix
grant all privileges on zabbix_proxy.* to zabbix@‘localhost’ identified by ‘zabbix’;
8. 刷新mysql权限
flush privileges;
exit #退出数据库客户端
9. 导入zabbix_proxy数据库信息
rpm -ql zabbix-proxy-mysql #查询sql文件路径
zcat 查询到的sql.gz全路径 |mysql -uzabbix -pzabbix zabbix_proxy
10. 查看数据是否成功导入,看到有很有数据表即为成功
mysql -uzabbix -pzabbix
show databases;
use zabbix_proxy;
show tables;
exit
11. 修改zabbix-proxy配置文件,链接数据库的信息
sed -i.ori ‘162a DBPassword=zabbix’ /etc/zabbix/zabbix_proxy.conf
sed -i ‘s#Server=127.0.0.1#Server=server端ip地址#’ /etc/zabbix/zabbix_proxy.conf
sed -i ‘s#Hostname=Zabbix proxy#Hostname=代理服务器域名#’ /etc/zabbix/zabbix_proxy.conf
12. 检查代理服务器配置文件
grep ‘1’ /etc/zabbix/zabbix_proxy.conf
13. 重启服务器
reboot
14. 启动代理服务器
systemctl restart zabbix-proxy
systemctl status zabbix-proxy #查看是否启动成功,有绿色的active(running)即为成功
web页面添加代理
显示从未,可能是数据库没开启,开启数据库即可
agent使用proxy
- 页面设置使用proxy
- 修改agent端的配置
设置开机自启
1.给配置文件添加执行权限
sudo chmod +x /etc/rc.d/rc.local
2.打开配置文件
sudo vi /etc/rc.d/rc.local
3.在配置文件中添加两行内容
systemctl start mariadb
systemctl restart zabbix-proxy
4.保存退出配置文件
Esc
:wq
zabbix-server 启动不起来看日志有报错
1. 查看日志
tail -n 100 /var/log/zabbix/zabbix_proxy.log
cannot start alert manager service: Cannot bind socket to “/var/run/zabbix/zabbix_server_alerter.sock”: [13] Permission denied.
59422:20201224:001003.895 One child process died (PID:59459,exitcode/signal:1). Exiting
2. 关闭selinux
vi /etc/selinux/config
#修改配置文件永久关闭。
SELINUX=disabled
#临时关闭SELINUX
setenforce 0
3. 重启
systemctl restart zabbix-proxy
Zabbix_proxy重启无任何相关进程处理
通过系统命令查看proxy状态
原以为一切正常,但仔细查看zabbix有关服务时,却没有发现发现相应的proxy端口在使用。如图1、2.
图1
图2
那实际上zabbix_proxy是没在工作的。
对其日志文件进行查看
如图3.查看命令: tail -n 1000 /var/log/zabbix/zabbix_proxy.log #筛选最新的1000行数据进行查看。
图3
从最新的几行报错可以出看是数据库连接失败引起的问题。
查看数据库状态
systemctl status mariadb
图4.
-
a-Z ↩︎