配置:
主機(jī) |
ip |
操作系統(tǒng) |
zabbix版本 |
mysql版本 |
zabbix-server | 172.27.9.63 | CentOS7.3.1611 |
zabbix_server (Zabbix) 3.4.8 |
5.7.21 |
zabbix-agent | 172.27.9.65 | Centos7.3.1611 |
zabbix_agentd (daemon) (Zabbix) 3.4.8 |
/ |
Server端:
1.安裝源碼庫配置部署包
這個(gè)部署包包含了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部署包
3.安裝初始化數(shù)據(jù)庫
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查看當(dāng)前可用的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數(shù)據(jù)庫
[root@zabbix-server ~]# yum -y install mysql-community-server
總下載量:204 M,請(qǐng)耐心等待。
安裝完成,系統(tǒng)自帶的mariadb被覆蓋。
3.4啟動(dòng)mysql服務(wù)并設(shè)置開機(jī)啟動(dòng)
[root@zabbix-server ~]# systemctl start mysqld.service
[root@zabbix-server ~]# systemctl enable mysqld.service
3.5登陸mysql
安裝好后,會(huì)在my.cnf文件中自動(dòng)生成一個(gè)密碼
[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”
登錄數(shù)據(jù)庫后需首先重置密碼才能進(jìn)行后續(xù)操作。修改密碼如下(注意密碼規(guī)則,此處不詳談):
mysql> set password = password(‘Mysql123!’);
Query OK, 0 rows affected, 1 warning (0.03 sec)
3.6創(chuàng)建數(shù)據(jù)庫和zabbix用戶并授權(quán)
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導(dǎo)入初始架構(gòu)(Schema)和數(shù)據(jù)
[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.
執(zhí)行過程中會(huì)有一個(gè)關(guān)于密碼的告警,忽略。
查看執(zhí)行結(jié)果:
4.啟動(dòng)Zabbix Server進(jìn)程
4.1在zabbix_server.conf中編輯數(shù)據(jù)庫配置
修改或者解注釋如下參數(shù):
[root@zabbix-server ~]# view /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix123!
4.2修改zabbix安裝目錄屬主和權(quán)限
[root@zabbix-server ~]# chown -R zabbix:zabbix /etc/zabbix/
[root@zabbix-server ~]# chmod -R 755 /etc/zabbix/
4.3啟動(dòng)zabbix-server服務(wù),并設(shè)置開機(jī)自啟
[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設(shè)置已經(jīng)完成了配置。
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去掉時(shí)區(qū)前的#號(hào)并修改為Asia/Shanghai:
5.2啟動(dòng)apache服務(wù),并設(shè)置開機(jī)自啟
[root@zabbix-server ~]# systemctl enable httpd
6.登陸zabbix
訪問地址:http://172.27.9.63/zabbix
下一步:
下一步:
輸入密碼“Zabbix123!”,下一步:
name可以不填,host和port默認(rèn),下一步:
信息匯總確認(rèn),下一步:
安裝完成,單擊‘Finish’,跳轉(zhuǎn)至如下界面:
初始用戶名密碼為’Admin/zabbix’。
agent端:
1.安裝源碼庫配置部署包
這個(gè)部署包包含了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部署包
安裝完畢:
3.啟動(dòng)Zabbix Agent進(jìn)程
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:被動(dòng)模式,允許哪臺(tái)機(jī)器連接到aget。
ServerActive: 主動(dòng)模式,向哪臺(tái)服務(wù)器傳送數(shù)據(jù)。
Hostname:唯一,需與添加主機(jī)時(shí)‘主機(jī)名稱’保持一致。
Zabbix agents可以執(zhí)行被動(dòng)和主動(dòng)兩種檢查方式。
在passive check 模式中agent應(yīng)答數(shù)據(jù)請(qǐng)求,Zabbix server(或者proxy)詢問agent數(shù)據(jù),如CPU 的負(fù)載情況,然后Zabbix agent回送結(jié)果。
Active checks 處理過程將相對(duì)復(fù)雜。 Agent必須首先從Zabbix sever索取監(jiān)控項(xiàng)列表以進(jìn)行獨(dú)立處理,然后周期性地發(fā)送新的值給server。
執(zhí)行被動(dòng)或主動(dòng)檢查是通過選擇相應(yīng)的監(jiān)測項(xiàng)目類型來配置的。
本文選擇被動(dòng)模式,當(dāng)zabbix-server監(jiān)控主機(jī)過多出現(xiàn)性能問題時(shí)可考慮主動(dòng)模式。
3.2更改zabbix安裝目錄屬主和權(quán)限
[root@zabbix-agent ~]# chown -R zabbix:zabbix /etc/zabbix
[root@zabbix-agent ~]# chmod -R 755 /etc/zabbix
3.3啟動(dòng)zabbix-agent服務(wù),并設(shè)置開機(jī)自啟
[root@zabbix-agent ~]# systemctl start zabbix-agent
[root@zabbix-agent ~]# systemctl enable zabbix-agent
web端監(jiān)控配置
1.修改語言
默認(rèn)為界面為英文,修改為中文:
2.新建主機(jī)
2.1增加主機(jī)
Zabbix中的主機(jī)(Host)是一個(gè)你想要監(jiān)控的網(wǎng)絡(luò)實(shí)體(物理的,或者虛擬的)。Zabbix中,對(duì)于主機(jī)的定義非常靈活。它可以時(shí)一臺(tái)物理服務(wù)器,一個(gè)網(wǎng)絡(luò)交換機(jī),一個(gè)虛擬機(jī)或者一些應(yīng)用。
Zabbix中,可以通過配置(Configuration) → 主機(jī)(Hosts)菜單,查看已配置的主機(jī)信息。默認(rèn)已有一個(gè)名為’Zabbix server’的預(yù)先定義好的主機(jī)。
主機(jī)名稱:可以使用字母數(shù)字、空格、點(diǎn)”.“、中劃線”-“、下劃線”_“,必須唯一。與agent中配置文件zabbix_agentd.conf的‘Hostname’參數(shù)保持一致。
可見的名稱:顯示在網(wǎng)頁列表上供展示的名稱。
新的群組:為主機(jī)新建分組,所有訪問權(quán)限都分配到主機(jī)組,而不是單獨(dú)的主機(jī)。這也是主機(jī)需要屬于至少一個(gè)組的原因。
IP地址:被監(jiān)控主機(jī)的ip地址。
其它配置默認(rèn)。
2.2選擇模板
選擇模板‘Template OS Linux’,單擊‘選擇’、‘添加’后‘更新’,同理更新默認(rèn)的’Zabbix server’:
2.3更改字符集
選擇新建的主機(jī)‘zabbix-test-centos7’,查看監(jiān)控?cái)?shù)據(jù)‘CPU user time’,選擇‘圖形’:
發(fā)現(xiàn)亂碼:
在zabbix-server端執(zhí)行如下命令:
[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界面后正常:
3.新建監(jiān)控項(xiàng)
新建監(jiān)控項(xiàng)為監(jiān)控主機(jī)運(yùn)行時(shí)長,當(dāng)主機(jī)運(yùn)行時(shí)長超過3個(gè)月(180天)觸發(fā)告警(系統(tǒng)默認(rèn)模板‘Template OS Linux’已有uptime的信息,記錄主機(jī)啟動(dòng)時(shí)間)。
3.1agent端修改被監(jiān)控端的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)}’
重啟服務(wù)
[root@zabbix-agent ~]# systemctl restart zabbix-agent
3.2server測試
安裝zabbix-get。Zabbix get 是一種命令行應(yīng)用,它可以用于與Zabbix agent進(jìn)行通信,并從agent哪里獲取所需的信息 該應(yīng)用通常被用于Zabbix agent故障排除。
[root@zabbix-server ~]# yum -y install zabbix-get
測試命令
0.307488
3.3新建模板
查看新建模板:
3.4創(chuàng)建監(jiān)控項(xiàng)
對(duì)于監(jiān)控項(xiàng),名稱(Name)、值(Key)、信息類型(Type of information)為必選項(xiàng),且Key唯一。
查看新建監(jiān)控項(xiàng):
3.5新建觸發(fā)器
添加表達(dá)式:
‘N’的值為觸發(fā)告警值。
查看新建的觸發(fā)器:
3.6添加圖形
3.8關(guān)聯(lián)主機(jī)
查看主機(jī)新增模板:
3.9查看告警項(xiàng)
查看圖形:
郵件推送
zabbxi實(shí)現(xiàn)郵件告警推送有兩種方式:
a.使用zabbix服務(wù)端的本地郵箱賬號(hào)發(fā)送,郵件名為:user@hostname.localdomain,user為發(fā)送郵件的用戶,hostname為zabbix-server的主機(jī)名,該郵箱只能發(fā)送,不能接收外部郵件;
b.使用外部郵箱指定為告警發(fā)送郵箱。
一般公司都有郵件系統(tǒng),為方便管理,本文采用外部郵箱方式發(fā)送告警。(申請(qǐng)163郵箱號(hào):zabbix_test_123@163.com ,注意開啟客戶端授權(quán))
1.關(guān)閉postfix
[root@zabbix-server ~]# systemctl disable postfix
postfix為本地郵箱推送方式需安裝的軟件,若同時(shí)配置本地和外部郵箱兩種發(fā)送方式,系統(tǒng)會(huì)優(yōu)先采用外部郵箱方式,所以該步驟不是必須但最好關(guān)閉這個(gè)服務(wù)。
2.安裝郵件發(fā)送工具mailx
查看mailx版本:
[root@zabbix-server ~]# mail -V
12.5 7/5/10
3.配置外部郵箱
[root@zabbix-server ~]# view /etc/mail.rc
set from=zabbix_test_123@163.com
set smtp=smtp.163.com
set smtp-auth-user=zabbix_test_123@163.com
set smtp-auth-password=xxx
set smtp-auth=login
‘smtp-auth-password’為‘客戶端授權(quán)密碼’
測試外部郵箱
[root@zabbix-server ~]# echo “zabbix test mail 123” |mail -s “zabbix” zabbix_test_123@163.com
由于163的反垃圾機(jī)制,當(dāng)發(fā)送為其它郵箱如126、qq郵箱時(shí)會(huì)報(bào)錯(cuò),故本例中發(fā)送和接收郵箱都為zabbix_test_123@163.com。如若上生產(chǎn)可配置企業(yè)郵箱。
4.編寫郵件發(fā)送腳本
修改腳本路徑
[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:郵件標(biāo)題;$3:郵件內(nèi)容
5.web端配置
5.1創(chuàng)建報(bào)警媒介類型
腳本參數(shù)分別對(duì)應(yīng):收件人地址、主題、詳細(xì)內(nèi)容
5.2配置用戶
選擇Admin:
添加報(bào)警媒介:
5.3創(chuàng)建報(bào)警動(dòng)作
配置-動(dòng)作-創(chuàng)建動(dòng)作,新建動(dòng)作:
新建操作:
新建操作就是通過何種方式將消息發(fā)送給誰,其它選項(xiàng)默認(rèn)。
添加恢復(fù)操作:
添加后的動(dòng)作:
5.4測試郵件告警
新增告警項(xiàng),在agent端/home文件系統(tǒng)使用dd命令創(chuàng)建文件,將文件系統(tǒng)使用率提升至90%以上以觸發(fā)告警:
用dd命令生成一個(gè)1950M的test文件,使/home使用率告警。
觸發(fā)郵件告警:
發(fā)現(xiàn)郵件以附件方式發(fā)送,顯示不正常,修改郵件發(fā)送腳本。
安裝dos2unix轉(zhuǎn)換工具:
編輯發(fā)送腳本:
[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命令執(zhí)行的時(shí)候會(huì)產(chǎn)生臨時(shí)文件,所以要有寫的權(quán)限,故應(yīng)修改alertscripts目錄屬主,不然測試過程中會(huì)報(bào)錯(cuò):‘dos2unix: Failed to open temporary output file: 權(quán)限不夠’。
發(fā)現(xiàn)正文不再以附件形式顯示。
查看告警日志:
至此郵件告警配置完成。
微信推送
1.公眾號(hào)注冊(cè)
登陸https://work.weixin.qq.com/, 注冊(cè)企業(yè)號(hào)。
CorpID后面web端配置會(huì)用到。
2.新增應(yīng)用
AgentId和Secret后面web端配置會(huì)用到。
3.添加部門及成員
部門id為3,后面會(huì)用到。
添加成員。添加成員可以直接添加,也可以微信邀請(qǐng):
直接添加:
成員添加完成后修改應(yīng)用可見范圍為新建部門zabbix-webchat-01:
查看部門成員:
4.下載微信發(fā)送腳本
[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/
沒有g(shù)it命令可先用yum安裝。
requests庫安裝:
[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(),方法對(duì)url操作。
5.web端配置
5.1創(chuàng)建報(bào)警媒介類型
5.2配置用戶
新建用戶組群“weixin”,新建用戶“weixin”:
添加訪問主機(jī)群權(quán)限:
添加的主機(jī)群主為“zabbix-test”,即用戶“weixin”只會(huì)收到zabbix-test群組下主機(jī)的告警信息。
配置用戶的報(bào)警媒介:
5.3創(chuàng)建報(bào)警動(dòng)作
添加告警恢復(fù)消息:
5.4微信告警測試
在agent端觸發(fā)/var文件系統(tǒng)告警:
[root@zabbix-agent var]# dd if=/dev/zero of=test bs=1M count=1800
微信告警接收可以直接關(guān)注企業(yè)號(hào)在“微信”app接收,或者下載“企業(yè)微信”專門來收告警,以便和日常使用的微信做區(qū)分。