Zabbix的主动模式与被动模式的配置(zabbix5.0)#
如果有理解错误的地方恳求各位留言指出!!!谢谢
被动模式#
Zabbix默认使用被动模式监控主机,监控流程:
由Zabbix Server向Zabbix agent发出指令获取数据,即Zabbix agent被动的去获取数据并返回给zabbix Server,Zabbix Server周期性的向agent 索取数据,这种模式的最大问题就是会加大Zabbix Server的工作量,在数百台服务器的环境下Zabbix Server不能及时获取到最新数据,但这也是默认的工作方式。
被动模式配置文件:
PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
Server=127.0.0.1 # zabbix-server服务器端的IP地址
ListenPort=10050 #在此端口上侦听来自服务器的连接
ServerActive=127.0.0.1 # Zabbix服务器或Zabbix代理的IP
UserParameter=mysqlbak,/usr/bin/cat /data/mysql_backup/bak.txt #自定义监控项键值配置
Hostname=Zabbix server #web端主机名配置,需要两边保持一致,不然会报Not Found
主动模式#
由zabbix agent主动采集数据并返回给zabbix server,不再需要zabbix serve进行干预,因此主动模式在一定程度上可减轻zabbix server的压力。
主动模式配置文件:
LogFile=/tmp/zabbix_agentd.log
PidFile=/tmp/zabbix_agentd.pid
#Server=112.126.61.194 #主动模式时候注释
#ListenPort=10050 #主动模式时候注释
StartAgents=0 #则禁用被动检查,并且代理将不侦听任何TCP端口。ListenPort不被监听,用于主动模式
ServerActive=112.126.61.194 #主动模式时候 Server端或者Proxy端的IP地址
SourceIP=192.168.11.111 #传出连接的源IP地址
Hostname=k8s-master #Web端主机名配置,需要两边保持一致,不然会报Not Found
Timeout=30 #超时时间
UserParameter=mysqlbak,/usr/bin/cat /data/mysql_backup/bak.txt #自定义监控项键值配置
代理模式#
代理模式主要用于分布式监控,可用来分担server的负载,功能类似于server,agent也分主动被动模式,与上面配置区别在于将Server的IP替换为Proxy代理的IP地址,也可以用在跨机房跨地域进行监控。
配置文件:
ProxyMode=0 #改为主动模式
Server=192.168.7.100 # zabbix-server服务器端的IP地址
ServerPort=10051 # zabbix-proxy开启的端口
Hostname=zabbix_proxy_active # 主动模式的hostname(代理服务器名称)
ListenPort=10051 # 监听的端口
DebugLevel=3 # 日志级别
EnableRemoteCommands=1 # 允许远程连接
LogRemoteCommands=0 # 关闭log日志记录
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=192.168.7.103 # 数据库服务器地址
DBName=zabbix_proxy_active # 使用数据库的名称
DBUser=zabbix_proxy_active # 连接数据库的名称
DBPassword=123456 # 数据库的密码
ProxyLocalBuffer=720 # 已经提交到zabbix serverd的数据保留时间
ProxyOfflineBuffer=720 # 未提交到zabbix serever的数据保留时间
HeartbeatFrequency=120 # 心跳检测时间,默认是60s,被动模式不使用
ConfigFrequency=60 # 间隔多久时间从zabbix server获取监控数据(一般设置五分钟)
DataSenderFrequency=60 # 数据发送间隔时间,默认为1s。
StartPollers=20 # 启动数据采集器数量
JavaGateway=192.168.7.102 # zabbix-java-gateway主机的IP地址
JavaGatewayPort=10052 # gateway主机的端口
StartJavaPollers=20 # 启动多少个线程采集数据
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
ListenIP=0.0.0.0 # 监控IP地址
CacheSize=128M # 保留监控项占用的最大内存(生产中是2G)
HistoryCacheSize=128M # 保留监控历史数据占用的最大内存(生产中是2G)
HistoryIndexCacheSize=32M # 监控项历史数据的索引信息(生产中是2G)
Timeout=30 # 监控项超时时长,单位为秒
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000 #单位为毫秒,多久数据库查询会被记录到日志
AllowRoot=0 # 暂时不允许root登陆
User=zabbix # 允许zabbix用户登录
总结:主动模式与被动模式区别仅在于依照agent为参照物,谁先发起请求,
主动模式为agent向server请求监控项后把数据推送到server端,
被动模式为server端主动向agent端请求数据
代理模式则是proxy为server分担压力,降低负载,也可以用在跨机房跨地域进行监控,
比较重要的参数是ServerActive和Hostname,ServerActive是指定Agentd收集的数据往哪里发送,Hostname是必须要和Server端添加主机时的主机名对应起来,这样Server端接收到数据才能找到对应关系,如果有Server和ServerActive且没有StartAgents=0为兼容被动模式,没有把StartAgents设为0,如果一开始就是使用主动模式的话建议把StartAgents设为0,关闭被动模式