二、Zabbix 企業(yè)監(jiān)控系統(tǒng)搭建

zabbix監(jiān)控介紹

一、環(huán)境準(zhǔn)備

centos7.5 系統(tǒng)服務(wù)器3臺、 一臺作為監(jiān)控服務(wù)器, 兩臺臺作為被監(jiān)控節(jié)點, 配置好yum源、 防火墻關(guān)閉、 各節(jié)點時鐘服務(wù)同步、 各節(jié)點之間可以通過主機名互相通信。

主機名 ip 服務(wù)
zabbix-server 192.168.94.141 zabbix-server
zabbix-agent1 192.168.94.142 zabbix-agent
zabbix-agent2 192.168.94.143 zabbix-agent

所有機器關(guān)閉防火墻和selinux

[root@zabbix-master ~]# systemctl stop firewalld && setenforce 0(修改配置文件關(guān)閉)
[root@zabbix-agent1 ~]# systemctl stop firewalld && setenforce 0
[root@zabbix-agent2 ~]# systemctl stop firewalld && setenforce 0
# 必要時可永久關(guān)閉或開啟相應(yīng)的端口

二、Zabbix的安裝

下載地址

1)更新yum倉庫

我們?nèi)ス倬W(wǎng)下載一個包zabbix-release-4.4-1.el7.noarch.rpm,本地安裝至我們的虛擬機,這樣,我們本地就有了新的yum源,可以直接安裝zabbix服務(wù):

下載安裝官方y(tǒng)um源
[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
[root@zabbix-server ~]# yum clean all
[root@zabbix-server ~]# yum makecache fast
已加載插件:fastestmirror
正在清理軟件源: base extras updates zabbix zabbix-non-supported

更新yum倉庫:

[root@zabbix-server ~]# yum repolist 
Loaded plugins: fastestmirror, langpacks  
Loading mirror speeds from cached hostfile
zabbix-non-supported                                                      4/4
repo id                     repo name                                   status
base                        base                                         9,363
epel                        epel                                        11,349
zabbix/x86_64               Zabbix Official Repository - x86_64             80
zabbix-non-supported/x86_64 Zabbix Official Repository non-supported -       4
repolist: 20,796

安裝:

[root@zabbix-server ~]# yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql zabbix-proxy-mysql zabbix-java-gateway zabbix-nginx-conf

#如果上面安裝報錯
[root@zabbix-server ~]# vim /etc/yum.repo.d/zabbix.repo   #更換國內(nèi)源
[zabbix]
name=Zabbix Official Repository - $basearch
#baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/    # 這里我們換成阿里云的yum源
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
#baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/  #換了上面Zabbix的安裝源地址,其組件地址也要記得換! 
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

[root@zabbix-server ~]# yum clean all
[root@zabbix-server ~]# yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql zabbix-proxy-mysql zabbix-java-gateway zabbix-nginx-conf
或者(官方)
[root@zabbix-server ~]# yum-config-manager --enable rhel-7-server-optional-rpms
2)安裝設(shè)置數(shù)據(jù)庫:

1、創(chuàng)建 mariadb.repo

[root@zabbix-server ~]# vim /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB 
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64 
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB 
gpgcheck=1

2、yum 安裝最新版本 mariadb

[root@zabbix-server ~]# yum -y install mariadb mariadb-server

修改配置文件:/etc/my.cnf.d/server.cnf

[root@zabbix-server ~]# vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = ON          #跳過主機名解析
innodb_file_per_table = ON      #   
innodb_buffer_pool_size = 256M  #緩存池大小
max_connections = 2000          #最大連接數(shù)

log-bin = master-log            #開啟二進制日志

