Zabbix 3.0 分布式监控 [九]

Zabbix Proxy是一个类似于代理的服务,可以代替Zabbix-server获取 zabbix-agent信息。其中数据存到本地(Proxy有自己的数据库)然后在发送给Server,这样可以保证数据不丢失 
  Zabbix-server ----->Zabbix-Proxy ----->Zabbix-Server 
  Zabbix 3.0 分布式监控 [九]
地址:https://www.zabbix.com/documentation/3.0/manual/distributed_monitoring/proxies

Zabbix Proxy 使用场景

  常用于多机房情况或者监控主机特别多,几千台左右。这时候使用Zabbix Proxy 可以减轻服务器server的压力,还可以减轻Zabbix的维护。 
  最常用的特点是适用于多机房网络不稳定的时候,因为如果直接由Zabbix-server发送信息可能agent没有收到,但是直接使用Zabbix-Proxy就不会遇到这个问题。 
   
Zabbix官方说明(分布式监控) 
Proxy 有如下功能 
Zabbix 3.0 分布式监控 [九]
地址: https://www.zabbix.com/documentation/3.0/manual/distributed_monitoring 
NO - 中文解释 
1.没有Web界面 
2.本身不做任何告警通知(告警通知都是Server做)

小结: 
  Zabbix Proxy 可以有多个,用来代理Zabbix server来运行。Proxy会将所有数据暂存于本地,然后同一转发到Zabbix Server上 
  Proxy只需要一条TCP链接,可以连接到Zabbix-server上即可。所以防火墙只需要添加一条Zabbix Proxy即可 我们可以参考上面的Zabbix Proxy图 
  Proxy是需要使用单独的数据库,所以不能将ServerAgent放在一起 
Proxy说明:https://www.zabbix.com/documentation/3.0/manual/distributed_monitoring/proxies 
安装文档:https://www.zabbix.com/documentation/3.0/manual/installation/install 
 官方文档使用的是源码安装,因为方便我们使用yum安装,因为我们只有2台,所以就用agent当做Proxy


  1. [[email protected]-node2 ~]# yum install -y zabbix-proxy zabbix-proxy-mysql mariadb-server
  2. 我们需要启动MySQL
  3. [[email protected]-node2 ~]# systemctl start mariadb.service

我们还需要创建一个


  1. mysql
  2. create database zabbix_proxy character set utf8;
  3. grant all on zabbix_proxy.* to [email protected] identified by 'zabbix_proxy';

我们需要导入数据


  1. [[email protected]-node2 ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.0.5/
  2. [[email protected]-node2 zabbix-proxy-mysql-3.0.5]# zcat schema.sql.gz | mysql -uzabbix_proxy -p zabbix_proxy
  3. Enter password:
  4. #密码是:zabbix_proxy 是我们数据库授权的密码

检查数据库


  1. mysql
  2. show databases;
  3. use zabbix_proxy;
  4. show tables;
  5. #查看是否含有数据

我们需要修改proxy的配置文件


  1. [[email protected]-node2 zabbix-proxy-mysql-3.0.5]# vim /etc/zabbix/zabbix_proxy.conf
  2. Server=192.168.56.11
  3. Hostname=Zabbix proxy
  4. DBName=zabbix_proxy
  5. #数据库名称
  6. DBUser=zabbix_proxy
  7. #用户名
  8. DBPassword=zabbix_proxy
  9. #用户密码
  10. 配置文件中没有配置的内容如下:(有需要可以配置)
  11. # ProxyLocalBuffer=0
  12. #数据保留的时间(小时为单位)
  13. # ProxyOfflineBuffer=1
  14. #连不上Server,数据要保留多久(小时为单位,默认1小时)
  15. # DataSenderFrequency=1
  16. #数据的发送时间间隔(默认是1秒)
  17. # StartPollers=5
  18. #启动的线程数
  19. # StartIPMIPollers=0
  20. #启动IPMI的线程数
  21. 从这往下都是性能的监控,就不一次说明了。 上面都有中文注释

过滤修改过的配置如下:


  1. [[email protected]-node2 zabbix-proxy-mysql-3.0.5]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
  2. Server=192.168.56.11
  3. Hostname=Zabbix proxy
  4. LogFile=/var/log/zabbix/zabbix_proxy.log
  5. LogFileSize=0
  6. PidFile=/var/run/zabbix/zabbix_proxy.pid
  7. DBName=zabbix_proxy
  8. DBUser=zabbix_proxy
  9. DBPassword=zabbix_proxy
  10. SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
  11. Timeout=4
  12. ExternalScripts=/usr/lib/zabbix/externalscripts
  13. LogSlowQueries=3000

启动


  1. [[email protected]-node2 ~]# systemctl start zabbix-proxy

查看proxy进程


  1. [[email protected]-node2 ~]# netstat -lntup
  2. Active Internet connections (only servers)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  4. tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 15685/mysqld
  5. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1073/sshd
  6. tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2498/master
  7. tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 15924/zabbix_proxy
  8. tcp6 0 0 :::44589 :::* LISTEN 9052/java
  9. tcp6 0 0 :::8080 :::* LISTEN 9052/java
  10. tcp6 0 0 :::22 :::* LISTEN 1073/sshd
  11. tcp6 0 0 :::8888 :::* LISTEN 9052/java
  12. tcp6 0 0 ::1:25 :::* LISTEN 2498/master
  13. tcp6 0 0 :::39743 :::* LISTEN 9052/java
  14. tcp6 0 0 :::10051 :::* LISTEN 15924/zabbix_proxy
  15. tcp6 0 0 127.0.0.1:8005 :::* LISTEN 9052/java
  16. tcp6 0 0 :::8009 :::* LISTEN 9052/java

Zabbix-proxy 监控10051端口,因为是代理就必须跟Server的端口相同,对于Agent Proxy就是Server

Zabbix Web 添加 
Zabbix 3.0 分布式监控 [九]
Zabbix 3.0 分布式监控 [九]
点击Add即可 
Zabbix 3.0 分布式监控 [九]
Zabbix 3.0 分布式监控 [九]
我们需要将这台主机的Server设置为Proxy 
编辑192.168.56.12 这台主机,需要将Server的IP地址修改成自己的 
因为现在是主动模式,我们只需要修改主动模式的Server即可


  1. [[email protected]-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf
  2. ServerActive=192.168.56.12
  3. #配置文件修改完需要重启
  4. [[email protected]-node2 ~]# systemctl restart zabbix-agent

这时候我们就可以看到那个proxy都管理了那些机器,做到方便管理的机制 
Zabbix 3.0 分布式监控 [九]
proxy简单的理解就是一个Server

完!