自定义键值配置
1、安装一个服务
安装过程这里不做过多阐述
2、创建一个监听脚本(很简单)
vim lvmainserver.sh
#!/bin/bash
port=`netstat -lntp | grep -c 20000`
if [ "$port" = 1 ]
then
echo '1' #端口存在则输出1
else
echo '0' #端口不存在输出0
fi
3、修改zabbix_agentd.conf配置文件创建自定义key
vim zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
EnableRemoteCommands=1 #开启远程命令
Server=192.168.12.142
ServerActive=192.168.12.42
Hostname=192.168.12.62
UnsafeUserParameters=1 #是否允许自定义脚本传递特殊字符作为参数,通常不用开
UserParameter=lvmain,sh /usr/local/zabbix-agent/etc/zabbix_agentd.conf.d/lvmainserver.sh #定义一个键值"lvmain",检测脚本路径
在服务器端测试键值
[root@zabbix logs]# /usr/local/zabbix/bin/zabbix_get -s 192.168.12.62 -p 10050 -k lvmain
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
1
返回值为1即为存在20000端口,即服务存活
出现以下问题
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
原因
经过排查后发现脚本中有运行 netstat 查看进程的命令,因为是在普通用户下执行的 netstat命令,所以权限不足
解决办法
登陆root用户,执行如下命令,让其它用户瞬间获得文件所有者的权限
# chmod +s /bin/netstat
4、服务器配置
vi /etc/sudoers
#Defaults requiretty #注释掉此项,因为zabbix执行这命令不是通过tty终端登录执行,所以关闭次设置。
Defaults !visiblepw
Defaults always_set_home
Defaults match_group_by_gid
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
root ALL=(ALL) ALL
mtmwsjd ALL=(ALL) ALL
zabbix ALL=(ALL) ALL #zabbix用户可以使用sudo权限
zabbix ALL=(ALL) NOPASSWD:ALL #zabbix用户sudo不使用密码即可
You have mail in /var/spool/mail/root
5、重启zabbix_agentd服务
~]# systemctl restart zabbix-agent.service
6、zabbix用户可登陆
~]# mkdir /var/lib/zabbix# 创建家目录,可不做
~]# grep "^zabbix" /etc/passwd
zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
~]# usermod -s /bin/bash zabbix
~]# grep "^zabbix" /etc/passwd
zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/bin/bash
7、创建监控项
8、创建触发器
9、创建动作
令附上weblogic服务脚本
#!/bin/bash
# description: lvmainserver Start Stop Restart
# processname: lvmainserver
# chkconfig: 2345 14 94
case $1 in
start)
PRO_NUM=`ps -ef |grep /LVMainServer |grep -v grep |wc -l`
if [ $PRO_NUM -eq 0 ];then
cd /home/appiron/JianqView/Bin && nohup ./LVMainServer &
echo "LVMainServer start success"
else
echo "LVMainServer already started"
fi
;;
stop)
ps -ef |grep /LVMainServer |grep -v grep
if [ $? -eq 0 ];then
ps -ef |grep LVMainServer |grep -v grep |awk '{print $2}'|xargs kill -9
echo "LVMainServer stop success"
else
echo "LVMainServer already stop"
fi
;;
restart)
ps -ef |grep /LVMainServer |grep -v grep
if [ $? -eq 0 ];then
ps -ef |grep LVMainServer |grep -v grep |awk '{print $2}'|xargs kill -9
echo "LVMainServer stop success"
else
echo "LVMainServer already stop"
fi
sleep 0.5s
cd /home/appiron/JianqView/Bin && nohup ./LVMainServer &
echo "LVMainServer start success"
;;
esac
exit 0
10、测试结果
停止服务
至此zabbix监控自愈完成