文章目录
- 拓扑图与聚合图形
- 创建拓扑图
- 创建聚合图形
- 自定义监控案例
- 监控Nginx服务状态
- 监控网络连接状态
拓扑图与聚合图形
创建拓扑图
- 创建拓扑
绘制拓扑图可以快速了解服务器架构,通过Monitoring(监控中)–>Maps(拓扑图),选择默认的Local network拓扑图,编辑即可(也可以新建一个拓扑图) - 拓扑图图表说明
– Icon(图标),添加新的设备后可以点击图标修改属性
– Shape(形状)
– Link(连线),先选择两个图标,再选择连线
– 完成后,点击Update(更新)
创建聚合图形
- 创建聚合图形
聚合图形可以在一个页面显示多个数据图表,方便了解多组数据。
通过Monitoring(监控中)–>Screens(聚合图形)–>Create screen(创建聚合图形)即可创建聚合图形
修改聚合图形参数如下:
Owner:使用默认的Admin用户
Name:名称设置为zabbixclient_web2_host
Columns:列数设置为2列
Rows:行数设置为4行 - 为聚合图形中添加监控图形
选择刚刚创建的聚合图形(zabbixclient_web2_host),点击后面的构造函数(constructor),点击Change(更改),设置每行每列需要显示的数据图表
自定义监控案例
监控Nginx服务状态
- 准备环境,部署nginx软件
安装nginx软件,开启status模块
./configure --with-http_stub_status_module
make && make install
cat /usr/local/nginx/conf/nginx.conf
… …
server{
location /status {
stub_status on;
}
… …}
curl http://192.168.2.100/status
Active connections: 1
server accepts handled requests
10 10 3
Reading: 0 Writing: 1 Waiting: 0
- 自定义监控key
语法格式:
UserParameter=key,command
UserParameter=key[],
key里的所有参数,都会传递给后面命令的位置变量
如:
UserParameter=ping[],echo $1
ping[0], 返回的结果都是0
ping[aaa], 返回的结果都是aaa
注意:被监控端修改配置文件,注意要允许自定义key并设置Include!
创建自定义key
vim /usr/local/etc/zabbix_agentd.conf.d/nginx.status
UserParameter=nginx.status[*],/usr/local/bin/nginx_status.sh $1
killall zabbix_agentd
zabbix_agentd
自定义监控脚本
vim /usr/local/bin/nginx_status.sh
#!/bin/bash
case $1 in
active)
curl -s http://192.168.2.100/status |awk '/Active/{print $NF}';;
waiting)
curl -s http://192.168.2.100/status |awk '/Waiting/{print $NF}';;
accepts)
curl -s http://192.168.2.100/status |awk 'NR==3{print $1}';;
esac
chmod +x /usr/local/bin/nginx_status.sh
测试效果:
zabbix_get -s 127.0.0.1 \
-k 'nginx.status[accepts]'
登陆Zabbix监控Web,创建监控项目item,点击Configuration(配置)–>Hosts(主机),点击主机后面的items(项目),点击Create item(创建项目)。
监控网络连接状态
- 了解TCP协议
熟悉TCP三次握手
熟悉TCP连接的四次断开 - 查看网络连接状态
模拟多人并发连接
ab -c 1000 -n 100000 http://192.168.2.100/
查看网络连接状态,仔细观察、分析第二列的数据
ss -antup
#-a显示所有
#-t显示TCP连接状态
#-u显示UDP连接状态
#-n以数字形式显示端口号和IP地址
#-p显示连接对应的进程名称
- 创建自定义key
注意:被监控端修改配置文件,注意要允许自定义key并设置Include。
vim /usr/local/etc/zabbix_agentd.conf.d/net.status
UserParameter=net.status[*],/usr/local/bin/net_status.sh $1
killall zabbix_agentd
zabbix_agentd
自定义监控脚本
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 -s 127.0.0.1 \
-k 'net.status[time_wait]'
- 监控netstatus
在监控服务器,添加监控项目item,Configuration–>Hosts点击主机后面的items,点击Create item