1. 获取系统的登录用户数#
1
2
3
4
5
6
7
|
[root@web02 ~]#w
17:44:18 up 1:17, 2 users, load average: 0.01, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 11.0.1.1 16:31 11:46 0.07s 0.07s -bash
root pts/1 11.0.1.52 17:07 2.00s 0.04s 0.00s w
[root@web02 ~]#w|awk 'NR==1{print $4}'
2
|
2. 定义为 zabbix 的监控项#
1
2
3
4
5
6
7
|
[root@web02 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf
UserParameter=login_number,w|awk 'NR==1{print $4}'
# 查看监控项 zabbix_agentd -p 有语法检测功能
[root@web02 ~]#zabbix_agentd -p|grep login_number
login_number [t|2]
# 重启客户端
[root@web02 ~]# systemctl restart zabbix-agent.service
|
3. 使用 zabbix 服务器端进行采集监控#
服务端通过命令行测试是否通过监控项来获取用户自定义的值
1
2
3
4
|
# 安装 zabbix-get 命令
[root@zabbix ~]# yum -y install zabbix-get
[root@zabbix ~]#zabbix_get -s 172.16.1.8 -k login_number
2
|
在 Web 页面添加监控项



查看监控项


4. 监控 TCP 22 端口是否存活#
键值在选择中选取需要监控的信息
检查 TCP 端口是否处于侦听状态。返回 0 - 未侦听;1 - 正在侦听


停止 web02 sshd 服务
1
|
[root@web02 ~]# systemctl stop sshd
|

5. 自定义配置展示值映射#



调用值映射


6. 自定义监控服务器内存百分比#
第一步:自定义监控项,获取可用百分比
1
2
3
4
5
6
|
[root@web02 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf
UserParameter=login_number,w|awk 'NR==1{print $4}'
UserParameter=mem_free,free|awk 'NR==2{print $NF/$2*100}'
[root@web02 ~]# systemctl restart zabbix-agent.service
[root@web02 ~]#zabbix_agentd -p|grep mem_free
mem_free [t|79.8753]
|
第二步:服务端测试获取 key 值并添加监控
1
2
|
[root@zabbix ~]#zabbix_get -s 172.16.1.8 -k mem_free
79.9775
|


7. 为可用内存设置触发器#
当内存可用百分比小于 20% 则触发报警规则




测试:关闭 swap 分区
1
|
[root@web02 ~]# swapoff -a
|
使用 dd 压测消耗内存
1
|
[root@web02 ~]# dd if=/dev/zero of=/dev/null bs=1200M count=2048
|

8. 配置多条件触发器#
同时满足两个条件触发告警
添加 swap 可用百分比
1
2
3
4
|
[root@web02 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf
UserParameter=login_number,w|awk 'NR==1{print $4}'
UserParameter=mem_free,free|awk 'NR==2{print $NF/$2*100}'
UserParameter=swap_free,free -m|awk 'NR==3{print $3/$2*100}'
|


修改触发器配置

完成后在使用 dd 压测查看结果