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

19.12 添加自定义监控项目

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

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

vim /usr/local/sbin/estab.sh

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

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

2、修改agent配置文件:/etc/zabbix/zabbix_agentd.conf,增加配置行

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

3、重启zabbix-agent

systemctl restart zabbix-agent

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

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

5、在zabbix-web界面,创建监控项目、并做图形展现

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

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

19.13/19.14 配置邮件告警

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

1、登录163邮箱网页版,开启POP3/SMTP/IMAP服务,设置授权码与zabbix进行通信认证

2、创建告警邮件发送的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()

3、在zabbix-web界面中配置报警媒介:

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

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

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

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

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

5、配置告警的动作

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

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}   #发生事件的id

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

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

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

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

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

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

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

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

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

7、如果告警邮件接收不到,我们通过以下几个方面来排查:

1、单独测试邮件脚本,看看邮件功能是否正常,查看脚本的权限等是否755
2、检查zabbix告警媒介设置
3、用户、媒介、用户组权限等是否正常
4、动作是否配置正常。
5、触发条件规则是否满足。

转载于:https://my.oschina.net/u/3804114/blog/1844034

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值