自定义监控,服务器登录人数
要求限制登录人数不超过3个,有3个以上人同时登录就报警。
从命令行的方式操作
我们需要自定义监控项,举例:使用自带的key来执行的方式
zabbix_get -s '192.168.1.38' -p 10050 -k "agent.ping"
希望执行"login.user"来返回登录的人数
zabbix_get -s '192.168.1.38' -p 10050 -k "login.user"
自定义Key 举例
- 首先显示用户登录命令
who
who |wc -l # 显示登录⼈数
- 手动创建zabbix的自定义配置文件,用于自定义key
进入zabbix的客户端,需要添加监控项配置⽂件,路径
[root@load-kfapplications ~]# cd /etc/zabbix/
[root@load-kfapplications zabbix]# ll
总用量 28
-rw-r--r-- 1 root root 24854 3月 8 15:32 zabbix_agent2.conf
drwxr-xr-x 2 root root 6 2月 28 22:36 zabbix_agent2.d
zabbix_agent2.conf是主配置文件, zabbix_agent2.d是扩展目录
- 查看主配置文件
zabbix_agent2.conf中找到以下说明
[root@load-kfapplications zabbix]# vim zabbix_agent2.conf
...
Include=/etc/zabbix/zabbix_agent2.d/*.conf
...
### Option: UserParameter
# User-defined parameter to monitor. There can be several user-defined parameters.
# Format: UserParameter=<key>,<shell command>
# See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=
- 在Include中描述了自动包含的配置文件,所以可以在此目录下新建.conf的配置文件
[root@load-kfapplications zabbix]# cd zabbix_agent2.d/
[root@load-kfapplications zabbix_agent2.d]# ll
总用量 0
[root@load-kfapplications zabbix]# vim /etc/zabbix/zabbix_agent2.d/UserParameter_login.conf
- 在文件中按照上面的说明,加入以下内容:
[root@load-kfapplications zabbix_agent2.d]# vim /etc/zabbix/zabbix_agent2.d/UserParameter_login.conf
UserParameter=login.user,who|wc -l
保存退出。之后重启agent
[root@load-kfapplications zabbix_agent2.d]# systemctl restart zabbix-agent2
[root@load-kfapplications zabbix_agent2.d]# systemctl status zabbix-agent2
● zabbix-agent2.service - Zabbix Agent 2
Loaded: loaded (/usr/lib/systemd/system/zabbix-agent2.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2022-03-08 20:42:38 CST; 15s ago
Process: 95210 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
Main PID: 95212 (zabbix_agent2)
Tasks: 7
CGroup: /system.slice/zabbix-agent2.service
└─95212 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
3月 08 20:42:38 load-kfapplications systemd[1]: Stopped Zabbix Agent 2.
3月 08 20:42:38 load-kfapplications systemd[1]: Started Zabbix Agent 2.
3月 08 20:42:38 load-kfapplications zabbix_agent2[95212]: Starting Zabbix Agent 2 [load-...)
3月 08 20:42:38 load-kfapplications zabbix_agent2[95212]: Press Ctrl+C to exit.
Hint: Some lines were ellipsized, use -l to show in full.
- 在server端测试自定义的key
[root@zabbix-server ~]# zabbix_get -s '192.168.1.38' -p 10050 -k "login.user"
2
此时返回了当前登录的用户数量
在页面上建立模版并调用此监控项目
上述是在命令行添加配置,下面就是页面操作了,整个流程是
- 创建模板
- 创建应用集:对监控项分类
- 创建监控项:定义item,监控的内容
- 创建触发器:当监控项获取到值,且达到触发条件就会告警
- 创建图形
- 绑定主机
遇到问题
在编辑监控Socket脚本时,发现命令行和zabbix_get的返回值不一样,客户端命令行返回示例如下,返回了进程信息
[root@load-kfapplications zabbix_agent2.d]# ss -antp | grep -v 10050
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:* users:(("rpcbind",pid=8386,fd=4),("systemd",pid=1,fd=31))
LISTEN 0 128 *:8080 *:* users:(("nginx",pid=87810,fd=9),("nginx",pid=80962,fd=9))
....
Server端返回信息却没有进程信息,如下
[root@zabbix-server ~]# zabbix_get -s '192.168.1.38' -p 10050 -k "tcp.scoket.ss.atnp"
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:8080 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 5 192.168.122.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 *:9655 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 128 127.0.0.1:16600 *:*
LISTEN 0 100 127.0.0.1:25 *:*
原因是权限不够,在client上修改ss的权限
[root@load-kfapplications sbin]# ll ss
-rwxr-xr-x. 1 root root 131544 4月 11 2018 ss
[root@load-kfapplications sbin]# chmod +s ss
[root@load-kfapplications sbin]# ll ss
-rwsr-sr-x. 1 root root 131544 4月 11 2018 ss
之后返回正常