linux自带的告警服务,Linux监控平台搭建(添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理)...

添加自定义监控项目

场景:监控某台web的80端口连接数,并出图

方案:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现

1.针对上面解决方案我们分步分析,对于第一步需要在客户端定义脚本文件,/usr/local/sbin/estab.sh,内容如下:

#!/bin/bash

##获取80端口并发连接数

netstat -ant |grep ':80 ' |grep -c ESTABLISHED

2.修改脚本权限:

chmod 755 /usr/local/sbin/estab.sh

3.客户端编辑配置文件 /etc/zabbix/zabbix_agentd.conf ,找到并修改以下参数:

UnsafeUserParameters=1 #表示使用自定义脚本

#自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh

UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh

如图所示:

78828389.jpg

ps:需要注意iptables规则,以及脚本的执行权限是否755

4.重新客户端zabbix-agent

systemctl restart zabbix-agent

5.服务端进行验证

1)windows浏览器zabbix端创建监控项

75070835.jpg

下面红色的框内自定义名称即可,然后选择添加

74061375.jpg

2)创建图形

60639014.jpg

填写名称,选择监控项,最后选择添加按钮:

23214071.jpg

点击创建好的图形预览进行查看

39590457.jpg

3)创建触发器

95720878.jpg

选择告警,添加规则:比如最新的值大于200时告警,点击添加按钮保存

96283770.jpg

配置邮件告警

使用163或者QQ邮箱发告警邮件,本篇教程我们使用163邮箱;

1.登录163邮箱,点击设置选择下拉的POP3/SMTP/IMAP选项

80722869.jpg

2.检查两选项都已勾选

59191762.jpg

3.第一次开启需要客户端授权码,如图:

21302370.jpg

4.设置完成之后进来windows浏览器zabbix服务端,选择管理-->> 报警媒介类型

20318389.jpg

5.创建媒体类型

46746413.jpg

6.选择脚本,填写三个脚本参数:

{ALERT.SENDTO} :接收邮箱地址

{ALERT.SUBJECT} :主题

{ALERT.MESSAGE} :邮件内容

26251303.jpg

7.服务端编写脚本mail.py

文件地址:/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' #定义发件人服务器,网易邮箱smtp.163.com,腾讯邮箱smtp.qq.com

gport = 25

try:

# msg = MIMEText(unicode(content).encode('utf-8')) //如果发送的邮件有乱码,可以尝试把这行改成如下:

msg = MIMEText(content,'plan','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]

##定义QQ邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上公开,否则你会死的很惨)

sendqqmail('你的邮箱@163.com','客户端授权码','你的邮箱@163.com',to,subject,content)

if __name__ == "__main__":

main()

#####脚本使用说明######

#1. 首先定义好脚本中的邮箱账号和密码

#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"

8.修改脚本权限

chmod 755 /usr/lib/zabbix/alertscripts/mail.py

9.测试一下是否能正常发送

python /usr/lib/zabbix/alertscripts/mail.py 自己的邮箱@163.com "i'm yolks" "bilibilibili"

效果图

93044722.jpg

10.windows浏览器端使用zabbix创建用户

选择红色标记出的位置,填写完成点击添加按钮完成用户添加

598074.jpg

配置用户告警媒介,完成添加

13198312.jpg

4144465.jpg

还需要设置用户所属群组的权限,否则还是无法接收邮件

29984644.jpg

必须点击添加

10586340.jpg

查看是否显示为读写

98552542.jpg

11.添加动作

执行原理即: 先监控-->> 然后创建触发器 -->> 配置好收邮件的人信息及权限 -->> 动作(即触发之后的行为)

66816184.jpg

修改动作里的默认信息,内容如下:

HOST:{HOST.NAME} {HOST.IP}

TIME:{EVENT.DATE} {EVENT.TIME}

LEVEL:{TRIGGER.SEVERITY}

NAME:{TRIGGER.NAME}

messages:{ITEM.NAME}:{ITEM.VALUE}

ID:{EVENT.ID}

并且修改操作细节

54202790.jpg

修改恢复操作,默认信息和上面代码一致

59445203.jpg

12.看到动作列表如下则准备工作完成

7158054.jpg

测试告警

为了测试告警,我们需要手动制造故障,以模拟实现告警功能;

1.创建自定义触发器:

90972111.jpg

2.默默喝杯水等几分钟,刷新下zabbix主页

84559301.jpg

32705614.jpg

25620429.jpg

不发邮件的问题处理

检查脚本,权限,查看教程对比检查问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值