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

添加自定义监控项目

很多的监控项,我们都是在配置的模板中设置的,但是模板的选择是不能完全满足到我们生产中 的实际需求。所以我们可以自定义监控项目,通过编写Shell脚本或者python脚本,在脚本中获取数据库中所需业务的数,然后在通过在监控项里添加这个脚本,将脚本获取到的数目以图表的形势展现。这样就有利于运维人员及时发现和分析问题。

需求:

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

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

对于第一步,需要到客户端定义脚本

1.定义脚本,编写内容获取80端口连接数;

vim /usr/local/sbin/estab.sh //内容如下

#!/bin/bash

##获取80端口并发连接数,ESTABLISHED的意思是建立连接。表示两台机器正在通信。

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

(LISTENING状态
FTP服务启动后首先处于侦听(LISTENING)状态。

CLOSE_WAIT

对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭

TIME_WAIT

我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。)

因为客户端的还未有其他机器进行web连接,所以连接数还是为0。

2.修改脚本权限,否者zabbix用户无法执行:

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

3.客户端上编辑配置文件 vim /etc/zabbix/zabbix_agentd.conf//增加内容

UnsafeUserParameters=1  //表示可以使用自定义脚本

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

//自定义监控项的key为my.estab.count,这个是在zabbix里配置监控项中键值的名字(可自定),后面的[*]里面写脚本的参数(多个参数使用逗号分隔),如果没有参数则可以省略使用*代替,脚本为/usr/local/sbin/estab.sh

4.重启zabbix-agent服务 systemctl restart zabbix-agent

服务端上测试:

1.执行测试脚本测试,是否能正常取得值和返回值。

命令:zabbix_get -s 192.168.136.134 -p 10050 -k 'my.estab.count'

(使用zabbix_get命令可对服务端进行连接)

在执行这一步之前,首先要判断客户端和服务端机器是否存在防火墙规则和SELinux,如果存在则要把这些都关闭,

防火墙查看命令:iptables -nvL

SELinux查看 :getenforce

2.  然后在zabbix监控中心(浏览器)配置增加监控项目

(1)配置-->主机-->选择操作的主机的监控项-->创建监控项

填写完名称和键值,其他都是可以保持默认,然后最后按添加。

(2)点击图像:

创建图形-->填写名称-->添加(监控项处)-->选择创建的监控项-->添加

添加完后选择刚创建的图形,选择预览就可以看到图表数据。

3.创建触发器,做报警用:

触发器-->创建触发器-->填写名称-->表达式添加-->选择最后的添加即可

配置邮件告警

使用163.com邮箱。

1.登录163邮箱,设置开启POP3、IMAP、SMTP服务

设置授权密码,用于警报发送时的邮箱密码

2.到监控中心设置邮件告警

“管理”-->“报警媒介类型”-->“创建媒体类型”

{ALERT.SENDTO} ,{ALERT.SUBJECT},{ALERT.MESSAGE}

{ALERT.SENDTO} :接收邮件者

{ALERT.SUBJECT}:发送邮件的主题

{ALERT.MESSAGE}:发送邮件的内容

3.在服务端上编写邮件告警脚本:mail.py创建报警脚本mail.py

那么我们的脚本到底是放在哪里才能备调用呢?其实在配置文件中有定义: vim /etc/zabbix/zabbix_server.conf

(默认情况下这个路径下的目录为空,所以要在这里创建我们的脚本mail.py和编写内容)

编写脚本

vim /usr/lib/zabbix/alertscripts/mail.py

//内容参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py

脚本内容:

(用QQ邮箱报警:将脚本中的gport 端口号改下,还有smtp = smtplib.SMTP(gserver, gport)改为smtp = smtplib.SMTP_SSL(gserver, gport),其他方法一样即可实现QQ邮箱报警)

#!/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]

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

sendqqmail('[email protected]','740183413abc','[email protected]',to,subject,content)

if __name__ == "__main__":

main()

// sendqqmail  这里定义的是发送邮箱的发送者的信息

编写完脚本要修改其权限:

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

测试是否能成功发送邮件,服务端机器命令行下操纵

python /usr/lib/zabbix/alertscripts/mail.py [email protected] "this is test title" "success send mail"

因为脚本是用python写的,所以要执行python语句,邮件接收者:[email protected];邮件主题:"this is test title";邮件内容:"success send mail"。

命令行下测试成功,脚本正常能使用。

4.创建邮箱账户(用于接收告警,邮箱用户在Zabbix的用户里设置)

(1)设置用户首先要有用户群组,用户群组可以创建也可以使用自带的。修改用户群组权限为读写,因为如果用户群组无读写权限邮件也发不出去。

修改用户群组权限步骤:点击用户群组-->选择操作的用户群组-->权限-->选择“读写”-->选择-->把出现内容全选-->添加。

(2)创建邮箱账户步骤:

首先填写创建用户处信息:

然后修改报警媒介:

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

(3)点击“恢复操作”

(当告警恢复时也发送信息)

  测试警报

测试警报,故意创建一个监控主机的触发器,简单的填写触发器名称,然后添加表达式,在表达式中设定监控项和功能值N,满足功能值N时告警。最后添加即可

1.观察监控状态,是否发生警告问题和正常发送邮件:

(当动作处的信息为空白时可能是动作未定义对或者对脚本无权限)

2.问题查询

添加媒介信息后继续观察问题是否正确发送,但是首先要把问题先恢复,操作也是监控主机的触发器的表达式的条件。

(这样恢复尽在实验中操作)

要修改主机的问题告警频率,需要在模板中修改。具体为操作具体监控主机的模板,选择相应的监控项的数据更新时间

出现这种动作的完成后则,表示我们的问题就是能通过邮件的方式进行发送的。

如果问题不能发送邮件则,问题查询:

(1)检查邮件是否能进行发送

(2)检测脚本是否给zabbix用户有操作权限。

(3)查看邮件用户的信息

原文地址:http://blog.51cto.com/13589255/2103650

时间: 2024-07-29 15:33:08

linux监控平台搭建(3)添加自定义监控项目、配置邮件告警、测试警报、不发邮件的问题处理的相关文章

监控平台搭建-监控项

本人运维某生态互联网监控平台服务.过程中遇见了很多问题.目前互联网有很多的开源监控工具:nagios.zabbix.falcon.cacti...各有优点.这里不讲解监控工具的优缺点.写一些新搭建监控平台.需要哪些监控项.避免监控一头雾水.具体每个监控项会有若干小项. 监控的简单架构 具体一个机器监控项.基本就是下面的这些.尽量少的监控项,更加高效的分析报警 (1)首先一定是基础的硬件层面(机器的的基础组件) ipmi .监控cpu.温度.卡槽.raid状态.内存 (2)系统层面监控.(这里只介

Cacti监控平台搭建

作为一名Linux SA,日常最重要的就是保证网站正常稳定的运行,我们需要实时监控网站.服务器的运行状态,这时需要借助开源软件(cacti.nagios.zabbix等)监控来实现. Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户.因此,snmp和rrdtool是cacti的关键. Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成.snmp抓到数据不是存

linux监控平台介绍、zabbix监控介绍、安装zabbix

linux监控平台介绍 常见开源监控软件 cacti.nagios.zabbix.smokeping.open-falcon 等等. nagios和zabbix流行度很高. cacti.smokeping 偏向于监控基础的东西. cacti可以监控网络设备,它的图形表现得非常好,非常漂亮. IDC 机房比较喜欢用cacti.smokeping,因为适合监控网络设备. cacti.nagios.zabbix 服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存

Linux监控平台介绍, zabbix监控介绍,安装zabbix,忘记Admin密码如何做

Linux监控平台介绍 常见开源监控软件cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios.zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图 open-falcon为小米公司开发,开源后

19.12添加自定义监控项目19.13/19.14 配置邮件告警19.15 测试告警19.16 不发邮件的问题处理

19.12 添加自定义监控项目 19.13/19.14 配置邮件告警 19.15 测试告警 19.16 不发邮件的问题处理 19.12 添加自定义监控项目 zabbix的监控项目是在模板里面体现,但是有时候就会有些个性化的需求:某一个业务的数据,例如:运营人员想知道网站会员注册量,会员活跃度:实际上,这些数据,都可以通过数据库里面的表的数字来体现,但是zabbix模板是不可能提供那么相信的监控项目:遇到这种情况,就需要通过编程工具,写成脚本,最后通过zabbix监控项目,形成图表,就可以实现:

19.12添加自定义监控项目19.13-14配置邮件告警19.15测试告警19.16不发邮件问题处理

19.12添加自定义监控项目客户端上编辑配置文件 vim /etc/zabbix/zabbix_agentd.conf//增加UnsafeUserParameters=1 //表示使用自定义脚本UserParameter=my.estab.count[],/usr/local/sbin/estab.sh//自定义监控项的key为my.estab.count,后面的[]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh搜索 /UnsafeUserPar

Linux监控平台搭建

linux监控平台介绍 zabbix监控介绍 安装zabbix linux监控平台介绍 cacti.nagios.zabbix.smokeping.open-falcon等等cacti.smokeping偏向于基础监控,成图非常漂亮cacti.nagios.zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图o

linux监控平台搭建(1)监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码

            (一)监控平台介绍 (二)zabbix监控介绍 (三)安装zabbix 实验需要两台机器:服务端(133)和客户端(134) 1.首先在服务端安装Zabbix的yum扩展源. 下载地址: www.zabbix.com/download wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm 2.安装一下这个rpm包 rpm -ivh zabbix-re

Nagios监控平台搭建

Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios和cacti有什么区别呢?简单的来说cacti主要监控流量,服务器状态页面展示:nagios主要监控服务,邮件及短信报警灯,当然也有简单的流量监控界面,二者综合使用效果更好.(附Nagios工作简单逻辑图) Nagios监控客户端需要借助插件及NR