自定义监控项流程

1.Zabbix客户端,创建key(键值)与调试 自定义监控的核心

2.书写监控命令/脚本

3.调试Debug命令与脚本

4.写入到zabbix客户端配置文件中 UserParameter=key,command或脚本与调试 zabbix_get

5.Zabbix服务端web页面-点点点

6.Web页面添加/修改模板

7.Web页面分组

8.Web页面监控项-zabbix服务端是否可以获取数据

9.Web页面触发器 trigger- 什么时候报警

10.Web页面图形

Zabbix-客户端-通过命令取出对应的内容

通过命令或脚本取出 当前系统登录的用户数量

假设:zabbix默认无法直接取出系统的已经登录的用户数量。

who
root     pts/0        2025-04-27 13:41 (100.254.254.137)
root     pts/1        2025-04-27 16:03 (100.254.254.137)

who |wc -l
2

Zabbix-客户端-创建Key(键值)

zabbix键值相当于是一个命令(zabbix服务端可以识别的命令) ,获取zabbix客户端状态(数据/信息)

创建自定义key之前,思考 我们是否必须要创建,是否有现成的(zabbix 内置)

内置键值key: 通过 zabbix_agent2 -p 查看

用户自定义监控项:

用法:
UserParameter=<key>,<shell command>
#UserParameter=键值key, 命令或脚本

cd /etc/zabbix/zabbix_agent2.d/
cat usr_login.conf
UserParameter=sys.login,who |wc -l

重启客户端:
systemctl restart zabbix-agent2

#进行测试能否获取数据
yum install -y zabbix-get
zabbix_get -s 127.0.0.1 -p 10050 -k sys.login
2

创建监控项

我们新建模版,然后把新创建的监控项放到这个模版里面,这样在web界面每个主机只需要选择模版就可以用我们创建的监控项。(前提是agent也要配置键值)

新建模版:

image-20250427162800421

image-20250427162941346

在创建的模版里面新建监控项:

image-20250427163028869

image-20250427163043633

注意键值为客户端配置的sys.login

image-20250427163124546

历史记录(history)保留时长: 每个更新间隔获取到的数据推荐空间不乐观 可以设置为30d

趋势数据(trend)保留时长: 记录数据变化的趋势,占用空间较少 ,推荐保留更长时间 3650d

测试监控项:

image-20250427163304045

添加后可以看到:

image-20250427163322356

将模版绑定到主机上:

image-20250427163430494

image-20250427163447672

image-20250427163523291

查看是否获取到值:

image-20250427163658225

自定义触发器

触发器表达式功能:

image-20250427164034455

触发器: trigger 什么时候进行告警

本质使用监控项获取的数据与我们设置的条件进行比较,从而触发警报

我们还是在刚刚创建的模版里面创建触发器:

image-20250427163942798

image-20250427163954740

添加表达式:

image-20250427164227270

image-20250427164329489

image-20250427164401309

添加完成之后,ssh打开多个终端测试是否会触发:

image-20250427164617286

触发成功

自定义图像

我们还是在刚刚创建的模版里面创建

image-20250427164720625

image-20250427164731699

image-20250427164814845

查看图像:

image-20250427164903747

自定义监控nginx的状态

Zabbix客户端,创建key(键值)与调试

nginx开启监控:

cat /etc/nginx/conf.d/status.conf
server {
        listen 80 default_server;
        server_name localhost ;
        location /nginx_status {
                stub_status ;
        }
}
curl 127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
 1 1 1
Reading: 0 Writing: 1 Waiting: 0

书写监控命令/脚本:

cat /etc/zabbix/ngx_stat.sh
CMD='curl -s 127.0.0.1/nginx_status'
case "$1" in
    active)
        $CMD |awk 'NR==1{print $NF}'
        ;;
    reading)
        $CMD |awk 'NR==4{print $2}'
        ;;
    writing)
        $CMD |awk 'NR==4{print $4}'
        ;;
    waiting)
        $CMD |awk 'NR==4{print $NF}'
        ;;
    *)
echo "Usage: $0 {active|reading|writing|waiting}"
esac

sh /etc/zabbix/ngx_stat.sh active
1

sh /etc/zabbix/ngx_stat.sh reading
0

sh /etc/zabbix/ngx_stat.sh writing
1

sh /etc/zabbix/ngx_stat.sh waiting
0

写入到zabbix客户端配置文件中 , 并调试 zabbix_get

cat /etc/zabbix/zabbix_agent2.d/nginx.conf
UserParameter=nginx.status[*],sh /etc/zabbix/ngx_stat.sh "$1"
解释:
UserParameter=nginx.status[*],sh /etc/zabbix/ngx_stat.sh "$1" # $1 zabbix 键值中的第1个参数

编辑完之后重启:
systemctl restart zabbix-agent2

zabbix_get -s 127.0.0.1  -k nginx.status[active]
1
zabbix_get -s 127.0.0.1  -k nginx.status[reading]
0
可以看到已经生效

Zabbix服务端web页面-创建监控项

我们还是在模版里面创建

image-20250427171602132

image-20250427171738878

测试:

image-20250427171757175

查看结果:

image-20250427171907034

已经监控到了

这只是添加了其中一个参数的监控项,还要继续添加剩下的。按照上面方法即可,这里不在叙述。

后面添加触发器和图形和监控ssh连接用户个数一样,不再叙述。

results matching ""

    No results matching ""