4.CentOS7.2 Zabbix3.4.11的使用方法【案例1:监控终端用户数:应用集》监控项》触发器》图形》邮件告警】
案例1:监控终端用户数;
A、用户登录(客户端操作):
测试命令:
[[email protected] ~]# uptime | awk -F " " '{print $5}'
然后打开客户端的agent配置文件:
[[email protected] ~]# vi /etc/zabbix/zabbix_agentd.conf #添加下面一行
UserParameter=login_user,uptime | awk -F " " '{print $5}'
说明一下:sshd_port是一个key,而且在zabbix系统必须是唯一的。uptime | awk -F " " '{print $4}' 是要执行的命令。
[[email protected] ~]# systemctl restart zabbix-agent #重启客户端
B、在服务端获取,使用zabbix-get方法:
[[email protected] ~]# find / -name zabbix_get
/usr/local/zabbix/bin/zabbix_get
[[email protected] ~]# /usr/local/zabbix/bin/zabbix_get --help #不懂使用help即可
zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key
[[email protected] ~]#/usr/local/zabbix/bin/zabbix_get -s 192.168.91.134 -k login_user #成功获取
1
3.1、下面来创建应用集,应用集我们目前可以理解为是一个监控组:
3.2、接下来创建监控项:
3.3、配置触发器;
3.4、应用集创建了,监控项创建了,触发器也创建了,最后要图形查看;
3.5、开启四个终端窗口测试:
3.6、查看设置的触发器是否告警触发,ok生效了。
3.7、最后创建zabbix仪表盘,方便查看。接下来我们选择;1、编辑仪表盘-选择图形--配置图行--添加;2、编辑仪表盘-选择问题--配置问题--添加
最后效果图:
3.8、自定义发送邮件报警:
1.编辑zabbix_server.conf文件
[[email protected] ~]# grep "AlertScriptsPath=/usr" /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
- 上传python脚本
[[email protected] ~]# cat /usr/local/zabbix/share/zabbix/alertscripts/send_mail.py
#!/bin/env python
#coding:utf-8
'''
发送txt文本邮件
'''
import smtplib
from email.mime.text import MIMEText
from sys import argv
mailto_list=[]
mail_host="smtp.139.com:25" #设置服务器
mail_user="[email protected]" #发件用户名(换成自己的)
mail_pass="yanyb" #口令(换成自己的)
#mail_postfix="139.com" #发件箱的后缀
debug_level=0 #是否开启debug
def send_mail(to_list,sub,content):
me=mail_user
msg = MIMEText(content,_subtype='plain',_charset='utf-8')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
server = smtplib.SMTP()
server.set_debuglevel(debug_level)
server.connect(mail_host)
server.login(mail_user,mail_pass)
server.sendmail(me, to_list, msg.as_string())
server.close()
return True
except Exception, e:
print str(e)
return False
if __name__ == '__main__':
try:
mailto_list=argv[1].split(';')
sub=argv[2]
content=argv[3]
except:
print "python send_mail.py '[email protected];[email protected]' sub content"
exit()
if send_mail(mailto_list,sub,content):
print "发送成功"
else:
print "发送失败"
脚本上传之后,修改权限:
[[email protected] ~]# chmod +x /usr/local/zabbix/share/zabbix/alertscripts/send_mail.py
2、管理——>报警媒介类型——>创建媒体类型
3.zabbix web端——创建媒体类型
{ALERT.SENDTO},
{ALERT.SUBJECT},
{ALERT.MESSAGE} 3个参数,分别对应send_mail.py脚本需要的3个参数:收件人地址、主题、详细内容
4.zabbix web端——用户指定媒介
5.zabbix web端——创建动作
注意:操作是发送给谁,比如这个故障3分钟后没有恢复。就发生给领导,就要在后面添加一条操作信息。
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOST.NAME}
主机地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}
恢复消息模板
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复主机:{HOST.NAME}
主机地址:{HOST.IP}
恢复时间:{EVENT.DATE} {EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}
- 邮件测试(1、重启客户端;2、开多个终端测试终端登录数;):
这种邮件模板简单明了一点;
到这里我们自定义多个终端数就完成啦!
总结:
1、建议初学者监控一个服务或者程序最好按以下思路来进行:应用集-->监控项--->触发器--->图形--->仪表盘(很方便入门):
2、使用php7.2的时候有个一bug,报php的一个函数被禁用。由于自己对php没有过多研究,直接换成php5.6就解决问题了。
3、邮箱服务器地址的设置:
139邮箱客户端接收与发送服务器地址为:
接收服务器地址:pop.139.com
发送服务器地址:smtp.139.com
拓展:其他邮箱的邮件接收与发送服务器地址
163免费邮箱的邮件服务器地址:
接收邮件服务器: pop.163.com。
发送邮件服务器(SMTP): smtp.163.com
126免费邮箱的邮件服务器地址:
POP服务器地址: pop.126.com
SMTP服务器地址: smtp.126.com
网易@yeah.net邮箱:
POP服务器地址:pop.yeah.net
SMTP服务器地址:smtp.yeah.net
sina免费邮箱的邮件服务器地址为:
接收邮件服务器地址:pop.sina.com.cn 或pop3.sina.com.cn
发送邮件服务器地址:smtp.sina.com.cn