文章目录

  • 拓扑图与聚合图形
  • 创建拓扑图
  • 创建聚合图形
  • 自定义监控案例
  • 监控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(创建项目)。

zabbix中自动生成网络拓扑图 zabbix拓扑图动态展示_自定义

监控网络连接状态

  • 了解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