Zabbix3.4.8搭建及郵件微信告警實現

安裝參考文檔:https://www.zabbix.com/documentation/3.4/zh/manual/installation/install_from_packages


配置:

主機
ip
操作系統
zabbix版本
mysql版本
zabbix-server172.27.9.63
Centos7.3.1611

zabbix_server (Zabbix) 3.4.8

5.7.21
zabbix-agent172.27.9.65
Centos7.3.1611

zabbix_agentd (daemon) (Zabbix) 3.4.8

/


server端:

1.安裝源碼庫配置部署包

這個部署包包含了yum配置文件:

[root@zabbix-server ~]#  rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm


2.安裝Zabbix-server部署包

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

圖片.png


3.安裝初始化數據庫

3.1下載並安裝MySQL官方的 Yum Repository

[root@zabbix-server zabbix-server-mysql-3.4.8]# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

3.2查看當前可用的Mysql安裝源

[root@zabbix-server ~]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community                  45
mysql-tools-community/x86_64      MySQL Tools Community                       59
mysql57-community/x86_64          MySQL 5.7 Community Server                 247

3.3安裝MySQL數據庫

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

總下載量:204 M,請耐心等待。

圖片.png安裝完成,系統自帶的mariadb被覆蓋。

3.4啓動mysql服務並設置開機啓動

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

3.5登陸mysql

安裝好後,會在my.cnf文件中自動生成一個密碼

[root@zabbix-server ~]# cat /var/log/mysqld.log | grep password
2018-04-17T16:12:53.340149Z 1 [Note] A temporary password is generated for root@localhost: +)pIf#FAu1%D
[root@zabbix-server ~]# mysql -uroot -p

輸入密碼“+)pIf#FAu1%D”

登錄數據庫後需首先重置密碼才能進行後續操作。修改密碼如下(注意密碼規則,此處不詳談):

mysql>  set password = password('Mysql123!');
Query OK, 0 rows affected, 1 warning (0.03 sec)

3.6創建數據庫和zabbix用戶並授權

mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (10.03 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'Zabbix123!';
Query OK, 0 rows affected, 1 warning (0.00 sec)

3.7導入初始架構(Schema)和數據

[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.8/
[root@zabbix-server zabbix-server-mysql-3.4.8]# zcat create.sql.gz | mysql -uzabbix -pZabbix123! -D zabbix
mysql: [Warning] Using a password on the command line interface can be insecure.

執行過程中會有一個關於密碼的告警,忽略。

查看執行結果:

圖片.png圖片.png


4.啓動Zabbix Server進程

4.1在zabbix_server.conf中編輯數據庫配置

修改或者解註釋如下參數:

[root@zabbix-server ~]# view /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix123!

4.2修改zabbix安裝目錄屬主和權限

[root@zabbix-server ~]# chown -R zabbix:zabbix /etc/zabbix/
[root@zabbix-server ~]# chmod -R 755 /etc/zabbix/

4.3啓動zabbix-server服務,並設置開機自啓

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


5.編輯Zabbix前端的PHP配置

Zabbix前端的Apache配置文件位於 /etc/httpd/conf.d/zabbix.conf 。一些PHP設置已經完成了配置。

php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga

5.1去掉時區前的#號並修改爲Asia/Shanghai:

php_value date.timezone Asia/Shanghai

5.2啓動apache服務,並設置開機自啓

[root@zabbix-server ~]# systemctl restart httpd
[root@zabbix-server ~]# systemctl enable httpd


6.登陸zabbix

訪問地址:http://172.27.9.63/zabbix

圖片.png

下一步:

圖片.png

下一步:

圖片.png

輸入密碼“Zabbix123!”,下一步:

圖片.png

name可以不填,host和port默認,下一步:

圖片.png

信息彙總確認,下一步:

圖片.png

安裝完成,單擊‘Finish’,跳轉至如下界面:

圖片.png

初始用戶名密碼爲'Admin/zabbix'。


agent端:

1.安裝源碼庫配置部署包

這個部署包包含了yum配置文件:

[root@zabbix-agent ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm


2.安裝Zabbix-agent部署包

[root@zabbix-agent ~]# yum -y install zabbix-agent

安裝完畢:

圖片.png


3.啓動Zabbix Agent進程

3.1配置zabbxi-agent

[root@zabbix-agent ~]# sed -i 's/^ *Server=127.0.0.1/Server=172.27.9.63/g' /etc/zabbix/zabbix_agentd.conf
[root@zabbix-agent ~]#  sed -i 's/^ *ServerActive=127.0.0.1/ServerActive=172.27.9.63/g' /etc/zabbix/zabbix_agentd.conf
[root@zabbix-agent ~]#  sed -i 's/^ *Hostname=Zabbix server/Hostname=172.27.9.65/g' /etc/zabbix/zabbix_agentd.conf

Server:被動模式,允許哪臺機器連接到aget。 
ServerActive: 主動模式,向哪臺服務器傳送數據。

Hostname:唯一,需與添加主機時‘主機名稱’保持一致。

Zabbix agents可以執行被動和主動兩種檢查方式。
在passive check 模式中agent應答數據請求,Zabbix server(或者proxy)詢問agent數據,如CPU 的負載情況,然後Zabbix agent回送結果。
Active checks 處理過程將相對複雜。 Agent必須首先從Zabbix sever索取監控項列表以進行獨立處理,然後週期性地發送新的值給server。
執行被動或主動檢查是通過選擇相應的監測項目類型來配置的。

本文選擇被動模式,當zabbix-server監控主機過多出現性能問題時可考慮主動模式。


3.2更改zabbix安裝目錄屬主和權限

[root@zabbix-agent ~]# chown -R zabbix:zabbix /etc/zabbix
[root@zabbix-agent ~]# chmod -R 755 /etc/zabbix


3.3啓動zabbix-agent服務,並設置開機自啓

[root@zabbix-agent ~]# systemctl start zabbix-agent
[root@zabbix-agent ~]# systemctl enable zabbix-agent


web端監控配置

1.修改語言

默認爲界面爲英文,修改爲中文:

圖片.png

圖片.png

2.新建主機

2.1增加主機

Zabbix中的主機(Host)是一個你想要監控的網絡實體(物理的,或者虛擬的)。Zabbix中,對於主機的定義非常靈活。它可以時一臺物理服務器,一個網絡交換機,一個虛擬機或者一些應用。

Zabbix中,可以通過配置(Configuration) → 主機(Hosts)菜單,查看已配置的主機信息。默認已有一個名爲'Zabbix server'的預先定義好的主機。

圖片.png


主機名稱:可以使用字母數字、空格、點”.“、中劃線”-“、下劃線”_“,必須唯一。與agent中配置文件zabbix_agentd.conf的‘Hostname’參數保持一致。

可見的名稱:顯示在網頁列表上供展示的名稱。

新的羣組:爲主機新建分組,所有訪問權限都分配到主機組,而不是單獨的主機。這也是主機需要屬於至少一個組的原因。

IP地址:被監控主機的ip地址。

其它配置默認。

2.2選擇模板

圖片.png

選擇模板‘Template OS Linux’,單擊‘選擇’、‘添加’後‘更新’,同理更新默認的'Zabbix server':

圖片.png

2.3更改字符集

選擇新建的主機‘zabbix-test-centos7’,查看監控數據‘CPU user time’,選擇‘圖形’:

圖片.png

發現亂碼:

圖片.png

在zabbix-server端執行如下命令:

[root@zabbix-server ~]# yum -y install wqy-microhei-fonts
[root@zabbix-server ~]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

刷新web界面後正常:

圖片.png


3.新建監控項

新建監控項爲監控主機運行時長,當主機運行時長超過3個月(180天)觸發告警(系統默認模板‘Template OS Linux’已有uptime的信息,記錄主機啓動時間)。

3.1agent端修改被監控端的zabbix_agent.conf配置文件

[root@zabbix-agent ~]# view /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=checkuptime,cat /proc/uptime| awk -F. '{run_days=$1 / 86400;print(run_days)}'

重啓服務

[root@zabbix-agent ~]# systemctl restart zabbix-agent

3.2server測試

安裝zabbix-get。Zabbix get 是一種命令行應用,它可以用於與Zabbix agent進行通信,並從agent哪裏獲取所需的信息 該應用通常被用於Zabbix agent故障排除。

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

測試命令

[root@zabbix-server ~]# zabbix_get -s 172.27.9.65 -k checkuptime
0.307488

3.3新建模板

圖片.png

查看新建模板:

圖片.png

3.4創建監控項

圖片.png



對於監控項,名稱(Name)、值(Key)、信息類型(Type of information)爲必選項,且Key唯一。

查看新建監控項:

圖片.png

3.5新建觸發器

圖片.png

添加表達式:

圖片.png

'N'的值爲觸發告警值。

查看新建的觸發器:

圖片.png

3.6添加圖形

圖片.png



3.8關聯主機

圖片.png

查看主機新增模板:

圖片.png

3.9查看告警項

圖片.png

查看圖形:

圖片.png



郵件推送

zabbxi實現郵件告警推送有兩種方式:

a.使用zabbix服務端的本地郵箱賬號發送,郵件名爲:[email protected],user爲發送郵件的用戶,hostname爲zabbix-server的主機名,該郵箱只能發送,不能接收外部郵件;

b.使用外部郵箱指定爲告警發送郵箱。

一般公司都有郵件系統,爲方便管理,本文采用外部郵箱方式發送告警。(申請163郵箱號:[email protected] ,注意開啓客戶端授權)

1.關閉postfix

[root@zabbix-server ~]# systemctl stop postfix
[root@zabbix-server ~]# systemctl disable postfix

postfix爲本地郵箱推送方式需安裝的軟件,若同時配置本地和外部郵箱兩種發送方式,系統會優先採用外部郵箱方式,所以該步驟不是必須但最好關閉這個服務。


2.安裝郵件發送工具mailx

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

查看mailx版本:

[root@zabbix-server ~]# mail -V
12.5 7/5/10


3.配置外部郵箱

[root@zabbix-server ~]# view /etc/mail.rc
set [email protected]
set smtp=smtp.163.com
set [email protected]
set smtp-auth-password=xxx
set smtp-auth=login

‘smtp-auth-password’爲‘客戶端授權密碼’

圖片.png

測試外部郵箱

[root@zabbix-server ~]# echo "zabbix test mail 123" |mail -s "zabbix" [email protected]

圖片.png

由於163的反垃圾機制,當發送爲其它郵箱如126、qq郵箱時會報錯,故本例中發送和接收郵箱都爲[email protected]。如若上生產可配置企業郵箱。


4.編寫郵件發送腳本

修改腳本路徑

[root@zabbix-server ~]# view /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/etc/zabbix/alertscripts

編寫腳本mail.sh

[root@zabbix-server ~]# cd /etc/zabbix/
[root@zabbix-server zabbix]# mkdir alertscripts && cd alertscripts && touch mail.sh
[root@zabbix-server alertscripts]# more mail.sh 
#!/bin/bash
echo "$3" | mail -s "$2" $1
[root@zabbix-server alertscripts]# chmod 755 mail.sh

$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容


5.web端配置

5.1創建報警媒介類型

圖片.png

腳本參數分別對應:收件人地址、主題、詳細內容


5.2配置用戶

選擇Admin:

圖片.png

添加報警媒介:

圖片.png


5.3創建報警動作

配置-動作-創建動作,新建動作:

圖片.png

新建操作:

圖片.png

圖片.png

圖片.png

新建操作就是通過何種方式將消息發送給誰,其它選項默認。

添加恢復操作:

圖片.png

添加後的動作:

圖片.png


5.4測試郵件告警

新增告警項,在agent端/home文件系統使用dd命令創建文件,將文件系統使用率提升至90%以上以觸發告警:

[root@zabbix-agent home]# dd if=/dev/zero of=test bs=1M count=1950

用dd命令生成一個1950M的test文件,使/home使用率告警。

圖片.png

觸發郵件告警:

圖片.png

圖片.png

圖片.png

發現郵件以附件方式發送,顯示不正常,修改郵件發送腳本。

安裝dos2unix轉換工具:

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

編輯發送腳本:

[root@zabbix-server ~]# cd /etc/zabbix/alertscripts
[root@zabbix-server alertscripts]# touch mailtmp.txt && chmod 777 mailtmp.txt
[root@zabbix-server ~]# chown -R zabbix:zabbix /etc/zabbix/alertscripts/
[root@zabbix-server alertscripts]# more mail.sh
#!/bin/bash
FILE=/etc/zabbix/alertscripts/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE
cat $FILE|/bin/mail -s "$2" $1

注意:dos2unix命令執行的時候會產生臨時文件,所以要有寫的權限,故應修改alertscripts目錄屬主,不然測試過程中會報錯:‘dos2unix: Failed to open temporary output file: 權限不夠’。

圖片.png

發現正文不再以附件形式顯示。

查看告警日誌:

圖片.png

至此郵件告警配置完成。


微信推送

1.公衆號註冊

登陸https://work.weixin.qq.com/, 註冊企業號。

圖片.png




圖片.png

CorpID後面web端配置會用到。


2.新增應用

圖片.png

圖片.png

圖片.png

AgentId和Secret後面web端配置會用到。


3.添加部門及成員

圖片.png

圖片.png

圖片.png

部門id爲3,後面會用到。

添加成員。添加成員可以直接添加,也可以微信邀請:

圖片.png

圖片.png

直接添加:

圖片.png

圖片.png

成員添加完成後修改應用可見範圍爲新建部門zabbix-webchat-01:

圖片.png

查看部門成員:

圖片.png

圖片.png


4.下載微信發送腳本

[root@zabbix-server ~]# git clone https://github.com/loong576/Wechat-Alert-for-Zabbix.git
[root@zabbix-server ~]# cd Wechat-Alert-for-Zabbix/
[root@zabbix-server Wechat-Alert-for-Zabbix]# cp wechat_alert.py /etc/zabbix/alertscripts/
[root@zabbix-server alertscripts]# chown -R zabbix:zabbix /etc/zabbix/alertscripts/
[root@zabbix-server alertscripts]# chmod -R 755 /etc/zabbix/alertscripts/

沒有git命令可先用yum安裝。

requests庫安裝:

[root@zabbix-server ~]# yum -y install epel-release
[root@zabbix-server ~]# yum -y install python-pip
[root@zabbix-server ~]# pip install --upgrade pip
[root@zabbix-server ~]# pip install requests

requests模塊可以直接用get(), post(),put(), delete(), head() ,options(),方法對url操作。


5.web端配置

5.1創建報警媒介類型

圖片.png


5.2配置用戶

新建用戶組羣“weixin”,新建用戶“weixin”:

圖片.png

添加訪問主機羣權限:

圖片.png

添加的主機羣主爲“zabbix-test”,即用戶“weixin”只會收到zabbix-test羣組下主機的告警信息。

圖片.png


配置用戶的報警媒介:

圖片.png


5.3創建報警動作

圖片.png

圖片.png

圖片.png

添加告警恢復消息:

圖片.png

圖片.png


5.4微信告警測試

在agent端觸發/var文件系統告警:

[root@zabbix-agent ~]# cd /var
[root@zabbix-agent var]# dd if=/dev/zero of=test bs=1M count=1800

圖片.png

圖片.png

圖片.png

微信告警接收可以直接關注企業號在“微信”app接收,或者下載“企業微信”專門來收告警,以便和日常使用的微信做區分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章