1、zabbix配置文件 2、zabbix支持SNMP的协议探测 3、监控项(item) 4、触发器(trigger) 5、动作(action) ================================================================================================================================================ 1、zabbix_server.conf LogFileSize=0 # 是否让日志文件自动滚动 SourceIP= # 以哪个IP地址的身份去agent采取数据 AlertScriptsPath=/usr/lib/zabbix/alertscripts # 报警脚本路径 ExternalScripts=/usr/lib/zabbix/externalscripts # 外部脚本路径 FpingLocation=/usr/sbin/fping # 并行实现ping探测的程序路径 2、zabbix_agentd.conf ServerActive=127.0.0.1,172.18.26.1 # agent主动将监控数据sender给服务器端,此处定义的即是server的IP地址 EnableRemoteCommands=0 # 是否允许执行远程命令 RefreshActiveChecks=120 # 多久刷新一个监控项 ================================================================================================================================================ zabbix支持SNMP的协议探测 1、安装支持SNMP协议的包 yum install net-snmp net-snmp-utils 2、服务结构 /usr/lib/systemd/system/snmpd.service # 被监控端主机启动的服务 /usr/lib/systemd/system/snmptrapd.service # 监控端启动的服务 3、配置 vim /etc/snmp/snmpd.conf com2sec notConfigUser default public view systemview included .1.3.6.1.2.1.1 # 开放子树权限 view systemview included .1.3.6.1.2.1.2 # 网络接口相关数据 view systemview included .1.3.6.1.4.1.2021 # 系统资源负载 view systemview included .1.3.6.1.2.1.25.1.1 access notConfigGroup "" any noauth exact systemview none none 4、Note 监听端口:NMS:162 agent:161 手动获取数据示例: snmpget -v 2c -c public 172.18.26.2 .1.3.6.1.2.1.1.3.0 snmpget -v 2c -c public 172.18.26.2 .1.3.6.1.2.1.1.5.0 snmpwalk -v 2c -c public 10.1.0.2 .1.3.6.1.2.1.1 snmpwalk -v 2c -c public 172.18.26.2 .1.3.6.1.2.1.25.1.1 snmpwalk -v 2c -c public 172.18.26.2 .1.3.6.1.2.1.2.2.1.11.2 snmpwalk -v 2c -c public 172.18.26.2 .1.3.6.1.2.1.2.2.1.17.2 ================================================================================================================================================ 监控项(item) 1、监控项是zabbix服务器用于监控一个特定对象上的特定指标,并负责针对其他收集相关的监控数据。 例如:CPU每分钟的平均负载可以是一个item,每5分钟的平均负载是一个item,某特定的网络接口接收报文的速率又是一个item。 2、item item key:每一个item都有一个专用的key。zabbix服务器在与被监控的主机通信时,zabiix会询问被监控端item key的值。被监控端则调用与此key 相对应的脚本获取参数。 key的命名只能使用 0-9 a-z A-Z _ - . 字符。 key还可以接受参数,例如:system.cpu.load[,],中括号内为参数,按次序$1 $2进行引用。 还可以使用zabbix_get命令直接向agent端请求到key所对应的值,例如:zabbix_get -s 172.18.26.2 -p 10050 -k "system.uname" 3、数据计算(Show value) As is:不做任何处理 ================================================================================================================================================ 触发器(trigger) 1、每一个触发器仅能关联至一个监控项,但可以为一个监控项使用多个触发器。为一个监控项定义多个不同阈值的触发器,可以实现不同级别的报警功能。 一个触发器由一个表达式构成,它定义了监控项所采取的数据的一个阈值。 一旦某次采集的数据超出了此触发器定义的阈值,触发器状态将会转换"problem",而当采取的数据再次回归值合理范围内时,器状态将从新放回到"OK"。 2、触发器表达式格式 {:.()} server:主机名称 key:主机上关系的相应监控项 function:评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可根据采取的数据、当前时间及其他因素进行。触发器函数有:avg、count、 change、date、datofweek、delta、diff、iregexp、last、max、min、nodata、now、sum parameter:函数参数,大多数值函数可以接受秒数为参数,而如果在数值参数之前使用"#"作为前缀,则表示为最近几次的取值,例如:sum(30)表示300 秒内所有的取值之和,而sum(#10)则表示最近10此取值之和。 avg、count、last、min、max还支持使用第二个参数,用于完成时间限定。例如:max(1h,7d),表示返回一周之前的最大值 示例:{node1:system.cpu.load[all,avg1].last(0)}>3 表示主机上的所有CPU过去1分钟内的平均负载的最后一次取值大于3时将触发状态变换。 3、触发器依赖关系 主机的可用存在依赖关系。加入某一台主机发生故障停机,则主机之上所监控的item之上的触发器将不会被触发,只会接收到主机宕机的触发器。 这样做既有利于快速定位问题,也节省资源。 4、触发器等级 Not classified 位置级别,灰色 Information 一般信息,亮绿 Warning 警告信息,红色 Average 一般故障,橙色 High 高级别故障,红色 Disaster 致命故障,亮红 ================================================================================================================================================ 动作(action) 1、 conditon + operation 操作的命令(Remote command):被监控主机的zabbix监控进程是由zabbix用户的身份在运行,所以当由zabbix-server端发起一个让zabbix-agent端 执行的命令时,agent端是由zabbix的身份运行此命令,所有zbbix用户要有所要被执行的命令的权限。 此种场景下,应该给zabbix用户定义sudo规则。zabbix ALL=(ALL) ALL ; 将Defaults requiretty注释掉 注意:命令不支持active模式的agent;不支持代理模式;命令长度不超过255个字符;可以使用宏;zabbix-server仅仅 执行命令,不判定是否执行成功。 要使用remote command,必须在配置文件中使用 EnableRemoteCommand=1 配置项显示允许执行远程命令 此外,命令本身还要以sudo的方式运行 发送消息(Send message):发送消息的Media Type有Email、SMS、Habber、Script、EZ Texting AlertScriptsPath=/usr/lib/zabbix/alertscripts 指定了脚本放置的目录。Alert脚本中可使用$1 $2 $3 ...调用action中的 邮件收件人、default subject、default message中的内容。 2、配置Send message过程 定义Media 定义用户,配置权限;同时定义用户使用的Media 定义操作(action),指明当触发器触发时将信息发送给那个用户 ================================================================================================================================================