[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# systemctl enable mariadb

3、創(chuàng)建數(shù)據(jù)庫并授權(quán)賬號

MariaDB [(none)]> create database zabbix character set 'utf8';  # 創(chuàng)建zabbix數(shù)據(jù)庫
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'192.168.94.%' identified by "123";
# 注意授權(quán)網(wǎng)段
MariaDB [(none)]> flush privileges;

4、導(dǎo)入表
首先,查看一下,zabbix-server-mysql這個包提供了什么:

[root@zabbix-server ~]# rpm -ql zabbix-server-mysql | grep sql
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-4.4.4
/usr/share/doc/zabbix-server-mysql-4.4.4/AUTHORS
/usr/share/doc/zabbix-server-mysql-4.4.4/COPYING
/usr/share/doc/zabbix-server-mysql-4.4.4/ChangeLog
/usr/share/doc/zabbix-server-mysql-4.4.4/NEWS
/usr/share/doc/zabbix-server-mysql-4.4.4/README
/usr/share/doc/zabbix-server-mysql-4.4.4/create.sql.gz   #生成表的sql文件

我們來使用這個文件生成我們所需要的表:

[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-4.4.4/
[root@zabbix-server zabbix-server-mysql-4.4.4]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@zabbix-server zabbix-server-mysql-4.4.4]# gzip -d create.sql.gz 
[root@zabbix-server zabbix-server-mysql-4.4.4]# ls
AUTHORS  ChangeLog  COPYING  create.sql  NEWS  README
[root@zabbix-server zabbix-server-mysql-4.4.4]# head create.sql 
CREATE TABLE `users` (
    `userid`                 bigint unsigned                           NOT NULL,
    `alias`                  varchar(100)    DEFAULT ''                NOT NULL,
    `name`                   varchar(100)    DEFAULT ''                NOT NULL,
    `surname`                varchar(100)    DEFAULT ''                NOT NULL,
    `passwd`                 varchar(32)     DEFAULT ''                NOT NULL,
    `url`                    varchar(255)    DEFAULT ''                NOT NULL,
    `autologin`              integer         DEFAULT '0'               NOT NULL,
    `autologout`             varchar(32)     DEFAULT '15m'             NOT NULL,
    `lang`                   varchar(5)      DEFAULT 'en_GB'           NOT NULL,

我們查看表頭發(fā)現(xiàn)沒有創(chuàng)建數(shù)據(jù)庫的命令,這也正是我們剛剛手動創(chuàng)建數(shù)據(jù)庫的原因。

然后,我們直接把這個表導(dǎo)入至我們的數(shù)據(jù)庫即可:

[root@zabbix-server zabbix-server-mysql-4.4.4]# mysql -uzabbix -p123 -h 192.168.94.141 zabbix < create.sql

導(dǎo)入以后,進入數(shù)據(jù)庫查看一下:

[root@zabbix-server ~]# mysql -uzabbix -p123 -h192.168.94.141
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| application_discovery      |
| application_prototype      |
......
| users_groups               |
| usrgrp                     |
| valuemaps                  |
| widget                     |
| widget_field               |
+----------------------------+
149 rows in set (0.001 sec)

可以看出來,數(shù)據(jù)已經(jīng)導(dǎo)入成功了。

三、配置 server 端

數(shù)據(jù)庫準(zhǔn)備好了以后,就要去修改server端的配置文件了。

[root@zabbix-server ~]# cd /etc/zabbix/
[root@zabbix-server zabbix]# ls
web                 zabbix_java_gateway.conf         zabbix_server.conf
zabbix_agentd.conf  zabbix_java_gateway_logback.xml
zabbix_agentd.d     zabbix_proxy.conf
[root@zabbix-server zabbix]# cp zabbix_server.conf{,.bak}
[root@zabbix-server zabbix]# vim zabbix_server.conf
ListenPort=10051            #默認(rèn)監(jiān)聽端口
SourceIP=192.168.94.141     #發(fā)采樣數(shù)據(jù)請求的IP

為什么要設(shè)置SourceIP,由于我們的客戶端可能一個主機多個IP,我們又不能允許任意的IP都能從我們這里讀取數(shù)據(jù),就會有一個驗證方式,而該方式是基于識別SourceIP來實現(xiàn)的。

1204916-20171202111451323-1945674171.png

日志,默認(rèn)用文件記錄,也可以發(fā)送給我們的rsyslog日志記錄系統(tǒng),如果我們選擇默認(rèn),則日志存放在LogFile=/var/log/zabbix/zabbix_server.log中,也可以自己設(shè)置。

1204916-20171202111457261-900254693.png

日志的滾動。默認(rèn)值為1,表示滾動。我們設(shè)為0則表示不滾動。當(dāng)數(shù)據(jù)特別多的時候,我們也可以設(shè)置成為1,然后在Maximum size of log file in MB設(shè)置當(dāng)數(shù)據(jù)文件最大到多少時會自動滾動。

1204916-20171202111508870-541941322.png

日志的級別。一共有6個級別。我們可以根據(jù)自己的需要來設(shè)置級別。其中0表示輸出最少的信息,5表示輸出最詳細的信息,默認(rèn)值為3,設(shè)置為3的話就表示,0、1、2、3四個級別都顯示。考慮到生產(chǎn)系統(tǒng)中的壓力時,這里的信息,如果沒有必要的話,越簡單越好,只要在出錯的時候,我們可以依據(jù)其進行排錯即可。

數(shù)據(jù)庫相關(guān)的設(shè)置:

DBHost=192.168.94.141       #數(shù)據(jù)庫對外的主機
DBName=zabbix               #數(shù)據(jù)庫名稱
DBUser=zabbix               #數(shù)據(jù)庫用戶
DBPassword=123              #數(shù)據(jù)庫密碼
DBPort=3306                 #數(shù)據(jù)庫啟動端口

補充:可以使用grep -i "^####" zabbix_server.conf來查看配置文件中有哪些大段,也可以使用grep -i "^###" zabbix_server.conf來查看配置文件中每一段中的配置項有哪些

開啟服務(wù):

[root@zabbix-server zabbix]# systemctl start zabbix-server.service

確認(rèn)一下我們的端口有沒有開啟:

[root@zabbix-server zabbix]# ss -lnta | grep 10051
LISTEN     0      128          *:10051                    *:*                  
LISTEN     0      128         :::10051                   :::* 

如果查到的端口沒有開啟,就要去檢查一下配置文件有沒有出問題。

至此,server端的進程啟動已經(jīng)ok了,接下來就可以使用web GUI來打開接口進行設(shè)定了

四、配置 web GUI

查看web GUI的配置文件在哪里:

[root@zabbix-server ~]# rpm -ql zabbix-web | less
/etc/httpd/conf.d/zabbix.conf
/etc/zabbix/web
/etc/zabbix/web/maintenance.inc.php
/etc/zabbix/web/zabbix.conf.php
/usr/share/doc/zabbix-web-4.4.4
/usr/share/doc/zabbix-web-4.4.4/AUTHORS
/usr/share/doc/zabbix-web-4.4.4/COPYING
/usr/share/doc/zabbix-web-4.4.4/ChangeLog
/usr/share/doc/zabbix-web-4.4.4/NEWS
/usr/share/doc/zabbix-web-4.4.4/README
/usr/share/zabbix
/usr/share/zabbix/actionconf.php
/usr/share/zabbix/adm.gui.php
/usr/share/zabbix/adm.housekeeper.php
/usr/share/zabbix/adm.iconmapping.php
/usr/share/zabbix/adm.images.php
/usr/share/zabbix/adm.macros.php
……

可以看出,有一個/etc/httpd/conf.d/zabbix.conf文件,這個配置文件就是幫我們做映射的文件,我們可以去看一看這個文件:

Alias /zabbix /usr/share/zabbix     #我們訪問的時候要在主機后加上/zabbix來訪問我們這個服務(wù)
1204916-20171202111541714-86449116.png

時區(qū)是一定要設(shè)置的,這里被注釋掉是因為,我們也可以在php的配置文件中設(shè)置時區(qū),如果我們在php配置文件中設(shè)置時區(qū),則對所有的php服務(wù)均有效,如果我們在zabbix.conf中設(shè)置時區(qū),則僅對zabbix服務(wù)有效。所以,我們?nèi)hp配置文件中設(shè)置我們的時區(qū):

[root@zabbix-server ~]# vim /etc/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai

接下來,啟動httpd服務(wù):

[root@zabbix-server ~]# systemctl start httpd.service
[root@zabbix-server ~]# ss -nutl | grep :80
tcp    LISTEN     0      128      :::80                   :::*

五、瀏覽器訪問并進行初始化設(shè)置

我們使用瀏覽器訪問192.168.94.141/zabbix,第一次訪問時需要進行一些初始化的設(shè)置,我們按照提示操作即可:

image.png
image.png
image.png
image.png
image.png
image.png

點擊Finish以后,我們就會跳轉(zhuǎn)到登錄頁面,使用默認(rèn)的賬號密碼登錄即可:
默認(rèn)賬號:admin
默認(rèn)密碼:zabbix

image.png

登陸進來就可以看到我們的儀表盤了:

image.png

切換中文:

image.png

image.png

解決zabbix儀表盤切換中文時有些字亂碼問題

六、配置 agent 端

當(dāng)我們把監(jiān)控端配置啟動以后,我們需要來設(shè)置一下我們的監(jiān)控端,我們在被監(jiān)控的主機安裝好agent,設(shè)置好他的server,并把他添加到server端,就能將其納入我們的監(jiān)控系統(tǒng)中去了。

1)安裝 zabbix

