Zabbix分布式监控

一.概述

zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。(摘自官网)

zabbix proxy 使用场景:

监控远程区域设备
监控本地网络不稳定区域
当 zabbix 监控上千设备时,使用它来减轻 server 的压力
简化分布式监控的维护



zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可

分布式监控原理
proxy收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由proxy配置文件中参数ProxyLocalBuffer和 ProxyOfflineBuffer决定。

二.实践配置

环境说明:
zabbix-server 处于外网,zabbix-agent 处于各个地方的内网,各地的内网都是互通的。其中有一台内网服务器既可以和内网通信,也可以和外网进行通信。
实践场景与地址分配

1.操作配置

1)zabbix-server端
这里省略,之前已有安装好的。
2)zabbix-proxy端安装。

#下载安装包
[root@sh-proxy ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@sh-proxy ~]# yum -y install zabbix-proxy-mysql
#安装数据库
[root@sh-proxy ~]# yum -y install mariadb-server
#启动数据库并设置开机自启
[root@sh-proxy ~]# systemctl start mariadb
[root@sh-proxy ~]# systemctl enable mariadb
#初始化数据库并创建数据库以及授权
[root@sh-proxy ~]# mysql_secure_installation
[root@sh-proxy ~]# mysql -uroot -p123456
MariaDB [(none)]> create database zabbix_proxy default charset utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix_proxy@'localhost' identified by 'zabbix_proxy';
Query OK, 0 rows affected (0.00 sec)
#导入数据
[root@sh-proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-4.0.16/
[root@sh-proxy /usr/share/doc/zabbix-proxy-mysql-4.0.16]# ls
AUTHORS  ChangeLog  COPYING  NEWS  README  schema.sql.gz
[root@sh-proxy /usr/share/doc/zabbix-proxy-mysql-4.0.16]#  zcat schema.sql.gz |mysql -uzabbix_proxy -pzabbix_proxy zabbix_proxy
#配置proxy连接数据库
[root@sh-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=10.0.0.71
Hostname=sh-proxy  #与主机名保持一致
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix_proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
#启动zabbix-agent
[root@sh-proxy ~]# systemctl start zabbix-proxy.service
[root@sh-proxy ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      7959/mysqld         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7127/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      7224/master         
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      8201/zabbix_proxy   
tcp6       0      0 :::22                   :::*                    LISTEN      7127/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      7224/master         
tcp6       0      0 :::10051                :::*        

2.server端 Web 配置

1)创建一个agent代理程序;进入:配置 -> agent代理程序 -> 创建代理



agnet代理名称(必须是zabbix-proxy上面的主机名),模式根据配置里面来定,代理地址(zabbix-proxy上面能和zabbix-server通信的地址)



2)配置zabbix-agent
[root@zabbix-agent ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.16.1.8
ServerActive=172.16.1.8
Hostname=172.16.1.7
Include=/etc/zabbix/zabbix_agentd.d/*.conf

3)添加主机
自动添加


手动添加


注意:根据实际需求配置数据同步和配置同步的频率,由于地域和网络的问题,配置有不同,自行配置即可。

你可能感兴趣的:(Zabbix分布式监控)