两台服务器
zabbix服务端(10.51.52.224)
安装zabbix-server zabbix-agent
zabbix客户端(10.51.52.223)
安装zabbix-agent
一、服务器脚本准备
在zabbix页面添加自定义监控前,需要在服务器上添加配置文件和监控脚本
cd /etc/zabbix mkdir zabbix_agentd.d cd zabbix_agentd.d vim check_service.conf UserParameter=check.service.[*],/bin/sh /script/check_service.sh $1 #解释check.service.[*],里面的[*]指代后面写入监控项$1, #比如下文的check.service.[activemq], #activemq这个监控项会写在/script/check_service.sh 的脚本里面 #修改zabbix_agentd配置文件 vim /etc/zabbix/zabbix_agentd.conf #添加或放开 Include=/etc/zabbix/zabbix_agentd.d/*.conf #包括自定义配置 UnsafeUserParameters=1 #打开自定义监控 #编写监控脚本 vim /script/check_service.sh #!/bin/sh case $1 in user-web) echo `ps aux | grep java | grep user-web | grep -v grep | wc -l` ;; user-service) echo `ps aux | grep java | grep user-service | grep -v grep | wc -l` ;; activemq) echo `ps -ef |grep /opt/activemq |grep -v grep |wc -l` ;; MHA) echo `/usr/bin/masterha_check_status -conf=/etc/mha_master/mha.cnf | grep PING_OK | wc -l` ;; keepalived) echo `systemctl status keepalived | grep "active (running)" | wc -l` ;; esac
监控脚本里面的每一个选项都是一个监控项
二、zabbix控制台添加监控
下面以添加 activemq 监控项为例
1.创建主机项
省略
2.创建监控项
3.创建触发器
设置条件(最后一次检测值不等于1时触发报警)
设置后如下图:
4.添加图形(也可不加)
图形展示如下
添加监控在页面的操作就算结束了
服务器监控项测试(测试值为1)
注意:测试这里有个坑
监控脚本里面原来写的是:
/usr/bin/sh /opt/activemq/bin/activemq status |grep "is running" |wc -l
这个在服务器命令行测试时能拿到正确返回值1,但是使用zabbix_get测试却始终为0(原因一直没找到),
获取的测试结果不正确,zabbix监控页面也就拿不到正确值
所以后面就改用下面监控ps进程的方式,不用activemq自带的脚本监控
ps -ef |grep /opt/activemq |grep -v grep |wc -l
三、添加邮件报警
在zabbix_server.conf中找到默认邮件报警脚本路径,如下:
AlertScriptsPath=/usr/lib/zabbix/alertscripts
进入该目录(本次使用的是263邮箱,其他邮箱道理一样)
提前安装sendEmail
cd /usr/lib/zabbix/alertscripts vim mail.sh #!/bin/bash SMTP_server='smtp.xxx.com.cn:465' # SMTP服务器 username='danny.zhang@xxx.com.cn' # 用户名 password='xxx' # 密码(此处为邮箱客户端授权码) from_email_address='danny.zhang@xxx.com.cn' # 发件人Email地址 to_email_address="$1" # 收件人Email地址,zabbix传入的第一个参数 message_subject_utf8="$2" # 邮件标题,zabbix传入的第二个参数 message_body_utf8="$3" # 邮件内容,zabbix传入的第三个参数 # 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。 message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF $message_subject_utf8 EOF` [ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8" # 转换邮件内容为GB2312 message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF $message_body_utf8 EOF` [ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8" # 发送邮件 sendEmail='/usr/bin/sendEmail' $sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312
zabbix页面添加
添加动作:
OK