zabbix监控(下)

Zabbix报警机制

一般配置号的监控项不会报警,首页也不提示。会导致我们不能及时看到服务器的信息,所以需要我们配置触发器和报警动作

触发器(trigger)比如定义一个条件,用户超过40个,当这个条件发生后,会导致一个触发事件,这个事件再执行某个动作
动作(action)触发器条件被触发后的行为,比如可以发邮件,或者重启或者其他...

沿用上一部分的案例,目前用户是42个,当超过这个数时,执行报警行为,行为为发邮件

在zabbix服务器上,查看收邮件服务,定义用户并测试是否能收到邮件

[root@zabbix-server ~]# rpm -q postfix 
postfix-2.10.1-6.el7.x86_64
[root@zabbix-server ~]# netstat -pntul | grep :25
tcp        0      0 127.0.0.1:25    0.0.0.0:*            LISTEN      1106/master         
tcp6       0      0 ::1:25             :::*              LISTEN      1106/master         
[root@zabbix-server ~]# tail -1 /etc/passwd
zabbix:x:1002:1002::/home/zabbix:/bin/bash
[root@zabbix-server ~]# echo "war" | mail -s "testzabbix" zabbix 
[root@zabbix-server ~]# mail -u zabbix
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/mail/zabbix": 1 message 1 new
>N  1 root                  Mon Jan  7 10:05  18/640   "testzabbix"
& 1
...
war

创建触发器test_one

触发器的表达式expression:大多数用秒作为参数,使用#代表不同含义,avg、count、last、minandmax 支持额外的第二个函数time_shift,这个参数允许从过去某一时间内引用参数

