1. 程式人生 > >centos 7 zabbix搭建以及郵件微信告警實現

centos 7 zabbix搭建以及郵件微信告警實現

1. 環境準備:

zabbix-server  192.168.101.128  mysql5.7

zabbix-client   192.168.101.130

2.搭建過程:

server端:

安裝zabbix:

rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
 yum -y install zabbix-server-mysql zabbix-web-mysql

安裝資料庫mysql:

rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*"
yum -y install mysql-community-server 
systemctl start mysqld.service && systemctl enable mysqld.service

初始化資料庫:

#檢視初始密碼
cat /var/log/mysqld.log | grep password
#登陸資料庫
mysql -uroot -p
#修改密碼
set password = password('[email protected]');
#建立資料庫並授權
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to 
[email protected]
identified by 'Zabbix123!'; #匯入初始資料 cd /usr/share/doc/zabbix-server-mysql-3.4.8/ zcat create.sql.gz | mysql -uzabbix -pZabbix123! -D zabbix #驗證結果 show tables from zabbix; select count(*) tables, table_schema from information_schema.tables where table_schema ='zabbix';

修改配置檔案:

vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix123!
#修改安裝目錄和許可權
chown -R zabbix:zabbix /etc/zabbix/
chmod -R 755 /etc/zabbix/
#啟動服務並加入開機啟動
systemctl start zabbix-server && systemctl enable zabbix-server

#配置php
vim /etc/httpd/conf.d/zabbix.conf
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

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

php_value date.timezone Asia/Shanghai
#啟動apache服務,並設定開機自啟
systemctl restart httpd && systemctl enable httpd

登陸網頁:

http://192.168.101.128/zabbix

根據提示填寫相關的資訊就好了  預設登陸使用者密碼:Admin/zabbix

agent端:

安裝zabbix:

rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum -y install zabbix-agent


#配置zabbix-agent
sed -i 's/^ *Server=127.0.0.1/Server=192.168.101.128/g' /etc/zabbix/zabbix_agentd.conf
sed -i 's/^ *ServerActive=127.0.0.1/ServerActive=192.168.101.128/g' /etc/zabbix/zabbix_agentd.conf

sed -i 's/^ *Hostname=Zabbix server/Hostname=192.168.101.130/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監控主機過多出現效能問題時可考慮主動模式。
'''

許可權設定:

chown -R zabbix:zabbix /etc/zabbix
chmod -R 755 /etc/zabbix

#啟動服務
systemctl start zabbix-agent && systemctl enable zabbix-agent

3. web端設定

更改顯示語言為中文

新增主機:192.168.101.130

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

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

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

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

其它配置預設。

選擇模板:template os linux

如果顯示亂碼就在server端安裝字型:

yum -y install wqy-microhei-fonts && cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

新建監控項:

新建監控項為監控主機執行時長,當主機執行時長超過3個月(180天)觸發告警(系統預設模板‘Template OS Linux’已有uptime的資訊,記錄主機啟動時間)。

agent端修改被監控端的zabbix_agent.conf配置檔案

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

重啟服務

[[email protected] ~]# systemctl restart zabbix-agent 

server測試

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

[[email protected] ~]# yum -y install zabbix-get

測試命令

[[email protected] ~]# zabbix_get -s 192.168.101.130 -k checkuptime 0.307488

新建模板

對於監控項,名稱(Name)、值(Key)、資訊型別(Type of information)為必選項,且Key唯一

略過.....

郵件推送:

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

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

b.使用外部郵箱指定為告警傳送郵箱。

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

1.關閉postfix

[[email protected] ~]# systemctl stop postfix [[email protected] ~]# systemctl disable postfix

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

2.安裝郵件傳送工具mailx

[[email protected] ~]# yum -y install mailx

檢視mailx版本:

[[email protected] ~]# mail -V 12.5 7/5/10 

3.配置外部郵箱

[[email protected] ~]# vim /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’為‘客戶端授權密碼’

#測試

echo "zabbix test mail 123" |mail -s "zabbix" [email protected]

4.編寫郵件傳送指令碼

修改指令碼路徑

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf AlertScriptsPath=/etc/zabbix/alertscripts

編寫指令碼mail.sh

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

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

先記錄到此