同樣的,我們先來安裝zabbix。下載包,注釋epel源,安裝所需的包。具體步驟如下:

下載安裝官方y(tǒng)um源
[root@zabbix-agent1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
[root@zabbix-agent1 ~]# yum clean all
[root@zabbix-agent1 ~]# yum makecache fast
已加載插件:fastestmirror
正在清理軟件源: base extras updates zabbix zabbix-non-supported
# yum 下載
[root@zabbix-agent1 ~]# yum install zabbix-agent zabbix-sender -y

安裝完成以后,修改配置文件。

2)修改配置文件

先查一下包內(nèi)有什么:

[root@zabbix-agent1 ~]# rpm -ql zabbix-agent
/etc/logrotate.d/zabbix-agent
/etc/zabbix/zabbix_agentd.conf
/etc/zabbix/zabbix_agentd.d
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
/usr/lib/systemd/system/zabbix-agent.service
/usr/lib/tmpfiles.d/zabbix-agent.conf
/usr/sbin/zabbix_agentd
/usr/share/doc/zabbix-agent-4.4.4
/usr/share/doc/zabbix-agent-4.4.4/AUTHORS
/usr/share/doc/zabbix-agent-4.4.4/COPYING
/usr/share/doc/zabbix-agent-4.4.4/ChangeLog
/usr/share/doc/zabbix-agent-4.4.4/NEWS
/usr/share/doc/zabbix-agent-4.4.4/README
/usr/share/man/man8/zabbix_agentd.8.gz
/var/log/zabbix
/var/run/zabbix

