简介
zabbix proxy能够代替zabbix server检索客户端的数据,而后把数据汇报给zabbix server,而且在必定程度上分担了zabbix server的压力.zabbix proxy能够很是简便的实现了集中式、分布式监控.python
zabbix proxy使用场景:mysql
-
监控远程区域设备nginx
-
监控本地网络不稳定区域web
-
当zabbix监控上千设备时,使用它来减轻server的压力sql
-
简化zabbix的维护数据库
注意:缓存
zabbix proxy仅仅须要一条tcp链接到zabbix server,因此防火墙上仅仅须要加上一条规则便可.zabbix proxy数据库必须和server分开,不然数据会被破坏,毕竟这两个数据库的表大部分都相同。总之记住,数据库分开便可。网络
proxy收集到数据以后,首先将数据缓存在本地,而后在必定得时间以后传递给zabbix server.这个时间由proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定.app
zabbix proxy是一个数据收集器,它不计算触发器、不处理事件、不发送报警,以下是proxy的功能.socket
安装
下载依赖
yum install -y fping OpenIPMI net-snmp-agent-libs unixODBC
下载安装指定的rpm包
wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm rpm -ivh zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
mysql 库配置
不能跟server公用一个数据库
mysql> create database zabbix_proxy character set utf8; # 建立数据库 mysql> grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix'; # 建立受权用户 mysql> flush privileges; # 刷新受权表,虽然不须要 mysql> use proxydb;
Zabbix-proxy数据库只须要导入一条sql
# zcat schema.sql.gz $ gzip -d schema.sql.gz $ /data/app/mysql-3306/bin/mysql -uroot -pxxxx zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-4.0.5/schema.sql
在server端启动捕捉进程
#在Server执行.. sed -i 's/.*StartTrappers=.*$/StartTrappers=10/' /etc/zabbix/zabbix_server.conf service zabbix-server restart
Zabbix-proxy配置文件/etc/zabbix/zabbix_proxy.conf
修改配置文件/etc/zabbix/zabbix_proxy.conf Server=192.168.1.154 #填写Server的IP,Proxy会将收集到的数据发往这个IP。 ServerPort=10051 #proxy默认端口号,要实现转发的话使用这个选项 Hostname=web #在web端网页配置时须要用到,保持一致 DBHost=localhost #数据库,使用本地,也可使用ip DBName=zabbix_proxy #数据库名称,建立zabbix-proxy的mysql的数据库名称 DBUser=zabbix DBPassword=zabbix DBPort=3306 DBSocket=/data/appData/mysql-3306/mysql.sock #mysqlsock文件,默认是使用socket通讯的 ProxyLocalBuffer=0 #当数据发送到Server,还要在本地保留多少小时.不保留 ProxyOfflineBuffer=3 #当数据没有发送到Server,在本地保留多少小时,3小时。 HeartbeatFrequency=60 #心跳检测代理在Server的可用性 ConfigFrequency=3600 #代理多久从Server获取一次配置变化,默认3600秒. DataSenderFrequency=1 #这个是proxy端向server端发送数据的时间,单位是秒 ExternalScripts=/usr/lib/zabbix/externalscripts LogFileSize=0 PidFile=/var/run/zabbix/zabbix_proxy.pid SocketDir=/var/run/zabbix DataSenderFrequency=60 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log CacheSize=64M Timeout=10 LogSlowQueries=3000
web端建立proxy
若是你安装好proxy以后,咱们即可以在zabbix管理站点上配置proxy了.
ministration(管理) → DM(分布式监控)-->Create proxy(建立代理)
代理名称:bate_proxy # 与zabbix_proxy配置文件中Hostname=bate_proxy保持一致
代理模式:主动式
参数
参数 | 描述 |
---|---|
Proxy name | proxy名称,必须和proxy配置文件中的hostname一致 |
Proxy mode | 选择proxy模式 |
Active | proxy主动链接到zabbix server而且请求配置文件数据 |
Passive | Zabbix server链接到proxy |
Hosts | 哪些主机须要被proxy监控 |
zabbix-agent
安装agent
wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.5-1.el7.x86_64.rpm
配置proxy
egrep -v "^#|^$" /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=172.17.0.124 ServerActive=172.17.0.124 # 这里的ServerIP是用于Agent(主动)模式的. ListenIP=0.0.0.0 Hostname=nginx1 HostnameItem=system.hostname Include=/etc/zabbix/zabbix_agentd.d/*.conf
重启zabbix-agent
zabbix-web建立主机的时候要选代理名称。