目录

一、环境准备

二、网络连接状态介绍

三、自定义监控key

四、给主机添加监控项

一、环境准备

1、搭建zabbix基础环境

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监控端数据图:

 

相关文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。