對配置文件做一個備份,然后去修改配置文件:

[root@zabbix-agent1 ~]# cd /etc/zabbix/
[root@zabbix-agent1 zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@zabbix-agent1 zabbix]# cp zabbix_agentd.conf{,.bak}
[root@zabbix-agent1 zabbix]# vim zabbix_agentd.conf
image-20200123112302076.png
image-20200123112532726.png
image-20200123112718258.png

重點需要修改的仍然是GENERAL PARAMETERS段:

1204916-20171202111819198-1483932137.png

是否允許別人執(zhí)行遠程操作命令,默認(rèn)是禁用的,打開的話會有安全風(fēng)險。

Server=192.168.94.141       #指明服務(wù)器是誰
ListenPort=10050            #自己監(jiān)聽的端口
ListenIP=0.0.0.0            #自己監(jiān)聽的地址,0.0.0.0表示本機所有地址
StartAgents=3               #優(yōu)化時使用的

ServerActive=192.168.94.141 #主動監(jiān)控時的服務(wù)器
Hostname=agent1     #自己能被server端識別的名稱

修改完成之后,我們保存退出。然后就可以啟動服務(wù)了:

[root@zabbix-agent1 zabbix]# systemctl start zabbix-agent
[root@zabbix-agent1 zabbix]# netstat -lntp | grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      15909/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      15909/zabbix_agentd

agent2同樣操作,但是主機名不能一樣

接著,就可以去server端添加了。

七、監(jiān)控過程詳解

1)修改密碼
image.png
image.png
2)創(chuàng)建主機及主機群組

先定義一個主機群組:

image.png

image.png

然后就可以去添加主機了:

image.png
image.png

