Zabbix 监控网络状态
一、TCP协议状态的监控
监控Linux系统中TCP协议各种状态的连接数;当某个状态数暴增时,有可能是遭到了攻击。帮助我们更加了解服务器的运行状态,尤其是在受到黑客攻击时。
1.1、Zabbix Client 配置文件修改
修改zabbix_agentd.conf文件;包含设置子文件zabbix_agentd.conf.d目录内容
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
在zabbix_agentd.conf.d目录下建立配置tcp_status.conf文件
UserParameter=tcp_states.established[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c established $1
UserParameter=tcp_states.syn_sent[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c syn_sent $1
UserParameter=tcp_states.syn_recv[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c syn_recv $1
UserParameter=tcp_states.fin_wait1[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c fin_wait1 $1
UserParameter=tcp_states.fin_wait2[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c fin_wait2 $1
UserParameter=tcp_states.time_wait[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c time_wait $1
UserParameter=tcp_states.closed[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c closed $1
UserParameter=tcp_states.close_wait[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c close_wait $1
UserParameter=tcp_states.last_ack[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c last_ack $1
UserParameter=tcp_states.listen[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c listen $1
UserParameter=tcp_states.closing[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c closing $1
UserParameter=tcp_states.unknown[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c unknown $1
UserParameter=tcp_states.[*],sh /usr/local/zabbix/scripts/tcp_states.sh -c $1 $2
1.2、Zabbix Client 添加脚本文件
脚本文件:tcp_states
1.3、Zabbix 管理界面配置
在Zabbix管理界面中导入模板文件,对需要检查的主机管理模板。
模板文件:tcp_status
二、套接字状态的监控
获取TCP/UDP协议套接字的状态信息。
2.1、Zabbix Client配置
在zabbix_agentd.conf.d目录下建立配置sockstat.conf文件
UserParameter=sockstat.netstat,netstat -ntu |sed 1,2d |awk '{print $5}'|cut -d: -f1 |sort |uniq -c |sed '1!d'|awk '{print $1}'
UserParameter=sockstat.sockets,cat /proc/net/sockstat|grep sockets|cut -d' ' -f 3
UserParameter=sockstat.tcp.inuse,cat /proc/net/sockstat|grep TCP|cut -d' ' -f 3
UserParameter=sockstat.tcp.orphan,cat /proc/net/sockstat|grep TCP|cut -d' ' -f 5
UserParameter=sockstat.tcp.timewait,cat /proc/net/sockstat|grep TCP|cut -d' ' -f 7
UserParameter=sockstat.tcp.allocated,cat /proc/net/sockstat|grep TCP|cut -d' ' -f 9
UserParameter=sockstat.tcp.mem,cat /proc/net/sockstat|grep TCP|cut -d' ' -f 11
UserParameter=sockstat.udp.inuse,cat /proc/net/sockstat|grep UDP:|cut -d' ' -f 3
UserParameter=sockstat.udp.mem,cat /proc/net/sockstat|grep UDP:|cut -d' ' -f 5
2.2、Zabbix 管理界面配置
在Zabbix管理界面中导入模板文件,对需要检查的主机管理模板。
模板文件:sockstat
三、TCP 端口Discovery 的监控
发现Linux系统监听的TCP协议端口,并监控此端口是否正常运行。
3.1、Zabbix Client配置
1、在zabbix_agentd.conf.d目录下建立配置tcp_port_discovery.conf文件
UserParameter=tcp.port.discovery,/usr/local/zabbix/scripts/tcp_port_discovery.py
2、编辑discovery发现系统监听的端口
脚本文件:见附件
3.2、Zabbix 管理界面配置
在Zabbix管理界面中导入模板文件。
模板文件和脚本文件:tcp_port_discovery