zabbix自定义TCP 11种状态监控模板(十四)

zabbix自定义TCP 11种状态监控模板

如果一直对多个主机同时增加监控项那么会非常麻烦,在实际生产中有很多时候我们都需要对一批机器同时增加多个相同的监控项,如果一个一个手动添加将会非常麻烦,因此就有了模板的诞生,我们只需要创建一个模板,让需要监控的主机链接模板即可

我们先手动实现监控项的大规模创建,然后再做成模板

我们以tcp11种状态为例进行添加监控项

tcp11中状态
ESTABLISHED
SYN_SENT
SYN_RECV
FIN_WAIT1
FIN_WAIT2
TIME_WAIT
CLOSE
CLOSE_WAIT
LAST_ACK
LISTEN
CLOSING

tcp三次握手、四次挥手概念图

img

三次握手:

​ 首先客户端处于close关闭状态,与服务器发送第一个SYN请求后(这个SYN请求会带一个seq随机序列),客户端处于SYN_SENT状态,服务器在接收客户端发送的请求的同时一定要处于listen监听状态,否则无法收到请求包,收到请求包之后处于SYN_RCVD状态,这时也会给客户端发送一个SYN的请求包(也有随机序列),并发送一个ACK的确认包(这里ACK的随机序列值就是客户端发送SYN的序列号+1),客户端收到这两个包后会处于ESTABLISHED状态,这时也会给服务器端发送一个ACK的包(这里ACK的随机序列值就是服务端发送的SYN序列+1),服务端收到后状态处于ESTABLISHED

注意这个状态的请求数如果很多会遭到ddos攻击

四次挥手:

​ 需要断开连接时时由服务端主动断开连接的,因为数据传输是服务端发起的,因此断开也是由服务器发起

​ 首先服务端给客户端发送一个FIN的请求包(表示要求断开连接),发送完成后服务端处于FIN_WAIT_1状态(_1只是为了和第二次挥手做一个区分)客户端收到后会发送一个ACK的确认包,发送完成后,客户端处于CLOSE_WAIT状态,服务端收到后会处于FIN_WAIT_2状态,这时客户端也会发送一个FIN的请求包,请求断开连接,客户端发送完成后悔处于LAST_ACK状态,服务端收到FIN请求包后会处于TIME_WAIT状态,这时会有一个2MSL时间(MSL时间为60s,2MSL就是120s),2分钟后会给客户端发送一个ACK的确认包,表示确认断开连接,客户端收到后会处于close状态,四次挥手完成

1.手动创建TCP11种状态监控项

1.1.创建自定义监控项key

1.批量获取tcp11种状态取值命令
[root@zabbix-server ~]# stata=(ESTABLISHED SYN_SENT SYN_RECV FIN_WAIT1 FIN_WAIT2 TIME_WAIT TIME_WAITCLOSE CLOSE_WAIT LAST_ACK LISTEN  CLOSING )
[root@zabbix-server ~]# for i in ${stata[@]}; do echo "netstat -anpt | grep -c "\'$i\'""; done
netstat -anpt | grep -c 'ESTABLISHED'
netstat -anpt | grep -c 'SYN_SENT'
netstat -anpt | grep -c 'SYN_RECV'
netstat -anpt | grep -c 'FIN_WAIT1'
netstat -anpt | grep -c 'FIN_WAIT2'
netstat -anpt | grep -c 'TIME_WAIT'
netstat -anpt | grep -c 'TIME_WAITCLOSE'
netstat -anpt | grep -c 'CLOSE_WAIT'
netstat -anpt | grep -c 'LAST_ACK'
netstat -anpt | grep -c 'LISTEN'
netstat -anpt | grep -c 'CLOSING'

2.批量获得key值
[root@zabbix-server ~]# for i in ${stata[@]}
> do
> echo "UserParameter=$i,netstat -anpt | grep -c "\'$i\'""
> done
UserParameter=ESTABLISHED,netstat -anpt | grep -c 'ESTABLISHED'
UserParameter=SYN_SENT,netstat -anpt | grep -c 'SYN_SENT'
UserParameter=SYN_RECV,netstat -anpt | grep -c 'SYN_RECV'
UserParameter=FIN_WAIT1,netstat -anpt | grep -c 'FIN_WAIT1'
UserParameter=FIN_WAIT2,netstat -anpt | grep -c 'FIN_WAIT2'
UserParameter=TIME_WAIT,netstat -anpt | grep -c 'TIME_WAIT'
UserParameter=TIME_WAITCLOSE,netstat -anpt | grep -c 'TIME_WAITCLOSE'
UserParameter=CLOSE_WAIT,netstat -anpt | grep -c 'CLOSE_WAIT'
UserParameter=LAST_ACK,netstat -anpt | grep -c 'LAST_ACK'
UserParameter=LISTEN,netstat -anpt | grep -c 'LISTEN'
UserParameter=CLOSING,netstat -anpt | grep -c 'CLOSING

3.在配置文件定义key值
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_agentd.d/tcp.conf
UserParameter=ESTABLISHED,netstat -anpt | grep -c 'ESTABLISHED'
UserParameter=SYN_SENT,netstat -anpt | grep -c 'SYN_SENT'
UserParameter=SYN_RECV,netstat -anpt | grep -c 'SYN_RECV'
UserParameter=FIN_WAIT1,netstat -anpt | grep -c 'FIN_WAIT1'
UserParameter=FIN_WAIT2,netstat -anpt | grep -c 'FIN_WAIT2'
UserParameter=TIME_WAIT,netstat -anpt | grep -c 'TIME_WAIT'
UserParameter=TIME_WAITCLOSE,netstat -anpt | grep -c 'TIME_WAITCLOSE'
UserParameter=CLOSE_WAIT,netstat -anpt | grep -c 'CLOSE_WAIT'
UserParameter=LAST_ACK,netstat -anpt | grep -c 'LAST_ACK'
UserParameter=LISTEN,netstat -anpt | grep -c 'LISTEN'
UserParameter=CLOSING,netstat -anpt | grep -c 'CLOSING

4.重启zabbix-agent
[root@zabbix-server ~]# systemctl restart zabbix-agent

1.2.页面创建监控项

找到我们的zabbix server主机,因为自定义key都是在zabbix server上创建的

所有监控项都是这么创建

点击创建监控项

在这里插入图片描述

名称:ESTABLISHED状态数量

键值:ESTABLISHED

应用集:tcp 11 state

在这里插入图片描述

所有监控项创建完成

在这里插入图片描述

2.将tcp11种状态做成模板并给主机群组所有主机应用

2.1.将监控项key配置文件推送至监控主机

[root@zabbix-server ~]# for i in 192.168.81.220 192.168.81.230
> do
> scp /etc/zabbix/zabbix_agentd.d/tcp.conf root@$i:/etc/zabbix/zabbix_agentd.d/
> ssh root@$i "systemctl restart zabbix-agent"
> done
Warning: Permanently added '192.168.81.220' (ECDSA) to the list of known hosts.
[email protected]'s password: 
tcp.conf                          100%  660   205.2KB/s   00:00    
[email protected]'s password: 
Warning: Permanently added '192.168.81.230' (ECDSA) to the list of known hosts.
[email protected]'s password: 
tcp.conf                          100%  660   708.3KB/s   00:00   
[email protected]'s password: 

2.2.建立模板

点击配置—模板—创建模板

在这里插入图片描述

2.3.添加监控项

点击创建监控项即可

在这里插入图片描述

2.4.将已有的监控项加入到模板中

找到刚刚创建的tcp11个监控项点击复制

在这里插入图片描述

目标类型选择模板—找到对应的模板

在这里插入图片描述

可以看到已经有监控项了

在这里插入图片描述

2.5.创建应用集

找到模板—应用集—创建应用集

在这里插入图片描述

2.6.将监控项添加到应用集中

全选监控项—批量更新

在这里插入图片描述

找到添加新的或者已经存在的应用进行选择应用集

在这里插入图片描述

2.7.创建图形

模板—图形—创建图形

在这里插入图片描述

填写图形信息

名称:tcp11中状态

监控项选择所有tcp监控项

在这里插入图片描述

点击添加

在这里插入图片描述

2.8.模板创建完成

在这里插入图片描述

2.9.给主机群组中的主机应用模板

192.168.81.220操作

点击配置—主机—模板—选择模板—添加

在这里插入图片描述

点击更新

在这里插入图片描述

192.168.81.230操作一致

2.10.监控项已经增加

在这里插入图片描述

2.11查看监控数据

监测—最新数据—选择主机—选择应用集

在这里插入图片描述

2.12查看图形

配置—图形—选择主机—选择图形

在这里插入图片描述

3.缩小不支持监控项等待时间

默认10m,我们修改为10s

管理—一般—选择其他—刷新不支持的项目

在这里插入图片描述

10s后不支持的会自动刷新
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44953658/article/details/114685559