【2018.07.10学习笔记】【linux高级知识 19.12-19.16】

19.12 添加自定义监控项目

运维过程当中,常常会遇到一些个性化的需求,例如要统计网站天天活跃度数据,zabbix提供的模版不可以知足这样的需求,咱们须要自定义编写shell、python脚原本统计,而后把数据交给zabbix收集,再经过zabbix造成图表展示出来。能够经过统计web的80端口链接数实现网站活跃度统计python

一、zabbix-agent机器上编写脚本:web

vim /usr/local/sbin/estab.sh

#!/bin/bash
##获取80端口并发链接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED

chmod 755 /usr/local/sbin/estab.sh   //修改该脚本的权限为755

二、修改agent配置文件:/etc/zabbix/zabbix_agentd.conf,增长配置行shell

UnsafeUserParameters=1   //表示使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh   //自定义监控项的key是my.estab.count,后面的[*]里面写脚本的参数,若是没有参数则能够省略

三、重启zabbix-agentvim

systemctl restart zabbix-agent

四、在server端验证自定义agent是否正常:使用zabbix-getbash

zabbix_get -s 192.168.87.130 -p 10050 -k 'my.estab.count'
0    //由于130服务器上没有80端口被访问,因此结果为0。

五、在zabbix-web界面,建立监控项目、并作图形展示服务器

配置-->主机-->监控项目-->建立监控项:名称、键值:my.estab.count(agent配置定义的)

图形-->名称-->添加监控项-->触发器-->建立-->告警设置-->监控项值大于200时告警。

19.13/19.14 配置邮件告警

咱们使用第三方邮箱进行告警邮件的发送,这里使用163邮箱进行配置。并发

一、登陆163邮箱网页版,开启POP3/SMTP/IMAP服务,设置受权码与zabbix进行通讯认证运维

二、建立告警邮件发送的python脚本:/usr/lib/zabbix/alertscripts 存放目录是固定的测试

vim /usr/lib/zabbix/alertscripts/mail.py
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
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('lgs@163.com','aaaaaaa','lgs@163.com',to,subject,content)
 
if __name__ == "__main__":
    main()

三、在zabbix-web界面中配置报警媒介:网站

管理-->报警媒介类型-->新建报警媒介类型-->名称为baojing-->脚本名:mail.py-->脚本参数分别为:{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}

四、新建告警触发的用户,增长用户群组读写权限

管理-->用户-->新建用户-->用户名-->群组选择Zabbix administrators-->配置zabbix的密码

报警媒介-->类型选择-->新建立的报警媒介类型:baojing-->输入接收告警邮箱帐号-->选择告警严重性等级

管理-->用户群组-->权限-->设置权限:全部组都有读写权限

五、配置告警的动做

一、配置-->动做-->新建动做-->动做-->名称:发送邮件-->条件:维护状态非在维护

二、操做-->修改默认信息:

HOST:{HOST.NAME} {HOST.IP}   #定义主机名
TIME:{EVENT.DATE}  {EVENT.TIME}   #定义事件发生时间
LEVEL:{TRIGGER.SEVERITY}   #定义示警度
NAME:{TRIGGER.NAME}   #定义哪个触发器发出的报警
messages:{ITEM.NAME}:{ITEM.VALUE}   #发出告警会出现什么状态码
ID:{EVENT.ID}   #发生事件的id

发送的用户-->选择新建的用户-->仅发送到:新建的报警媒介baojing

三、恢复操做-->修改默认信息与操做页同样、发送的用户选择新建的用户、仅发送到新建的报警媒介baojing

六、自定义触发器:选择监控系统负载小于1时产生告警。

19.15 测试告警、19.16 不发邮件的问题处理

一、将触发器的规则设置为监控系统负载小于1,模拟产生问题。

二、切换至zabbix主页,在最近20个问题栏目中进行观察:zabbix监控到问题的产生,触发了告警动做

三、查看邮箱,收到告警邮件:告警ID是20

四、将触发器的规则设置为监控系统负载大于1,模拟问题解决。zabbix系统发送恢复操邮件通知

五、查看邮箱,收到恢复邮件:告警ID也是20

七、若是告警邮件接收不到,咱们经过如下几个方面来排查:

一、单独测试邮件脚本,看看邮件功能是否正常,查看脚本的权限等是否755
二、检查zabbix告警媒介设置
三、用户、媒介、用户组权限等是否正常
四、动做是否配置正常。
五、触发条件规则是否知足。
相关文章
相关标签/搜索