當(dāng)然,上面有很多選擇卡,有一個加密:

image.png

添加完成后,就能在列表中看到這個主機了

image.png

再把agent2也添加進來

image.png

3)監(jiān)控項(items)

創(chuàng)建模板 > 創(chuàng)建應(yīng)用集 > 創(chuàng)建監(jiān)控項

① 首先我們創(chuàng)建一個模板

image.png

給模板取一個名字綁定群組
image.png

創(chuàng)建好了之后就會出現(xiàn)在列表里
image.png

② 創(chuàng)建應(yīng)用集

點擊應(yīng)用集

image.png

創(chuàng)建應(yīng)用集

image.png

給應(yīng)用集取一個名字,一般根據(jù)功能取易識別的就好
image.png

好了,現(xiàn)在就是在agent模板下,建立了一個CPU應(yīng)用集
image.png

③ 創(chuàng)建監(jiān)控項

點擊監(jiān)控項

image.png

image.png

任何一個被監(jiān)控項,如果想要能夠被監(jiān)控,一定要在zabbix-server端定義了能夠連接至zabbix-agent端,并且能夠獲取命令?;蛘咴赼gent端定義了能夠讓server端獲取命令。一般都是內(nèi)建的命令,都對應(yīng)的有其名字,被我們稱之為key。

image.png

關(guān)于key值,我們可以直接在網(wǎng)頁上設(shè)置(服務(wù)器自動執(zhí)行),也可以使用命令行命令(手動執(zhí)行)來獲?。?br> [root@zabbix-server ~]# zabbix_get -s 192.168.94.142 -p 10050 -k "system.cpu.intr"
在我們的agent端,也可以使用命令來查看intr的速率變化:

這里定義了一個不帶參數(shù)的監(jiān)控項"system.cpu.intr"

image.png

image.png

設(shè)置完以后,點擊添加,即可加入,并會自動跳轉(zhuǎn)至下圖頁面:

image.png

然后點擊配置,主機回到下面這個頁面,去給主機綁定我們剛才創(chuàng)建好的模板

image.png

④ 綁定模板

點擊agent1

image.png

image.png

然后點擊更新,等待5秒,我們可以看到,我們agent1節(jié)點后面的選項已經(jīng)有變成綠色的了:
image.png

我們也可以回到我們的儀表盤,可以看到,我們的監(jiān)控項有一個處于啟用狀態(tài):

image.png

那么,我們的數(shù)據(jù)在哪里呢?可以點擊最新數(shù)據(jù),把我們的主機群組添加進來,應(yīng)用一下,就可以看到下面的狀態(tài)了:

image.png
image.png

可以看到,我們還有一個圖形頁面,點進去則可以看圖形的分布:

image.png

然后我們發(fā)現(xiàn)切換中文之后,下面有些字體亂碼

解決zabbix儀表盤切換中文時有些字亂碼問題

image.png

事實上,我們關(guān)注的指標(biāo)有很多種,我們一一添加進來即可。

剛剛我們定義的監(jiān)控項是很簡單的,指定一個key即可,但是有些監(jiān)控項是帶有參數(shù)的,這樣一來,我們的監(jiān)控項就有更多的靈活性。接下來,我們來簡單說明一個需要帶參數(shù)的監(jiān)控項:

⑤ 定義一個帶參數(shù)的監(jiān)控項

這一次我們定義的監(jiān)控項,不綁定模板,不指定應(yīng)用集,也就是說它只是針對某一個主機設(shè)定的監(jiān)控項


image.png
image.png
1204916-20171202112221667-2119454107.png

圖中的[]就是需要參數(shù)的意思,里面的值即為參數(shù),帶<>為不可省略的。我們就以這個例子來說明:
if表示是接口名;<mode>表示是那種模式,包括但不限于:packets(包)、bytes(字節(jié))、errors(錯誤)、dropped(丟包)、overuns等等(上述內(nèi)容通過ifconfig查看)

我們來設(shè)置一下這個監(jiān)控值:

image.png

image.png

同樣的,我們也可以通過命令行來查看:
[root@zabbix-server ~]# zabbix_get -s 192.168.94.143 -p 10050 -k "net.if.in[ens32,packets]"
1739

