优点:
开源,无软件使用成本。
使用C语言编写,性能较好,与底层硬件贴合。
丰富的可视化选项。
内置多种监控模板,支持设备种类广泛。
配置简单,服务器端对设备要求不高,具有快捷的Web界面。
支持分布式监控,自动发现功能,实现自动化监控。
提供API接口,方便与其他系统结合。
完美支持Linux和Windows。
缺点:
需要在被监控端安装Agent,数据存储在数据库中,可能导致数据库成为瓶颈。
批量修改项目不方便。
缺少数据汇总功能。
Zabbix的Agent收集数据分为主动和被动两种模式:
主动模式: Agent请求Server获取监控项列表,并主动将监控项内需要检测的数据提交给Server/Proxy。
被动模式: Server向Agent请求获取监控项的数据,Agent返回数据。
监控项: 用于监测被监控对象的某一项数据,例如CPU使用率、内存占用等。
触发器: 当监控项的值达到设定的阈值时,触发器被触发,表示出现了异常或达到某种条件。
动作: 当触发器被触发时,执行一系列预定义的操作,例如发送邮件、短信、执行脚本等。
Zabbix的自动发现通过以下步骤实现:
在监控项上创建自动发现规则。
定义LLD(Low-Level Discovery)macros,将JSON数据中的监控项变成宏名称。
创建监控项模型,通过JSONPath获取数据,自动获取符合条件的监控项。
等待监控项采集,自动发现并生成监控项。
配置邮箱的POP3/SMTP/IMAP服务,获取授权码。
在Zabbix中配置报警媒介,设置邮件报警的相关参数。
进行手动测试,确保邮件报警设置正确。
配置动作,将触发器与用户报警媒介结合,实现触发报警时发送邮件通知。
优势:
支持分布式监控,适应大规模网络环境。
降低单点故障风险,提高系统可用性。
有效分担监控服务器负载,提高整体性能。
配置:
准备监控端、代理端、被监控端三台机器。
在代理端上配置相应的监控项,如MySQL等。
在代理端上下载Zabbix相关包。
配置代理端,使其允许被监控端使用代理。
将代理端加入监控服务器,创建相应的配置。
在监控服务器上创建相应的监控项、触发器等。
进行测试,确保分布式监控配置生效。
Zabbix 远程命令:
修改/etc/zabbix/zabbix_agentd.conf,启用EnableRemoteCommands=1。
重新启动Zabbix Agent。
配置访问权限,使用visudo添加zabbix ALL=(ALL) NOPASSWD:ALL。
在Zabbix Server端测试远程命令。
Zabbix Web 监控:
创建Web场景。
定义场景的步骤,配置场景监控的内容。
保存配置,完成Web监控场景。
查看并测试Web监控场景。
DingDing(钉钉):
在工作群里创建机器人,获取Webhook地址。
在监控端安装Python3环境。
创建报警脚本,通过Python调用钉钉机器人的API。
安装python-pip和requests库。
测试脚本是否可行。
在Zabbix配置报警媒介,添加用户并关联到报警媒介。
创建监控端,配置触发器,设置动作。
进行测试,确保报警配置生效。