9月12日任务
19.12 添加自定义监控项目
19.13/19.14 配置邮件告警
19.15 测试告警
19.16 不发邮件的问题处理
19.12 添加自定义监控项目
需求:监控某台web的80端口连接数,并出图
两步:1)zabbix监控中心创建监控项目;
2)针对该监控项目以图形展现
客户端127机器配置:
1. 客户端(127)编写estab.sh脚本 :
[root@localhost ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash ##获取80端口并发连接数 netstat -ant |grep ':80 ' |grep -c ESTABLISHED
2. 设定estab.sh脚本权限为755:
[root@localhost ~]# chmod 755 /usr/local/sbin/estab.sh
3. 客户端(127)编辑配置文件
添加内容( =1表示使用自定义的脚本):
vim /etc/zabbix/zabbix_agentd.conf
添加以下两行
UnsafeUserParameters=1
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh
4. 重启zabbix-agent服务:
[root@localhost ~]# systemctl restart zabbix-agent
服务端149机器测试:
1. 远程到客户端ip,执行命令(获取80端口连接数):
[root@aminglinux-128 ~]# zabbix_get -s 192.168.193.127 -p 10050 -k 'my.estab.count' 0
2. 临时关闭getenforce防火墙:
[root@aminglinux-128 ~]# setenforce 0 setenforce: SELinux is disabled
关闭firewalld防火墙;查看是否还有防火墙规则?
[root@aminglinux-128 ~]# setenforce 0 setenforce: SELinux is disabled [root@aminglinux-128 ~]# systemctl stop firewalld [root@aminglinux-128 ~]# iptables -nvL Chain INPUT (policy ACCEPT 127K packets, 28M bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53 0 0 ACCEPT tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 0 0 ACCEPT udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67 0 0 ACCEPT tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * virbr0 0.0.0.0/0 192.168.122.0/24 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- virbr0 * 192.168.122.0/24 0.0.0.0/0 0 0 ACCEPT all -- virbr0 virbr0 0.0.0.0/0 0.0.0.0/0 0 0 REJECT all -- * virbr0 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable 0 0 REJECT all -- virbr0 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain OUTPUT (policy ACCEPT 124K packets, 29M bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:68
3. 游览器访问ip/zabbix,创建监控项:
上例为
名称——键值——添加
4. 创建图形:
名称——添加——并发连接数——选择——添加
5. 创建触发器:
名称——严重性——添加——监控项-选择——功能——N——插入——添加
19.13 配置邮件告警(上)
1. 登录163网易邮箱,设置——客户端授权密码:
设置开启POP3、IMAP、SMTP服务 开启并记录授权码
2. 创建媒体类型:
名称——类型——脚本名称(mail.py)——脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
3. 图中AlertScriptsPath=目录,mail.py脚本创建在这个目录下:
vim /etc/zabbix/zabbix_server.conf
4. 创建mail.py脚本:
#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"
内容参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py
添加内容:
#!/usr/bin/env python #-*- coding: UTF-8 -*- import os,sys import getopt import smtplib from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from subprocess import * def sendqqmail(username,password,mailfrom,mailto,subject,content): gserver = 'smtp.163.com' gport = 25 try: msg = MIMEText(unicode(content).encode('utf-8')) msg['from'] = mailfrom msg['to'] = mailto msg['Reply-To'] = mailfrom msg['Subject'] = subject smtp = smtplib.SMTP(gserver, gport) smtp.set_debuglevel(0) smtp.ehlo() smtp.login(username,password) smtp.sendmail(mailfrom, mailto, msg.as_string()) smtp.close() except Exception,err: print "Send mail failed. Error: %s" % err def main(): to=sys.argv[1] subject=sys.argv[2] content=sys.argv[3] ##定义邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上公开) sendqqmail('zhuneianxiang@163.com','mima','zhuneianxiang@163.com',to,subject,content) if __name__ == "__main__": main()
5. 设定mail.py脚本权限为755:
[root@aminglinux-128 ~]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py
6. 测试发给指定邮箱一封邮件:
python mail.py zhuneianxiang@163.com "biaoti" "neirong"
19.14 配置邮件告警(下)
1. 创建用户:
定义用户参数如图 :
进入hao用户的对应用户群组,更改用户群组的权限为读写!!!
定义报警媒介(接收邮箱地址):
确定149用户—权限是读写!!!
2. 创建动作:
设置操作:
默认信息:
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
设置恢复操作:
默认信息:
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
1.创建触发器:
配置触发器参数为错误参数,达到发邮箱报警效果!!!