首页 > 技术文章 > zabbix监控流程

cljhfy 2019-05-22 11:07 原文


先抛开zabbix监控的其他架构不谈,从最简单的server-agent模式说起,即监控主机-被监控主机(主动模式、被动模式主要是影响数据的采集方式和服务端的负载压力),首先是zabbix最重要的五个组成部分:Item、Trigger、Action、Media、User(其实应该还有个Event,不过这个表现的不直观),翻译一下就是监控元素、触发器、动作、报警介质、用户

1.item

Items are the ones that gather data from a host. 意思就是监控采集的项目

1.1先添加一个需要监控的主机



1.2 设置item监控项





2.Trigger

顾名思义触发器,也就是将采集来的item值进行一定的判断,需要注意的点有两个,一个是serverity,即报警等级,还有一个是判断的逻辑,判断逻辑分单机判断和触发依赖




3.Action

action就是server对事件响应(Event)需要做相应的措施了,关键点是四个,一是如何触发action,而是action具体使用什么方式,三是发送的内容,四是动作的对象。action支持的Event有四种:用大白话讲就是Trigger触发时、discover rule文件生效时、自动发现新服务器时以及server本身出问题时。最主要的就是Trigger触发来产生action,在创建action时会有"condition"这个选项来设置触发器,而action的方式是由media来决定,media有五种,常见的是mail、sms、script这三种,邮件的方式只需要在创建一个media方式选邮件,然后填写smtp服务器地址即可,邮件的内容是在action选项卡里面设置,支持普通的字符串以及表达式比如{TRIGGER.NAME}这种,这个值就是对应触发的Trigger的名字

3.1 报警媒介

3.1.1 使用本地虚拟邮箱

  • yum安装mailx
yum -y install mailx

  • 设置邮箱白名单


白名单的邮箱地址可以在服务端/var/spool/mail/zabbix查找

Return-Path: <zabbix@localhost.localdomain>
Received: from localhost (localhost [127.0.0.1])
	by cl130.localdomain (Postfix) with SMTP id 62C0B1098C
	for <3558689766@qq.com>; Wed, 22 May 2019 23:20:29 -0400 (EDT)
From: <zabbix@localhost.localdomain>
To: <3558689766@qq.com>
Date: Wed, 22 May 2019 23:20:29 -0400
Subject: Problem: /etc/passwd has been changed on 192.168.163.129
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
Message-Id: <20190523032029.62C0B1098C@cl130.localdomain>


  • 添加告警媒介
    • 点击配置——报警媒介类型——创建媒介类型,页面配置如下


  • 设置好了,就可以触发一下看效果了

3.1.2 web配置第三方邮箱

  • 添加告警媒介

    • 点击配置——报警媒介类型——创建媒介类型,页面配置如下




  • 设置好了,就可以触发一下看效果了


3.1.3 脚本告警

  • yum安装mailx

  • 修改/etc/mail.rc

//添加
set from=发件箱
set smtp=smtp.qq.com //我用的是qq,可以根据使用邮箱的不同来填不同内容
set smtp-auth-user=发件箱
set smtp-auth-password=发件箱授权码
set smtp-auth=login

  • 重启postfix服务

  • 在服务端上写发送告警信息脚本

[root@cl130 alertscripts]# vim /usr/local/share/zabbix/alertscripts/sendmail.sh

#!/bin/bash
subject=$(echo $2 |tr "\r\n" "\n")
message=$(echo $3 |tr "\r\n" "\n")
echo "$message" | /usr/bin/mail -s "$subject" $1 &>/tmp/sendmail.log

[root@cl130 alertscripts]# cd ..
[root@cl130 alertscripts]# chown -R zabbix.zabbix alertscripts
[root@cl130 alertscripts]# chmod +x scripts/sendmail.sh

//重启服务
[root@cl130 ~]# pkill zabbix
[root@cl130 ~]# zabbix_server 
[root@cl130 ~]# zabbix_agentd 
[root@cl130 ~]# ss -ntl
State       Recv-Q Send-Q               Local Address:Port                 Peer Address:Port 
LISTEN      0      128                             *:10050                           *:*     
LISTEN      0      128                              *:10051  
// 测试脚本
[root@cl130 alertscripts]# bash sendmail.sh 3558689766@qq.com test hello world

  • 添加告警媒介
    • 点击配置——报警媒介类型——创建媒介类型,页面配置如下



  • 触发告警,测试效果

推荐阅读