目录
一、环境准备
二、网络连接状态介绍
三、自定义监控key
四、给主机添加监控项
一、环境准备
zabbix基础环境部署参照:zabbix基础环境部署_桂安俊@kylinOS的博客-CSDN博客
2、给web1安装nginx环境,并加载status模块
以下实验部署均基于上述环境
二、网络连接状态介绍
1、TCP连接状态
建立连接的3次握手:
断开连接的4次握手:
2、查看网络连接状态
模拟多人并发连接:
#在zabbixserver向web1发送模拟并发数据
#如果没有命令则需要安装httpd-tools
ab -c 1000 -n 100000 http://192.168.2.20/ #最后一定要有反斜杠/ ,20是web1主机,主机环境详见前文《zabbix基础环境部署》
查看网络连接状态:
ss -antup #-a参数显示所有,-t显示TCP连接,-u显示UDP连接,-n以数字形式显示端口和IP,-p显示连接对应的进程名
如上,State列显示了主机的所有网络连接状态,我们可以用zabbix监控脚本来远程获取每种网络连接状态的数量值。
三、自定义监控key
(注意创建自定义监控key要在agent端/usr/local/etc/zabbix_agentd.conf里打开Include,前文环境已经设置过,这里不再重复)
被监控端修改配置文件:
vim /usr/local/etc/zabbix_agentd.conf.d/net.status
输入如下内容:
UserParameter=net.status[*],/usr/local/bin/net_status.sh $1
重启agent:
killall zabbix_agentd
zabbix_agentd
编写监控脚本net_statis.sh:
vim /usr/local/bin/net_status.sh
内容如下:
#!/bin/bash
case $1 in
estab)
ss -antp | awk 'BEGIN{x=0} /^ESTAB/{x++} END{print x}';;
close_wait)
ss -antp | awk 'BEGIN{x=0} /^CLOSE-WAIT/{x++} END{print x}';;
time_wait)
ss -antp | awk 'BEGIN{x=0} /^TIME-WAIT/{x++} END{print x}';;
esac
chmod +x /usr/local/bin/net_status.sh
测试zabbix_get:
在web1本地执行zabbix_get,测试能否获取:
zabbix_get -s 127.0.0.1 -k 'net.status[time_wait]'
zabbix_get -s 127.0.0.1 -k 'net.status[estab]'
zabbix_get -s 127.0.0.1 -k 'net.status[close_wait]'
四、给主机添加监控项
配置--->主机,找到目标主机web1,选中后面的监控项:
创建监控项:
自定义监控项名称,键值手动输入,并添加自己想要监控的参数:
保存后可以看到多了一个监控项net_status:
监控测试:
如下可以看到有数据过来:
可以在另一端主机比如zabbixservre使用ab进行并发访问测试:
#在zabbixserver端执行
ab -c 100 -n 10000 http://192.168.2.20/
查看zabbix监控端数据图: