zabbix告警配置

zabbix告警配置,第1张

概述

假设我们配置了一些监控项和触发器,现在当触发器状态改变时会获取一些发生的事件,是时候考虑下一步行动了。

我们不可能一直盯着触发器或者事件列表,当发生一些标志性的事件时发送警告再好不过。当问题盯启发生,关注这些的用户都会被通知。

zabbix提供主要的功能就是发送告警就是这个原因。哪些人?在什么时候?应该收到哪些信息是可以被定义的。

为了发送和接收来自zabbix的告警,你必须:

定义媒介

配置发送信息到定义媒介的动作

动作由 触发条件 和 *** 作 组成。基本上当条件符合时, *** 作被执行。两个主要的 *** 作是 发送消息 和 执行远程命令

为了发现和自动注册创建的事件,一些额外的 *** 作是可用的,包含添加或者删除主机,链接模板等

一、媒介(Media types)

概述

Media 是用于发送zabbix的消息与告警的递送通道

可以定义一下媒介类型

E-mail

SMS

Jabber

Ez Texting

Custom alertscripts

1、 E-mail

为消息定义E-mail发送通道,需要配置e-mail 作为媒介类型并且传递指定的地址给用户

配置

依次点击 管理——>报警媒介类型,点击创建媒介类型(或者点击预先定义的媒介类型 E-mail)

媒介类型表包含通常的媒介类型属性

所有重要的字段都会标记红星

Name媒介类型名字

Type选择Email作为类型

SMTP server 设置stmp服务器作为处理信息的出口

SMTP server port 设置smtp服务的端口,这个参数从zabbix3.0开始支持

SMTP helo 这是正确的stmp链接值,通常为域名

SMTP email 这个地址会被用于信息发送者,用来发送消息,添加发送者的显示名 如 Zabbix_info则[email protected]>

几个可以生效的配置:

[email protected] 只有邮箱地址,不需要尖括号

[email protected]> 显示名与邮件地址,地址写在尖括号中

监控系统[email protected]> 使用UTF-8格式的显示名

Connection security 选择链接安全级别,None为不使用ssl选项,starttls 使用 CURLOPT_USE_SSL参数,SSL/TLS则CURLOPT_USE_SSL可选

SSL verify peer 标记checkbox同步SMTP服务的SSL证书,

Authentication 认证方法

Username 用户名

Password 密码

Enabled启用媒介

注意 : 为了使SMTP中的authentication 选项可用,zabbix在编译时,需要带--with-libcurl参数 使用cURL7.20.0或更高版本

第二个选项卡options

第二个选项卡options配置了告警的处理流程。同样的options配置在其他的媒介类型中也存在。

所有媒介都是并行处理的,当前最大会话每个媒介自己定义,但是zabbix服务的凯掘如告警处理总数被参数(zabbix_sever.conf)StartAlerters所限制。同一触发器生成的告警会序列化的处理

options表

concurrent sessions 并发会话数,三个选项,one(一个),unlimited(不限制),custom(自定义)

Attempts 尝试发送告警的次数,如果设置为1,则zabbix会发送以此通知,并且失败时不会重发

Attempts interval  重发通知的频率,发送失败时重发的间隔

配置用户的媒介

依次点击 Administration(管理)散知--->Users(用户)

点击用户的属性表,在Media(媒介)表中点击add

type选择Email作为类型

send to指定email地址,可以点击add添加多个地址,同理此地址也可设置显示名如[email protected]>或者[email protected]

when active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏

Use if severity 指定想要接受的告警等级

status启用与否

2、SMS

zabbix发送短信,使用串行GSM调试解调器连接到zabbix server的serial port

先决条件:

串行设备(正常情况下在linux的/dev/ttyS0)的速度取决于modem。zabbix不设置串行链接的速度。

zabbix user拥有对串行设备的读写权限,运行ls -l /dev/ttyS0查看当前权限

GSM调试解调器拥有PIN码,PIN也可以禁用使用命令 AT+CPIN="NNNN"输入PIN, 必须有双引号。

已经测试好的modem Siemens MC35 Teltonika ModemCOM/G10

配置SMS作为发送通道,需要配置SMS作为媒介类型并且在用户界面配置接收手机号

配置

依次点击 Administration--->Media types,点击创建media type或使用预先的配置

sms的Media type表属性

Description media type名

Type选择SMS

GSM modem 选择设备如 /dev/ttyS0

options选项卡见E-mail

配置用户媒介

依次点击 Administration(管理)--->Users(用户)

点击用户的属性表,在Media(媒介)表中点击add

types 选择SMS作为媒介

Send to 输入用户手机号

When active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏

Use if severity 指定想要接受的告警等级

status启用与否

3、Jabber (略)

4、Ez Texing(略)

5、Custom alertscripts

如果不满足于存在的媒介来发送警告,可以自定义脚本进行发送

警告脚本在zabbix server上执行,这些脚本位于server配置文件AlertScriptsPath变量(默认/usr/local/share/zabbix/alertscripts)

脚本示例:

#!/bin/bash

to=$1

subject=$2

body=$3

cat <<EOF |mail -s "$subject" "$to"

$bodyEOF

从3.4开始zabbix会检查exit code(shell执行返回码,0为成功),若exit code 不等于0,则认为执行失败,zabbix会重复执行

script不保存环境变量,所以环境变量要精确指定

配置

依次点击 Administration--->Media types,点击创建media type

mediatype表属性

Name输入媒介的名字

Type选择Script作为类型

Script name 输入脚本的名字(zabbix server中的脚本文件)

Script parameters 添加命令行参数到脚本

可支持ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}等宏,

{ALERT.SENDTO} 用户媒介中的send to(收件人)的值

{ALERT.SUBJECT} 动作配置中的Default subject(默认标题)

{ALERT.MESSAGE} 动作配置中的Default message(消息内容)

options表中定义了处理流程,见E-mail的说明

配置用户媒介User media

依次点击 Administration(管理)--->Users(用户)

点击用户的属性表,在Media(媒介)表中点击add

用户媒介属性

Type选择自定义脚本的媒介类型

Send to指定告警接收人

When active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏

Use if serverity 指定想要接受的告警等级

status启用与否

二、动作

如果你希望发生事件时会触发一些 *** 作,那么你需要配置action

动作可以定义回应所有支持的事件类型,

事件类型:

Trigger events触发器事件,当触发器状态从ok改变到problem或相反。

Discovery events 当自动发现产生

Auto registration events当新的agent自动注册时,或者经注册过的主机元数据改变

Internal events当监控项变为不支持或触发器状态变为unknown时

配置一个动作

依次 Configuration ——>Actions

从event source中选择需要的源(分为:触发器源,自动发现源,自动注册源,事件源)

点击创建动作

选择 *** 作执行的条件

选择具体 *** 作

选择恢复 *** 作

动作表的属性

Name唯一动作名

Type of calcaulation 选择条件触发的计算方法

And 必须符合所有条件

Or 只要一个条件符合即可

And/Or 结合二者,不同类型的条件用And,同一类型的条件用Or

Custom expression 用户自定义

Conditions 触发动作的一系列条件、

New condition 选择新的动作触发条件

Enabled启用动作

条件设置

基于触发器的条件

Application 应用集

Host group 主机组

Template 模板

Host主机

Tag 标签(串)

tag value 标签值

Trigger触发器

Trigger name 触发器名字

Trigger severity 触发器等级

Time period 触发时间

Problem is suppressed 触发问题是否意料之中,如主机维护

基于自动发现的条件

Host IP指定主机ip地址自动发现范围 格式: 单独的ip:192.168.1.33 范围ip: 192.168.1-101.1-254  Ip mask: 192.168.4。0/24

Service type 服务类型

service port 服务端口

Discovery rule 指定自动发现规则

Discovery check

Discovery object

Discovery status

Uptime/Downtime

Received value

Proxy

基于自动注册的条件

Host metadata 由zabbix_agentd.conf 文件中的HostMetadata变量定义

Host name

Proxy

基于内部事件的条件

Application

Event type

Host group

Template

Host

条件匹配后,就需要执行响应的动作了

可以支持以下动作

send a message

execute a remote command

add host

remove host

enable host

disable host

add to host group

remove from host group

link to template

unlink from template

set host inventory mode

执行远程命令

确保配置文件中(zabbix_agentd.conf)EnableRemoteCommands 参数设置为1

加入zabbix用户到sudo,vim /etc/sudoer

zabbix ALL=NOPASS: ALL #所有命令不需密码

zabbix ALL=NOPASS: /etc/init.d/apache restart  #指定某一命令不需要密码

触发 *** 作后,使用宏 编辑信息

如 告警信息模板

标题 服务器:{HOST.NAME} - 发生: {TRIGGER.NAME}故障

信息 告警主机:{HOST.NAME}

告警地址:{HOST.IP}

监控项目:{ITEM.NAME}

监控取值:{ITEM.LASTVALUE}

告警等级:{TRIGGER.SEVERITY}

当前状态:{TRIGGER.STATUS}

