zabbix-proxy使用配置

简介

zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式、分布式监控.

zabbix proxy使用场景:

  • 监控远程区域设备

  • 监控本地网络不稳定区域

  • 当zabbix监控上千设备时,使用它来减轻server的压力

  • 简化zabbix的维护

zabbix-proxy使用配置

注意:

zabbix proxy仅仅需要一条tcp连接到zabbix server,所以防火墙上仅仅需要加上一条规则即可.zabbix proxy数据库必须和server分开,否则数据会被破坏,毕竟这两个数据库的表大部分都相同。总之记住,数据库分开即可。

proxy收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给zabbix server.这个时间由proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定.

zabbix proxy是一个数据收集器,它不计算触发器、不处理事件、不发送报警,如下是proxy的功能.

安装

下载依赖

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创建主机的时候要选代理名称。

zabbix-proxy使用配置

上一篇:数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索


下一篇:C实现进程间通信(管道; 共享内存,信号量)