我們發(fā)現(xiàn)agent2也亮了起來

image.png

接著我們?nèi)ゲ榭匆幌聢D形

image.png
image.png

⑥ 快速定義類似指標(biāo)

如果我們想要定義一個類似的指標(biāo),我們可以直接選擇克隆,然后簡單的修改一點點參數(shù)即可。

就以我們剛剛定義的net.if.in[ens33,packets]為例,如果我們想要在定義一個out的進行如下操作即可:

image.png

只需要修改這兩個地方就可以

image.png
image.png

然后點擊添加,就可以看到列表中就有了我們剛才添加的監(jiān)控項

image.png

我們來到 檢測中 ---> 最新數(shù)據(jù),可以看到,我們定義的監(jiān)控項都已經(jīng)有值了:


image.png
image.png

⑦ 刪除監(jiān)控項

如果有一個監(jiān)控項,我們用不上了,就可以刪除掉。但是如果你直接刪除的話,默認(rèn)數(shù)據(jù)是會留下的,所以我們要先清除數(shù)據(jù),然后再刪除,具體操作步驟如下:

1204916-20171202112656808-290199455.png

⑧ 監(jiān)控項存儲的值

對于監(jiān)控項存儲的值,老一點的版本只有以下三種方式:

  • As is:不對數(shù)據(jù)做任何處理(存儲的為原始值)
  • Delta:(simple change)(變化),本次采樣減去前一次采樣的值的結(jié)果
  • Delta:(speed per second)(速率),本次采樣減去前一次采樣的值,再除以經(jīng)過的時長;
    而在3.4版本以后有了更多的表現(xiàn)形式:
image.png
4)觸發(fā)器(trigger)

① 簡介

當(dāng)我們的采集的值定義完了以后,就可以來定義觸發(fā)器了。

我們觸發(fā)器的定義是:界定某特定的item采集到的數(shù)據(jù)的非合理區(qū)間或非合理狀態(tài)。通常為邏輯表達式。

邏輯表達式(閾值):通常用于定義數(shù)據(jù)的不合理區(qū)間,其結(jié)果如下:
  OK(不符合條件):正常狀態(tài) --> 較老的zabbix版本,其為FALSE;
  PROBLEM(符合條件):非正常狀態(tài) --> 較老的zabbix版本,其為TRUE;

一般,我們評定采樣數(shù)值是否為合理區(qū)間的比較穩(wěn)妥的方法是——根據(jù)最后N次的平均值來判定結(jié)果;這個最后N次通常有兩種定義方式:

  1. 最近N分鐘所得結(jié)果的平均值
  2. 最近N次所得結(jié)果的平均值

而且,我們的觸發(fā)器存在可調(diào)用的函數(shù):

nodata()    #是否采集到數(shù)據(jù),采集不到則為異常
last()      #最近幾次的平均值
date()
time()
now()
dayofmonth()
...

注:能用數(shù)值保存的就不要使用字符串

② 觸發(fā)器表達式

基本的觸發(fā)器表達式格式如下所示
{<server>:<key>.<function>(<parameter>)}<operator><constant>

  • server:主機名稱;
  • key:主機上關(guān)系的相應(yīng)監(jiān)控項的key;
  • function:評估采集到的數(shù)據(jù)是否在合理范圍內(nèi)時所使用的函數(shù),其評估過程可以根據(jù)采取的數(shù)據(jù)、當(dāng)前時間及其它因素進行;
  • 目前,觸發(fā)器所支持的函數(shù)有avg、count、change、date、dayofweek、delta、diff、iregexp、last、max、min、nodata、now、sum等
  • parameter:函數(shù)參數(shù);大多數(shù)數(shù)值函數(shù)可以接受秒數(shù)為其參數(shù),而如果在數(shù)值參數(shù)之前使用“#”做為前綴,則表示為最近幾次的取值,如sum(300)表示300秒內(nèi)所有取值之和,而sum(#10)則表示最近10次取值之和;
  • 此外,avg、count、last、min和max還支持使用第二個參數(shù),用于完 成時間限定;例如,max(1h,7d)將返回一周之前的最大值;