告警信息:{TRIGGER.NAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

事件ID:{EVENT.ID}

恢复信息

标题 服务器:{HOST.NAME} - {TRIGGER.NAME} 已恢复

信息 告警主机:{HOST.NAME}

告警地址:{HOST.IP}

监控项目:{ITEM.NAME}

监控取值:{ITEM.LASTVALUE}

告警等级:{TRIGGER.SEVERITY}

当前状态:{TRIGGER.STATUS}

告警信息:{TRIGGER.NAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

持续时间:{EVENT.AGE}

事件ID:{EVENT.ID}

zabbix监控添加主机,报警、监控的设置

根据使用zabbix这么久的经验,总结了一套zabbix比较实用的添加主机、监控报警的使用流程,供大家参考。

一:添加处理方法,就是如何报警

打开zabbix的管理雀中------处理方法----create media type:

我用的清森是脚本发邮件的方式来报警的,脚本名字为mail.py。指的一提的是脚本存放位置,我的脚本是放在/usr/local/zabbix/bin/目录下面,在这里不写目录的据对路径,直接写脚本名字,他的路径设置是在zabbix服务器端的配置文件中设置的,在zabbix_server.conf配置文件中设置:AlertScriptsPath=/usr/local/zabbix/bin/

二:添加zabbix用户和组,设置其邮箱地址等信息

1:打开zabbix的管理------用户---选择用户组下拉----create user group:

填写个组名,设置需要的权限直接保存就成,其他的不用填写和选择。

2:打开zabbix的管理------用户---选择用户下拉----create user:

填写用户信息

3:添加报警介质,就是报警方式,因为是报警,【信息】那项就不用勾选,信息一般就是服务器信息发生变化时报警,这个一般没有什么意义,所以不勾选,不过你也可以选择,根据个人喜好。类型的话就是选择处理发放中的报警介质,选择你添加的。然后可以保存信息,完成添加用户(Permissions那项没有不填写)。

三:报警触发器触发的动作设置

当监控项中的触发器达到你设置的报警值之后,需要执行 *** 作来发送邮件等动作。具体设置:

1:打开zabbix的系统配置--- *** 作---- 选择事件源为触发器------create action:

2:触发条件设置:

3:详细 *** 作设置,即满足触发条件之后执行什么动作,这里一般设置为发邮件之类的,设置收邮件的用户(建议每个组对应一个用户,这样发邮件的时候容易设置发送对象):

四:zabbix中常用到的几个key

Zabbix的key可以理解为zabbix的命令,执行这个key可以得到相应的结果。

1:监控端口的:net.tcp.port[,3306]

/usr/local/zabbix/bin/ -s192.168.8.120 -knet.tcp.port[,3306] 返回1为192.168.8.120的端口3306存在,0为不存在

2:监控进程的:proc.num[mysqld]

/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[mysqld] 返回值为192.168.8.120中mysqld的进程数量顷正山

/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[] 返回值为192.168.8.120中所有的进程数量

3:查看CPU核数的:system.cpu.num 返回值为服务器CPU的核数

4:查看系统的系统启动时间和当前时间:system.boottime、system.localtime 返回值为系统启动时间和当前时间,为时间戳格式

5:查看系统的简单信息:system.uname 返回值为192.168.8.120的系统信息,类似于linux系统的uname -a命令

6:查看windowns系统当前网卡的进出流量:net.if.out[{HOST.NAME},bytes]、net.if.in[{HOST.NAME},bytes]和linux系统的key:net.if.out[eth0,bytes]、net.if.in[eth0,bytes]一样

/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.in[192.168.8.120,bytes] 返回值为IP为192.168.8.120的进流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量

/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.out[192.168.8.120,bytes] 返回值为IP为192.168.8.120的出流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量

7:查看系统内存大小:vm.memory.size[total],返回值单位bytes

8:查看文件的大小: vfs.file.size[file] 如: vfs.file.size[/var/log/syslog] 返回的是/var/log/syslog的大小,单位是:bytes

9:查看文件是否存在:vfs.file.exists[file] 文件如果存在返回0,不存在返回1

10:查看文件的MD5:vfs.file.md5sum[file]查看小文件的MD5,返回为MD5值(好像只有2.0以上的版本有这个key)

11:自动发现网卡并监控流量和自动发现分区及分区挂载情况的两个key:net.if.discovery,vfs.fs.discovery,windows和linux监控模板中都有这模板(2.0以上版本),应用即可

以上是常用的key,其实监控服务器无非就是内存、硬盘占用、CPU负载、流量、服务器和端口等情况。如果要监控其他的可以自定义key来实现,本人喜欢自定义key,写个脚本来返回,得到自己想要的监控结果,zabbix在这块做的非常好,扩展性很强,支持各种脚本来实现自定义的key。

要启用自定义key,需要在客户端的配置文件中启用UnsafeUserParameters=1参数,然后在配置文件的最下面来定义key,如:

UserParameter=free.disk,/usr/local/zabbix/bin/disk.py

free.disk为key的名字,/usr/local/zabbix/bin/disk.py为服务器端调用free.disk这个key时执行的脚本,其结果就是free.disk的返回值。脚本可以是任何可以运行的脚本语言。

五:创建监控模板和监控项

其实在zabbix服务器端安装完成之后,就有许多自带的监控模板,基本上可以满足大众化的监控需求,不过其中有许多是没有必要的监控项或是自己不感兴趣的,比较冗余,所以要做好监控的话,还是自定义模板和监控项,这个监控模板可以修改zabbix系统自带的,也可以自己创建。以下为自己创建监控模板。

1:创建监控模板:

打开zabbix的系统配置---模板----create template:

填写模板名字和模板所在组保存即可。

zabbix是一个CS结构的监控系统,之前一直没有很好的整理下安装:安装几次都要重新看,目前将Zabbix配置安装进行整理如下

Zabbix配置需要web、php、mysql、gcc等支持

请自行配置好

接下来我们开始 *** 作

*** 作范例的 *** 作系统为Centos 5.2

tar zxvf zabbix-1.6.2.tar.gz mysql -uroot -p mysql>create databases zabbix mysql>GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY ‘zabbix’ WITH GRANT OPTION mysql>use zabbix mysql>source /usr/local/src/zabbix-1.6.2/create/schema/mysql.sql mysql>source /usr/local/src/zabbix-1.6.2/create/data/data.sql mysql>source /usr/local/src/zabbix-1.6.2/create/data/images_mysql.sql cd zabbix-1.6.2

./configure –prefix=/usr/local/zabbix/ \ //指定安装目录 –enable-server \ //安装server,被监控节点不需渣蔽要 –enable-agent \ //安装agent –with-mysql \ //需要mysql支持需要指定目录 –with-net-snmp //需要snmp支持罩段需要指定目录

常用的编译选项如下,需要更多的可以看帮助

–enable-static Build statically linked binaries –enable-server Turn on build of server –enable-proxy Turn on build of proxy server –enable-agent Turn on build of agent –enable-ipv6 Turn on support of IPv6 –with-mysql –with-oracle –with-pgsql –with-sqlite3 –with-jabber –with-net-snmp –with-ucd-snmp

Zabbix配置客户端只需执行:

./configure –prefix=/usr/local/zabbix –enable-agent make &&make install

Zabbix配置安装过程没有报错基本就OK,接下物梁誉来增加对应的端口:

vi /etc/services

加入

zabbix_agent 10050/tcp # zabbix agent zabbix_agent 10050/udp # zabbix agent zabbix_trapper 10051/tcp # zabbix trapper zabbix_trapper 10051/udp # zabbix trapper

复制配置文件和服务启动脚本

cp -rf misc/conf /opt/app/zabbix/etc -R

misc/init.d/

选择一个自己合适自己环境的启动脚本,或者自己写一个

添加一个zabbix用户

useradd zabbix

然后用脚本启动zabbix_server和zabbix_agentd

[root@zabbix ~]#ll /usr/local/zabbix/sbin/ total 2344 -rwxr-xr-x 1 root root 362581 Apr 16 22:55 zabbix_agent -rwxr-xr-x 1 root root 425336 Apr 16 22:55 zabbix_agentd -rwxr-xr-x 1 root root 136854 Apr 16 22:55 zabbix_get -rwxr-xr-x 1 root root 163086 Apr 16 22:55 zabbix_sender -rwxr-xr-x 1 root root 1284665 Apr 16 22:55 zabbix_server

Zabbix配置回到zabbix的编译目录:

生成配置文件:

mkdir /etc/zabbix cp misc/conf/* /etc/zabbix/ vi frontends/php/include/db.inc.php

更改数据库相关内容:

$DB_TYPE ="MYSQL" $DB_SERVER ="localhost" $DB_DATABASE ="zabbix" $DB_USER ="zabbix" $DB_PWD ="zabbix" cp -rf frontends/php /var/www/html/zabbix -R

php环境需求

PHP version: 5.2.8 Ok PHP Memory limit: 128M Ok PHP post max size: 8M Ok PHP max execution time: 300 sec Ok PHP Databases support: MySQL Ok PHP BC math support yes Ok GD Version: bundled (2.0.34 compatible) Ok Image formats: PNG Ok PHP Timezone: Asia/Shanghai

注:gd-devel没有安装上去将无法在web端安装过去,对应的其他也要安装,比如net-snmp,可通过yum来安装,方便。

[root@zabbix ~]#rpm -qa|grep gd gd-devel-2.0.33-9.4.el5_1.1 gd-2.0.33-9.4.el5_1.1

安装php-bcmath

yum -y install php-bcmath

修改时区

Vi /etc/php.ini date.timezone =Asia/Shanghai

如何安装Zabbix就介绍到这里了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11970874.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存