文章最后更新时间:2025年06月11日
环境需求
- 创建自定义监控项监控服务器登录人数,超过3个则告警
- 监测登录服务器的IP归属地,异地IP登录则报警
实现思路
- 在客户端主机注册一个key
#Format: UserParameter=<key>,<shell command>
- 在Zabbix服务网页端递级添加模板、应用集、监控项、触发器、图形
一、客户端注册一个key
- 配置文件位置
在客户端配置文件中找到Include=/etc/zabbix/zabbix_agent2.d/*.conf
,该目录下的.conf文件生效。
[root@hk-web zabbix]# cat zabbix_agent2.conf |grep 'Include'
### Option: Include
# Include=
Include=/etc/zabbix/zabbix_agent2.d/*.conf
# Include=/usr/local/etc/zabbix_agentd.userparams.conf
# Include=/usr/local/etc/zabbix_agentd.conf.d/
# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
- 新建配置文件
root@hk-web zabbix_agent2.d]# pwd
/etc/zabbix/zabbix_agent2.d
[root@hk-web zabbix_agent2.d]# cat userlogin.conf
#Format: UserParameter=<key>,<shell command>
UserParameter=login.user,who | wc -l
其中
login.user
是自定义key,后面为执行命令或脚本。
- 服务端测试连通性
显示当前登录人数为2。
服务端实际登录人数为2。
二、Zabbix服务网页端操作
1. 创建模板
2. 创建应用集
3. 创建监控项
键值需与客户端注册的
login.user
对应。
4. 创建触发器
5. 创建图形
注意事项:先创建模板,再在模板内依次创建应用集、监控项、触发器和图形。
三、选择主机关联模板
1. 关联模板效果图
- 成功告警时,若配置了邮箱则会发送通知。
四、监测服务器登录IP归属地
1. 客户端注册key
[root@hk-web zabbix_agent2.d]# cat userlogin.conf
#Format: UserParameter=<key>,<shell command>
UserParameter=login.user,who | wc -l
UserParameter=login.addre,/etc/zabbix/zabbix_agent2.d/login_addre.sh
2. 编写脚本
脚本思路:
- 通过
curl
获取IP归属地- 空值时输出“无人登录”
- 触发器配置:无人登录或中国广东省惠州市为正常,否则告警。
[root@hk-web zabbix_agent2.d]# cat login_addre.sh
#!/bin/bash
who | awk '{print $5}' | sed 's/(//g' | sed 's/)//g' | uniq > /etc/zabbix/zabbix_agent2.d/tmp
ip=$(cat /etc/zabbix/zabbix_agent2.d/tmp)
if [[ -z $ip ]];then
echo '无人登录'
else
for i in $ip;
do
addre=$(/usr/bin/curl -s http://www.cip.cc/$i | grep '数据三' | awk '{print $3}')
if [[ -z $addre ]];then
echo '中国广东省惠州市'
else
echo $addre
fi
done
fi
注意文件权限:
![]()
3. 状态监控
4. Zabbix网页端触发器配置
选择
and
条件。![]()
5. 最终效果
中文配置说明:
因客户端传输值为中文,需在监控项中将信息类型设置为文本。![]()
异常图
总结
由于curl
可能获取空值或特殊符号,需对$adder
增加判断(空值时默认正常登录)。若有更好处理方式,欢迎交流!
文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。