为zabbix增加支持传参的自定义监控项
例如使用zabbix来监控tcp的12种状态
tcp的12种状态可以通过man netstat来找到,即
LISTEN:等待从任何远端TCP 和端口的连接请求。
SYN_SENT:发送完一个连接请求后等待一个匹配的连接请求。
SYN_RECEIVED:发送连接请求并且接收到匹配的连接请求以后等待连接请求确认。
ESTABLISHED:表示一个打开的连接,接收到的数据可以被投递给用户。连接的数据传输阶段的正常状态。
FIN_WAIT_1:等待远端TCP 的连接终止请求,或者等待之前发送的连接终止请求的确认。
FIN_WAIT_2:等待远端TCP 的连接终止请求。
CLOSE_WAIT:等待本地用户的连接终止请求。
CLOSING:等待远端TCP 的连接终止请求确认。
LAST_ACK:等待先前发送给远端TCP 的连接终止请求的确认(包括它字节的连接终止请求的确认)
TIME_WAIT:等待足够的时间过去以确保远端TCP 接收到它的连接终止请求的确认。
TIME_WAIT 两个存在的理由:
1.可靠的实现tcp全双工连接的终止;
2.允许老的重复分节在网络中消逝。
CLOSED:不在连接状态(这是为方便描述假想的状态,实际不存在)
1、添加zabbix-agent配置文件,增加自定义监控项
[root@zabbix ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix zabbix_agentd.d]# ls
tps.conf userparameter_mysql.conf
[root@zabbix zabbix_agentd.d]# vim tcp.conf
UserParameter=tcp_state[*],netstat -ant|grep -c "$1" #参数用[]来引用,参数为*
[root@zabbix zabbix_agentd.d]# systemctl restart zabbix-agent.service #重启服务
2、模拟取值
[root@zabbix zabbix_agentd.d]# zabbix_get -s 127.0.0.1 -p 10050 -k "tcp_state[LISTEN]"
8
3、web界面添加监控项
点击:配置——>选择主机——>监控项——>创建监控项,添加需要创建的tcp的状态为监控项,将参数*换为具体的状态
tcp_state[ESTABLISHED]
tcp_state[SYN_SENT]
tcp_state[SYN_RECV]
tcp_state[FIN_WAIT1]
tcp_state[FIN_WAIT2]
tcp_state[TIME_WAIT]
tcp_state[CLOSE]
tcp_state[CLOSE_WAIT]
tcp_state[LAST_ACK]
tcp_state[LISTEN]
tcp_state[CLOSING]
tcp_state[UNKNOWN]
添加完一个监控项后,克隆添加的监控项继续添加其他的监控项
4、检查
点击:监测中,最新数据,过滤添加的主机和应用集,监控tcp的状态值已经成功添加
5、将自定义的监控项链接到新的模板
如果需要将自定义的监控将应用于多台机器,就可以选择将某个主机添加的监控项链接到新的模板
点击:配置——>模板——>创建模板,填写模板的名称,其中模板所在的群组为Templates
添加完成
为新添加的模板创建监控项
点击:配置——>主机,选择上面添加了自定义监控项的主机,过滤出添加的监控项,全选进行复制,复制到模板组,选择Temolates,复制成功后监控项就添加到了tcp_state_11模板中
为新添加的模板创建应用集
点击:配置——>模板,选择模板tcp_state_11,点击应用集,创建应用集tcp_state
点击:配置——>模板,选择模板tcp_state_11,点击监控项,全选,点击批量更新
勾选"添加新的或者已经存在的应用",选择创建的应用集tcp_state,点击更新
自定义监控项添加到模板基本完成。以后添加的主机除了在客户端添加配置文件外,可以选择模板来使用自定义的监控项,另外还可以根据需要创建触发器,图形等
博主原创文章,转载请务必注明出处