Zabbix-2.4-安装-2
这里看到主机资产有数据了,这里的数据,就是来自下面的关联
上面的数据就是设置login-user时候设置的关联
起个名字,添加个表达式
查看另一个页面 --依赖
如果某件事发生了,就别报这个警了。比如如果主机down了就别报警了。先不加这个依赖
图形里也能看到
如果是发短信报警,要把上面的message改的短一些,改成70个字符以内
国内英文单词按字母算,汉字按个数算
精简下,最下面是恢复的时候再发个短信,把下面粘贴下放下面即可,生产环境是这么玩的
你可以写个脚本发邮件,发短信等,或者echo hehe,一般使用脚本是主流
AlertScriptsPath=/usr/lib/zabbix/alertscripts
这里配置了报警脚本的路径
把你写的脚本放这里就好了,这样它就能找到了
进入如下目录写一个脚本,内容如下。
这个zabbix脚本要接收3个参数
$1,$2,$3
$1是邮件地址
$2 邮件主题
$3 邮件内容
[root@linux-node1 alertscripts]# pwd /usr/lib/zabbix/alertscripts [root@linux-node1 alertscripts]# cat Send_Mail.sh echo $1 $2 $3 >>/tmp/test.log [root@linux-node1 alertscripts]#
加上课执行权限
[root@linux-node1 alertscripts]# chmod +x Send_Mail.sh
网页这里就可以这么写了
我的选择如下
Add之后
[root@linux-node1 alertscripts]# tail -f /tmp/test.log 525031638@qq.com PROBLEM linux-node2:login-user): 3 ^C [root@linux-node1 alertscripts]#
仪表盘里也能看到它自动执行了action
[root@linux-node1 alertscripts]# pwd /usr/lib/zabbix/alertscripts [root@linux-node1 alertscripts]# ll total 8 -rwxr-xr-x 1 root root 714 Mar 13 20:16 pymail.py -rwxr-xr-x. 1 root root 30 Nov 29 23:20 Send_Mail.sh [root@linux-node1 alertscripts]# cat pymail.py #!/usr/bin/python #coding: utf-8 import smtplib import sys from email.mime.text import MIMEText from email.header import Header from email.Utils import COMMASPACE receiver = sys.argv[1] subject = sys.argv[2] mailbody = sys.argv[3] smtpserver = 'smtp.exmail.qq.com' username = 'test1@xxxxxx.com' password = '123456' sender = username msg = MIMEText(mailbody,'html','utf-8')#中文需参数‘utf-8’,单字节字符不需要 msg['Subject'] = Header(subject, 'utf-8') msg['From'] = username msg['To'] = receiver smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(username, password) smtp.starttls() smtp.sendmail(msg['From'], msg['To'], msg.as_string()) smtp.quit() [root@linux-node1 alertscripts]#
解决告警之后又收到了恢复正常的邮件
看到邮件内容多了括号和空格,把下面多余的空格和括号删除即可
qq邮件可以绑定微信。对于使用微信的用户可以及时看到告警
查看linux自带的模板
创建自定义模板
给此模板命名为demo,同时把linux-node2加入到此模板里
link给一个模板
点击Update
点击Update之后,提示模板不能被通过此模板再去link给其它模板(这里不是很明白,有时间再研究下)
最后demo模板结果如下
你可以把这个模板链接到任何一台机器上,这样模板里有的监控项,那个机器就有了
其实你自定义的监控项可以从配置文件里取出来,放下面目录下,然后在客户端主配置文件里include进去
[root@linux-node2 zabbix_agentd.d]# cd /etc/zabbix/zabbix_agentd.d/ [root@linux-node2 zabbix_agentd.d]# ls userparameter_mysql.conf [root@linux-node2 zabbix_agentd.d]#
这个agent.conf自带include选项
生产环境都建议这么干。尽量不要修改原来的配置文件。更专业一点
[root@linux-node2 alertscripts]# cd /etc/zabbix/ [root@linux-node2 zabbix]# ls web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf [root@linux-node2 zabbix]# mkdir shells [root@linux-node2 zabbix]# cd shells/ [root@linux-node2 shells]# pwd /etc/zabbix/shells
把脚本上传上去
[root@linux-node2 shells]# rz -E rz waiting to receive. [root@linux-node2 shells]# [root@linux-node2 shells]# ls zabbix_linux_plugin.sh [root@linux-node2 shells]# chmod +x zabbix_linux_plugin.sh [root@linux-node2 shells]# ./zabbix_linux_plugin.sh Usage: ./zabbix_linux_plugin.sh {tcp_status key|memcached_status key|redis_status key|nginx_status key} [root@linux-node2 shells]#
因此,运行此脚本需要给它2个参数
[root@linux-node2 shells]# ./zabbix_linux_plugin.sh tcp_status LISTEN 14 [root@linux-node2 shells]# ./zabbix_linux_plugin.sh tcp_status TIME-WAIT 52 [root@linux-node2 shells]#
在下面目录下,创建一个文件,存放自定义的key和value,而value通过此脚本获取
key这里是linux_status[*] ,表示它支持列表
[root@linux-node2 zabbix_agentd.d]# pwd /etc/zabbix/zabbix_agentd.d [root@linux-node2 zabbix_agentd.d]# ls userparameter_mysql.conf zabbix-linux-plugin.conf [root@linux-node2 zabbix_agentd.d]# cat zabbix-linux-plugin.conf UserParameter=linux_status[*],/etc/zabbix/shells/zabbix_linux_plugin.sh "$1" "$2" "$3" [root@linux-node2 zabbix_agentd.d]#
重启linux-node2的Zabbix agent
[root@linux-node2 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart Shutting down Zabbix agent: [ OK ] Starting Zabbix agent: [ OK ] [root@linux-node2 zabbix_agentd.d]# cd
server端通过zabbix_get获取数据没问题
[root@linux-node1 zabbix]# zabbix_get -s 10.0.1.162 -k linux_status[tcp_status,ESTAB] 2 [root@linux-node1 zabbix]#
注意,zabbix监控的时候,是使用的zabbix用户
[root@linux-node2 ~]# ll /tmp/netstat.tmp -rw-rw-r-- 1 zabbix zabbix 31 Mar 13 22:09 /tmp/netstat.tmp [root@linux-node2 ~]#
接下来你要做的是,创建一种模板,tcp有11个状态,你要创建11个key
然后做个图,这里有别人做好的
配置--模板--导入
选择电脑上的模板文件
可以批量更改
本来是300的,都变成了30秒