函数内容描述
sum(600)600s内所有值的总和
sum(#5)最后5个值的总和
last(20)最后20s的值
last(#5)倒数第五个值
avg(1h,1d)一天前的1小时的平均值

点击配置Configuration---模板Templates---选择模板a_one --触发器Triggers

点击右方--创建触发器Create trigger

选择--模板a_one--最新数据大于某个值--时间偏移量(Time shift)--超过的数值(N)

选择级别(Severity)--然后点击页面的最下方添加(Add)

添加成功

创建动作action_one

Configuration Actions

选择Action  填写Name ,New condition 选择Trigger ,select ,点击add

配置Operations 点击Operrations 选择New

设置 step duration 为60s  ,operation type为 send message ,send to users为Admin ,send only to为email ,最后点击add

最后页面如下

指定邮件服务器及收件人

Administration--Media types -- 选择Email

设置SMTP server,SMTP helo自定义,SMTP email ,最后选择update

更新页面如下

Administration---Users---选择Admin

进入选择media--add:send to 、when active(默认值就可以)、然后点击Add

页面如下,然后update

测试配置:添加用户,达到触发条件,查看是否收到邮件

[root@web1 ~]# useradd student1    //在2.100上添加用户
[root@web1 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.2.100 -p 10050 -k get_100_usersnumber
43

[root@zabbix-server ~]# mail -u zabbix
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/mail/zabbix": 2 messages 2 new
>N  1 root                  Mon Jan  7 10:05  18/640   "testzabbix"
 N  2 zabbix@localhost.loc  Mon Jan  7 13:16  20/825   "Problem: test_one"
& 2
Message  2:
From zabbix@localhost.localdomain  Mon Jan  7 13:16:57 2019
Return-Path: <zabbix@localhost.localdomain>
X-Original-To: zabbix@localhost
Delivered-To: zabbix@localhost.localdomain
From: <zabbix@localhost.localdomain>
To: <zabbix@localhost.localdomain>
Date: Mon, 07 Jan 2019 13:16:57 +0800
Subject: Problem: test_one
Content-Type: text/plain; charset="UTF-8"
Status: R

Problem started at 13:16:55 on 2019.01.07
Problem name: test_one
Host: web100
Severity: Disaster

Original problem ID: 79
& 

自动发现

可以实现:自动发现,添加主机,自动添加主机到组,自动链接模板到主机,自动创建监控项目与图形

创建自动发现规则

Configuration --- Discovery---Create discovery rule

set : name , ip range,update interval (这里为了实验为1m),然后checks 选择new 设置check type ,port range ,最后add

创建动作actions

Configuration --Actions--右面选择Discovery 点击create action

选择action 设置 name,new condition(这里为Host IP),然后点击Add

再选择Operations中的operations里new

operation details  添加operation type(这里为add to host  group和link to template) host groups(这里选择如图)每个类型分别点add

 

配置完如图所示

架设网站服务器192.168.2.200

[root@web2 ~]# yum -y install gcc pcre-devel
[root@web2 ~]# tar -zxf zabbix-3.4.4.tar.gz 
[root@web2 ~]# cd zabbix-3.4.4/
[root@web2 zabbix-3.4.4]# make install
[root@web2 zabbix-3.4.4]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
...
30 LogFile=/tmp/zabbix_agentd.log         //默认
...
93 Server=127.0.0.1,192.168.2.5           //添加监控服务器ip
...
134 ServerActive=192.168.2.5:10051        //监控服务器和端口号

[root@web2 zabbix-3.4.4]# useradd zabbix
[root@web2 zabbix-3.4.4]# cp  misc/init.d/fedora/core/zabbix_agentd  /etc/init.d/
[root@web2 zabbix-3.4.4]# vim /etc/init.d/zabbix_agentd 
 22         BASEDIR=/usr/local/zabbix
...
[root@web2 zabbix-3.4.4]# /etc/init.d/zabbix_agentd  start 
Reloading systemd:                                         [  确定  ]
Starting zabbix_agentd (via systemctl):                    [  确定  ]
[root@web2 zabbix-3.4.4]# netstat -pntul | grep :10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*                LISTEN      12600/zabbix_agentd 

[root@web2 zabbix-3.4.4]# yum -y install httpd
[root@web2 zabbix-3.4.4]# systemctl restart httpd.service 
[root@web2 zabbix-3.4.4]# netstat -pntul | grep :80
tcp6       0      0 :::80            :::*              LISTEN      12690/httpd       

在192.168.2.5查看zabbix服务

主动监控

当监控主机达到一定量级后,会越来越慢,这个时候,就可以用主动监控,释放压力,分布式监控也是一个选择

监控方式(对被监控主机而言)描述区别
被动监控server向agent发起链接,发送监控key,agent接受请求,响应监控数据(默认方式server不用每次需要数据链接agent,agent会自己收集数据并处理数据,server仅需保存即可
主动监控agent向server发起链接,agent请求需要检测的监控列表,server响应agent发送一个items列表,agent确认收到监控列表,tcp链接完成,session关闭,agent开始周期性的收集数据

创建被监控主机(主动监控agnet 192.168.2.77 -------> link zabbix server 192.168.2.5)

[root@agent77 ~]# yum  -y  install gcc pcre-devel
[root@agent77 ~]# tar -zxf zabbix-3.4.4.tat.gz
[root@agent77 ~]# cd zabbix-3.4.4
[root@agent77 zabbix-3.4.4]# ./configure --enable-agent --prefix=/usr/local/zabbix 
[root@agent77 zabbix-3.4.4]# make install
[root@agent77 zabbix-3.4.4]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
...
93 #Server=127.0.0.1             //注释掉
...
118  StartAgents=0               //去掉注释,设置为0 改成主动监控模式
...
134 ServerActive=192.168.2.5     //允许监控主机IP
...
145 Hostname=agent77              
//设置主机名,告诉监控服务器,,是谁发的数据信息,一定要和zabbix服务器配置的监控主机名称一致
...
183 RefreshActiveChecks=120     //默认就是120s
...
[root@agent77 zabbix-3.4.4]# useradd zabbix 
[root@agent77 zabbix-3.4.4]# /usr/local/zabbix/sbin/zabbix_agentd   //这里不用脚本,直接用命令启动(如果终止进程,用killall -9 zabbix_agentd)
[root@agent77 zabbix-3.4.4]# ps -C zabbix_agentd      //主动监控无端口号
  PID TTY          TIME CMD
 9909 ?        00:00:00 zabbix_agentd
 9910 ?        00:00:00 zabbix_agentd
 9911 ?        00:00:00 zabbix_agentd

配置监控端主机192.168.2.5

创建主动监控模板

克隆一个已有模板并改名,选择full clone ,然后add

修改监控项模式

Configuration--Templates--选择新克隆的模板,Items(监控项)--全选--Mass update

将Type 改为 zabbix  agent(active)主动监控模式

批量修改以后,发现有几个没有修改主动模式(因为并不是所有的监控项目都支持主动模式)点击type排序,点击即可关闭状态

添加被监控主机192.168.2.77 (与前面的配置文件保持一致)并调用主动监控模板

Configuration--hosts--create host

设置host name,visible name ,Groups in groups ,Agent interfaces IP address 为0.0.0.0 port为0

在选择Templates 为这个主机select模板 (我们刚才创建的主动监控模板) ,然后Add

Monitoring--Graphs :设置group,host,graph

发现图表没有数据,操作如下:Configuration--Templates--A_Template OS Linux(我们刚才创建的模板)--点击此模板的Discovery

然后把这两个都改为主动模式,点击相应的自动发现规则

修改type 为Zabbix agent(active),点击update 这里以一个为例,另一个同样的操作

更改以后如图

拓扑图

Monitoring--Maps(拓扑图),右面create map

自定义name及相关配置,然后add

点击刚才创建的图

右面的edit map

Icon 图标   Shape 形状 Link 连线 完成后点击update

聚合图形(Screens)

在一个页面显示多个数据图表,方便了解多组数据

Monitoring--Screens--Create screen

 

Owner:使用默认的Admin用户,Name:名称可以随意设置(这里为image),Columns:列数这里设置为2列,Rows:行数设置为4行

点击image(我们刚才设置的名字)

点击change

 select图表,设置width,Height,Horizontal align(水平方式),Vertical align (垂直方式)

监控案例

监控nginx

这里以192.168.2.100为例,停掉原来的网站服务,安装nginx

[root@web1 ~]# yum -y install gcc pcre-devel  openssl-devel 
[root@web1 ~]# tar -zxf nginx-1.12.2.tar.gz 
[root@web1 ~]# cd nginx-1.12.2/
[root@web1 nginx-1.12.2]# ./configure  --with-http_stub_status_module  --prefix=/usr/local/nginx
[root@web1 nginx-1.12.2]# make & make install
[root@web1 nginx-1.12.2]# ls /usr/local/nginx/
conf  html  logs  sbin

修改配置文件

[root@web1 nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
...
 35    server {
...
 47         location /status{
 48                   stub_status on;
 49         }

...
        }
[root@web1 nginx-1.12.2]# /usr/local/nginx/sbin/nginx 
[root@web1 nginx-1.12.2]# curl http://192.168.2.100/status
Active connections: 1                  //当前链接数
server accepts handled requests       
 1 1 1                                 //历史链接总数,处理请求数量,一共处理几个
Reading: 0 Writing: 1 Waiting: 0       //读,回应的,等待处理的

书写脚本

[root@web1 ~]# vim /root/nginx.status.sh
#!/bin/bash
case $1 in
active)
curl -s http://192.168.2.100/status | awk '/Active/{print $NF}';;
waiting)
curl -s http://192.168.2.100/status | awk '/Waiting/{print $NF}';;
accepts)
curl -s http://192.168.2.100/status | awk 'NR==3{print $2}';;
esac

在本机测试定义的监控命令

语法格式:UserParameter=key,command    UserParameter=key[*],<command>  key里的所有参数,都会传递给后面的位置变量

[root@web1 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
...
265 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
...
280 UnsafeUserParameters=1             //开启自定义监控
...
[root@web1 ~]# cp /root/nginx.status.sh  /usr/local/zabbix/bin/
[root@web1 ~]# chmod +x /usr/local/zabbix/bin/nginx.status.sh 
[root@web1 ~]# ls /usr/local/zabbix/bin/
nginx.status.sh  zabbix_get  zabbix_sender
[root@web1 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx.status.conf
UserParameter=nginx.status[*],/usr/local/zabbix/bin/nginx.status.sh $1                                             
[root@web1 ~]# /etc/init.d/zabbix_agentd  restart 
[root@web1 ~]# /usr/local/zabbix/bin/zabbix_get  -s 127.0.0.1 -k 'nginx.status[active]'
1

配置监控服务器192.168.2.5,添加监控项目item

Configuration--Hosts--items--点击Create item

配置方法参看上一片笔记zabbix监控(上)之自定义zabbix监控项目

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值