自定义监控,服务器登录人数

要求限制登录人数不超过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

此时返回了当前登录的用户数量

在页面上建立模版并调用此监控项目

上述是在命令行添加配置,下面就是页面操作了,整个流程是

  1. 创建模板
  2. 创建应用集:对监控项分类
  3. 创建监控项:定义item,监控的内容
  4. 创建触发器:当监控项获取到值,且达到触发条件就会告警
  5. 创建图形
  6. 绑定主机

遇到问题

在编辑监控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

之后返回正常

posted on 2022-09-09 14:14  学业未成  阅读(192)  评论(0编辑  收藏  举报