zabbix-proxy分布式监控配置
1.分布式监控proxy介绍
分布式proxy经常用于公司有多个机房之间进行使用,比如zabbix-server在北京的机房,还有一个机房在上海,上海的机器也要监控,如果搭建两套zabbix监控系统维护起来将非常麻烦,但是使用同一套zabbix监控系统,上海的服务器与北京的服务器也不会通信,也不能吧上海的机器全部配成公网ip。
这时zabbix proxy分布式监控就可以完美的解决这个问题,只需要在上海机房搭建一个zabbix-proxy,定期的从zabbix-server上拉取监控项即可完成监控。
zabbix-proxy可以代替zabbix server收集性能和可用性数据,然后将数据汇报给zabbix-server,并在一定程度上分担了zabbix-server的压力。
zabbix-proxy也可以解决云主机和本地机房服务器之间的监控,思路是这样的:在本地机房搭建zabbix服务器,并配置一个公网ip,在云主机上搭建zabbix-proxy服务,并在zabbix-server上添加proxy程序,就可以把阿里云的机器一并监控过来。
2.环境准备
我们的实现目的就是通过zabbix-server去监控zabbix-agent,zabbix-server与zabbix-agent不再同一网段,但是zabbix-proxy有一块网卡可以与zabbix-agent通信
虚拟机我们都用的nat网卡,做的不同的LAN区段
网络配置
zabbix-proxy主机两块网卡,一个nat网卡,一个nat网卡但是要选择LAN区段为172网段
由于agent是172网段,因此可以通过proxy跳过去
proxy [root@zabbix-proxy ~]# cd /etc/sysconfig/network-scripts/ [root@zabbix-proxy network-scripts]# cp ifcfg-ens33 ifcfg-ens37 [root@zabbix-proxy network-scripts]# vim ifcfg-ens37 [root@zabbix-proxy network-scripts]# systemctl restart network [root@zabbix-proxy network-scripts]# ifconfig ens33 | awk '{if(NR==2){print $2}}' && ifconfig ens37 | awk '{if(NR==2){print $2}}' 192.168.81.70 172.16.10.100 agent [root@192 ~]# cd /etc/sysconfig/network-scripts/ [root@192 network-scripts]# vim ifcfg-ens33 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=172.16.10.110 NETMASK=255.255.255.0 [root@192 network-scripts]# systemctl restart network [root@192 ~]# ifconfig ens33 | awk '{if(NR==2){print $2}}' 172.16.10.110
3.安装zabbix-proxy
3.1.安装zabbix-proxy
[root@zabbix-proxy ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm [root@zabbix-proxy ~]# vim /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix Official Repository - $basearch baseurl=http://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-non-supported] name=Zabbix Official Repository non-supported - $basearch baseurl=http://mirror.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/ enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX gpgcheck=1 [root@zabbix-proxy ~]# yum -y install zabbix-proxy-mysql
3.2.导入zabbix-proxy数据库
zabbix-proxy数据库的数据和zabbix-server是一样的,但是需要不同的数据库,我们也不另外搭建mysql数据库库,直接在zabbix-server的mysql创建一个zabbix-proxy库来用,也方便本次学习完进行数据备份
zabbix-server操作 1.创建数据库 [root@zabbix-server ~]# mysql -u root -p123456 MariaDB [(none)]> create database zabbix_proxy; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix@'%' identified by '123456'; Query OK, 0 rows affected (0.00 sec) proxy操作 2.导入数据 [root@zabbix-proxy ~]# yum -y install mariadb [root@zabbix-proxy ~]# rpm -ql zabbix-proxy-mysql | grep sql.gz /usr/share/doc/zabbix-proxy-mysql-4.0.27/schema.sql.gz [root@zabbix-proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql-4.0.27/schema.sql.gz | mysql -uroot -p123456 -h 192.168.81.210 zabbix_proxy
3.3.配置zabbix-proxy1
1.配置zabbix-proxy [root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf Server=192.168.81.210 Hostname=zabbix-proxy1 DBHost=192.168.81.210 DBName=zabbix_proxy DBUser=zabbix DBPassword=123456 2.启动zabbix-proxy [root@zabbix-proxy ~]# systemctl start zabbix-proxy [root@zabbix-proxy ~]# systemctl enable zabbix-proxy
3.4.zabbix-server页面添加proxy1
点击管理—agent代理程序—创建代理
只填写proxy的名称即可
zabbix-proxy已经可用
3.5.添加agent并分配到zabbix-proxy1上
1)安装zabbix-agent并配置
注意:配置zabbix-agent的时候Server要指向zabbix-proxy的地址而不是zabbix-server的地址
[root@172_16_10_110 ~]# yum -y install zabbix-agent [root@172_16_10_110 ~]# vim /etc/zabbix/zabbix_agentd.conf Server=172.16.10.100 ServerActive=172.16.10.100 Hostname=172.16.10.110 [root@172_16_10_110 ~]# systemctl restart zabbix-agent.service
2)页面添加主机并分配到zabbix-proxy1
主机名称:172.16.10.110
可见名称:172.16.10.110
代理程序的接口:172.16.10.110 端口10050
agent代理程序监测:zabbix-proxy1
3)查看是否监控上
4)zabbix-proxy日志输出
[root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log