通过zabbix自定义Items来监控服务器半年内的登录次数信息。开始配置之前,需要编写脚本,用于获取服务器的登录情况,脚本如下:

[root@hm 09:14 AM ~ 1119]# cat logon_count.sh 
#!/bin/bash
# author: hm  email: [email protected]
# system login count
option=$1
count1=0
count3=0
count6=0
total0=$(last | grep -Ev "reboot|^$|wtmp" | wc -l)
login_file=/tmp/.login
who /var/log/wtmp > ${login_file} && chown zabbix. ${login_file}
d1=`date -d"1 month ago" +"%s"`
d3=`date -d"3 month ago" +"%s"`
d6=`date -d"6 month ago" +"%s"`

IFS=$'\n'
for i in `cat $login_file`
do
    riqi=`echo $i | awk '{ print $3" "$4" "$5 }' | xargs -i  date -d "{}" "+%s"`
    if [ "$riqi" -gt "$d1" ];then
        count1=$[ $count1 + 1 ]
    fi
    if [ "$riqi" -gt "$d3" ];then
        count3=$[ $count3 + 1 ]
    fi
    if [ "$riqi" -gt "$d6" ];then
        count6=$[ $count6 + 1 ]
    fi
done

case $option in
    d1)
        echo ${count1} ;;
    d3)
        echo ${count3} ;;
    d6)
        echo ${count6} ;;
    d0)
        echo ${total0} ;;
    *)
        echo -e "Usage: sh $0 [d1|d3|d6|d0]"
esac

运行脚本

[root@hm 09:15 AM ~ 1120]# ./logon_count.sh d1    #1个月内的登录次数
54
[root@hm 09:16 AM ~ 1121]# ./logon_count.sh d3    #3个月内的登录次数
240
[root@hm 09:16 AM ~ 1122]# ./logon_count.sh d6    #6个月内的登录次数
390
[root@hm 09:16 AM ~ 1123]# ./logon_count.sh d0    #所有的登录次数
469

一、配置Items

1. Configuration->Items ->Create item

Zabbix监控记录linux服务器近期的登录情况_第1张图片


2、创建完所有的item,如下

Zabbix监控记录linux服务器近期的登录情况_第2张图片


3、创建Graphs图形显示项

Zabbix监控记录linux服务器近期的登录情况_第3张图片


4、主机Hosts中添加监控项目,完成zabbix WEB端的配置

Zabbix监控记录linux服务器近期的登录情况_第4张图片


二、配置UserParameter

1、在UserParameter配置文件添加一行

UserParameter=login_count[*],/usr/local/zabbix/scripts/logon_count.sh $1

2、重新启动zabbix_zgentd

[root@hm 09:41 AM ~ 1124]# service zabbix_agentd restart


三、配置完成后,效果如下

Zabbix监控记录linux服务器近期的登录情况_第5张图片