表達式所支持的運算符及其功能如下圖所示:

1204916-20171202112728636-256605681.png

③ 定義一個觸發(fā)器

我們可以查看一下,agent1的cpu_status監(jiān)控項,并以其為標(biāo)準(zhǔn)確定我們的非正常的值:


image.png

圖中我們可以看出,我們的最大值為105,最小值為47,平均值為58。這樣的話,我們可以定義110以上的都是非正常的值,這里為了測試定義為50。

下面我們來定義一個觸發(fā)器:

進入:配置 ---> 主機 ---> agent1 ---> 觸發(fā)器 ---> 創(chuàng)建觸發(fā)器

image.png

image.png

觸發(fā)表達式設(shè)置
image.png

image.png

恢復(fù)表達式設(shè)置
image.png

生成完畢后,我們就點擊頁面下方的添加,即成功定義了一個觸發(fā)器,同時頁面自動跳轉(zhuǎn):
image.png

image.png

看見儀表盤已經(jīng)有了警告信息


image.png

然后我們?nèi)タ匆幌挛覀儎倓偠x了觸發(fā)器的那個監(jiān)控項:


image.png

我們可以看出,這個里面就有了一根線,就是我們剛剛定義的值,超過線的即為異常狀態(tài),看起來非常直觀。

但是,現(xiàn)在即使超過了這根線,也僅僅會產(chǎn)生一個觸發(fā)器事件而不會做其他任何事。因此,我們就需要去定義一個動作(action)。

④ 觸發(fā)器的依賴關(guān)系

我們的觸發(fā)器彼此之間可能會存在依賴關(guān)系的,一旦某一個觸發(fā)器被觸發(fā)了,那么依賴這個觸發(fā)器的其余觸發(fā)器都不需要再報警?! ∥覀兛梢詠碓囅胍幌逻@樣的場景:

我們的多臺主機是通過交換機的網(wǎng)絡(luò)連接線來實現(xiàn)被監(jiān)控的。如果交換機出了故障,我們的主機自然也無法繼續(xù)被監(jiān)控,如果此時,我們的所有主機統(tǒng)統(tǒng)報警……想想也是一件很可怕的事情。要解決這樣的問題,就是定義觸發(fā)器之間的依賴關(guān)系,當(dāng)交換機掛掉,只它自己報警就可以了,其余的主機就不需要在報警了。這樣,也更易于我們判斷真正故障所在。

注意:目前zabbix不能夠直接定義主機間的依賴關(guān)系,其依賴關(guān)系僅能通過觸發(fā)器來定義。

我們來簡單舉一個例子,示范一下如何定義一個依賴關(guān)系:

打開任意一個觸發(fā)器,上面就有依賴關(guān)系,我們進行定義即可:


image.png

觸發(fā)器可以有多級依賴關(guān)系,比如我們看下面的例子:

1204916-20171202112943901-1385885917.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Zabbix簡介 Zabbix官方網(wǎng)站Zabbix中文文檔 本文系統(tǒng)環(huán)境是CentOS7x86_64, Zabbi...
    Zhang21閱讀 8,305評論 0 37
  • Linux監(jiān)控平臺介紹 常見開源監(jiān)控軟件 cacti、nagios、zabbix、smokeping、open-f...
    妖孽白YoonA_11c3閱讀 2,224評論 0 7
  • 1、監(jiān)控介紹 1.你用過哪些監(jiān)控軟件? 2.zabbix和nagios的區(qū)別 3.zabbix和nagios、ca...
    胖虎喜歡小紅閱讀 1,662評論 1 8
  • 今天本來領(lǐng)導(dǎo)讓到公司開會,看到肺炎疫情的嚴(yán)重性,跟領(lǐng)導(dǎo)申請不要去公司,改為視頻會議,所以,早上也不敢花太多時間折騰...
    小甜甜007閱讀 207評論 0 0
  • 今天我在挖自己,我喜歡這樣。結(jié)果我發(fā)現(xiàn),我最需要的是真實面對自己。 不知道為什么,從什么時候開始,我對自己不誠實。...
    fall_in_love閱讀 653評論 9 4

友情鏈接更多精彩內(nèi)容