Zabbix是一個(gè)高度集成的企業(yè)級(jí)開源網(wǎng)絡(luò)監(jiān)控解決方案,與Cacti、nagios類似,提供分布式監(jiān)控以及集中的web管理界面。zabbix具備常見商業(yè)監(jiān)控軟件所具備的功能,例如主機(jī)性能監(jiān)控,網(wǎng)絡(luò)設(shè)備性能監(jiān)控,數(shù)據(jù)庫性能監(jiān)控,ftp等通用協(xié)議的監(jiān)控,能夠靈活利用可定制警告機(jī)制,允許用戶對(duì)事件發(fā)送基于E-mail的警告,保證相關(guān)人員可以快速解決。還能夠利用存儲(chǔ)數(shù)據(jù)提供杰出的報(bào)表及實(shí)時(shí)的圖形化數(shù)據(jù)處理,實(shí)現(xiàn)對(duì)監(jiān)控主機(jī)7×24小時(shí)集中監(jiān)控。
Zabbix通過C/S模式采集數(shù)據(jù)通過B/S模式在web端展示和配置,通過SNMP協(xié)議傳輸,而被監(jiān)控對(duì)象只需要支持SNMP協(xié)議或者運(yùn)行Zabbix——agents代理程序即可。服務(wù)端監(jiān)聽端口為10051,而被監(jiān)控端即Zabbix——agents代理程序監(jiān)控10050端口。
本篇基于CentOS 7.3版本安裝Zabbix4.0實(shí)現(xiàn)對(duì)CentOS 7.3主機(jī)的監(jiān)控管理以及警告機(jī)制郵箱發(fā)送的搭建。
實(shí)驗(yàn)環(huán)境
主機(jī) | 操作系統(tǒng) | IP地址 | 主要軟件 |
---|---|---|---|
zabbix服務(wù)端 | centos7.3 x86_64 | 192.168.144.113 | zabbix-server4.0 |
Linux被監(jiān)控端 | centos7.3 x86_64 | 192.168.144.114 | zabbix-agent4.0 |
Zabbix服務(wù)端環(huán)境部署
1、部署LAMP環(huán)境
- 由于zabbix提供集中的web監(jiān)控管理界面,因此服務(wù)在web界面的呈現(xiàn)需要LAMP架構(gòu)支持。
yum install -y //安裝LAMP環(huán)境包 httpd mariadb-server mariadb php php-mysql //php連接mysql模塊 php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash
- 編輯配置httpd
vim /etc/httpd/conf/httpd.conf
ServerName www.yun.com ... DirectoryIndex index.html index.php //添加首頁支持格式
- 編輯配置php,配置中國(guó)時(shí)區(qū)
vim /etc/php.ini
date.timezone = PRC //PRC為中國(guó)時(shí)區(qū)
- 啟動(dòng)httpd,mysql
systemctl stop firewalld.service
setenforce 0systemctl start httpd.service
systemctl start mariadb.servicenetstat -ntap | egrep ‘(80|3306)’
- 啟動(dòng)msyql后執(zhí)行初始安全設(shè)置。
mysql_secure_installation
mysql -u root -p
CREATE DATABASE zabbix character set utf8 collate utf8_bin; GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123'; //創(chuàng)建zabbix數(shù)據(jù)庫,并設(shè)定用戶密碼 flush privileges;
- 數(shù)據(jù)庫設(shè)置完成,檢測(cè)php與數(shù)據(jù)庫連通情況
vim /var/www/html/index.php
<?php $link=mysql_connect('192.168.144.113','zabbix','admin123'); if($link) echo "<h1>Success!!</h1>"; else echo "Fail!!"; mysql_close(); ?>
出現(xiàn)上圖則PHP連通數(shù)據(jù)庫完成。
- 為保證zabbix用戶也可以登錄數(shù)據(jù)庫,若出現(xiàn)本地?zé)o法登錄情況,解決方式如下。
- 使用root賬戶登錄數(shù)據(jù)庫。
select user,host from mysql.user; //有空用戶名稱占用導(dǎo)致本地?zé)o法登錄遠(yuǎn)程可登錄 +--------+-----------+ | user | host | +--------+-----------+ | zabbix | % | | root | 127.0.0.1 | | root | ::1 | | | cacti | | root | cacti | | | localhost | | root | localhost | +--------+-----------+ drop user ''@localhost; //刪除空用戶 drop user ''@cacti; flush privileges;
2、部署Zabbix Server
yum install php-bcmath php-mbstring -y 安裝php支持zabbix組件
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm //會(huì)自動(dòng)生成yum源文件,保證系統(tǒng)可以上網(wǎng)
yum install zabbix-server-mysql zabbix-web-mysql -y 安裝zabbix組件zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p zabbix //生成數(shù)據(jù)庫文件,注意密碼不要輸成root的
- 查看、修改zabbix配置文件
grep -n ‘^'[a-Z] /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log 49:LogFileSize=0 72:PidFile=/var/run/zabbix/zabbix_server.pid 82:SocketDir=/var/run/zabbix 101:DBName=zabbix //訪問數(shù)據(jù)庫名稱 117:DBUser=zabbix //zabbix訪問數(shù)據(jù)庫用戶 125:DBPassword=admin123 //配置文件中只需修改本行,zabbix訪問數(shù)據(jù)庫密碼 347:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log 465:Timeout=4 507:AlertScriptsPath=/usr/lib/zabbix/alertscripts 517:ExternalScripts=/usr/lib/zabbix/externalscripts 553:LogSlowQueries=3000
- 修改zabbix在httpd中的時(shí)區(qū)
vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
- 為防止web界面中文亂碼現(xiàn)象,需要將相應(yīng)字體文件復(fù)制,使zabbix識(shí)別
cp STKAITI.TTF /usr/share/zabbix/fonts/
- 使zabbix系統(tǒng)識(shí)別字體
vim /usr/share/zabbix/include/defines.inc.php
:%s /graphfont/kaiti/g //采用全局替換模式
- zabbix基本配置完成,啟動(dòng)服務(wù),實(shí)現(xiàn)web界面安裝
systemctl enable zabbix-server
systemctl start zabbix-server
netstat -anpt | grep zabbix //監(jiān)聽在10051端口上
systemctl restart httpd.service
- web界面安裝訪問。
http://192.168.144.113/zabbix/
web界面安裝流程如下:
zabbix被監(jiān)控端代理設(shè)置
- 安裝zabbix-agent客戶端
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
yum install -y zabbix-agent
- 編輯修改配置文件
grep -n ‘^'[a-Z] /etc/zabbix/zabbix_agentd.conf
vim /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid 32:LogFile=/var/log/zabbix/zabbix_agentd.log 43:LogFileSize=0 98:Server=192.168.144.113 //zabbix服務(wù)器地址 139:ServerActive=192.168.144.113 //活躍服務(wù)器地址 150:Hostname=test 268:Include=/etc/zabbix/zabbix_agentd.d/*.conf
- 關(guān)閉防火墻,啟動(dòng)服務(wù)
systemctl stop firewalld.service
setenforce 0
systemctl enable zabbix-agent.service
systemctl restart zabbix-agent.servicenetstat -anpt | grep zabbix //監(jiān)聽在10050端口
WEB管理界面添加被管理主機(jī)
配置郵箱報(bào)警功能
1、配置自動(dòng)郵箱發(fā)送
yum install mailx -y
vim /etc/mail.rc 編輯mailx配置文件
set from=377909726@qq.com set smtp=smtp.qq.com set smtp-auth-user=377909726@qq.com set smtp-auth-password=郵箱密碼 set smtp-auth=login
- 測(cè)試郵箱軟件是否可用
echo “hello world” | mail -s “testmail” 377909726@qq.com //測(cè)試發(fā)信正常
2、編寫郵件發(fā)送腳本
- 郵件發(fā)送觸發(fā)腳本一定要寫在zabbix指定的alterscripts目錄下,后面直接指定腳本名稱即可觸發(fā)。
vim /usr/lib/zabbix/alertscripts
#!/bin/bash #send mail messages=`echo $3 | tr 'rn' 'n'` subject=`echo $2 | tr 'rn' 'n'` echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
touch /tmp/mailx.log
chown -R zabbix.zabbix /tmp/mailx.log
chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
chown -R zabbix.zabbix /usr/lib/zabbix/
- 測(cè)試發(fā)郵件腳本是否可以正常工作
./mailx.sh 377909726@qq.com “主題” “內(nèi)容”
3、配置服務(wù)監(jiān)控自動(dòng)觸發(fā)郵件發(fā)送腳本
4、在被監(jiān)控主機(jī)模擬故障
- 關(guān)閉被監(jiān)控主機(jī)的httpd服務(wù),驗(yàn)證郵箱接收情況。