部署Zabbix集中監控系統

Zabbix概述

Zabbix是一個高度集成的企業級開源網絡監控解決方案,與Cacti、Nagios相似,提供分佈式監控以及集中的Web管理界面。被監控對象只要支持SNMP協議或者運行Zabbix_agents代理程序便可。Zabbix具有常見商業監控軟件所具有的功能:主機性能監控、網絡設備性能監控、數據庫性能監控、ftp等等通用協議的監控,可以利用靈活的可定製警告機制,容許用戶對事件發送基於E-mail的警告,能夠保證相關維護人員對問題做出快速響應,還能夠利用存儲數據提供傑出的報表及實時的圖形化數據處理,實現對Linux、Windows主機的7*24小時集中監控,監控的項目可包括CPU、內存、磁盤、網卡流量、服務可用性等各類資源。php

實驗環境

zabbix服務器:192.168.10.128
linux客戶機:192.168.10.142

安裝LAMP

爲訪問Zabbix的web頁面html

一、安裝lamp

yum install -y \
httpd \
mariadb-server mariadb \
php \
php-mysql \
php-gd \
libjpeg* \
php-ldap \
php-odbc \
php-pear \
php-xml \
php-xmlrpc \
php-mhash             //安裝lamp

二、修改httpd.conf文件

vim /etc/httpd/conf/httpd.conf

ServerName www.xxy.com            //域名

DirectoryIndex index.html index.php           //支持PHP首頁

三、修改時區

vi /etc/php.ini

date.timezone = PRC      //設置中國時區

四、關閉防火牆及SElinux,開啓httpd及數據庫服務

systemctl stop firewalld.service
setenforce 0        //關閉防火牆及SElinux

systemctl start httpd.service
systemctl start mariadb.service             //開啓httpd及數據庫服務

mysql_secure_installation               //數據庫配置

netstat -ntap | egrep '(80|3306)'               //查看80及3306端口

五、編輯首頁文件並訪問測試

vim /var/www/html/index.php

<?php
phpinfo();
?>

http://192.168.10.128/              //瀏覽器輸入測試

部署Zabbix集中監控系統

六、登陸數據庫,提權

mysql -u root -p

CREATE DATABASE zabbix character set utf8 collate utf8_bin;       //建立zabbix數據庫,並設置字符集
GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';        //任何主機上都使用zabbix管理全部庫與表,密碼爲admin123
flush privileges;

七、檢查數據庫是否可用

修改首頁文件,改成以下內容mysql

vim /var/www/html/index.php

<?php
$link=mysql_connect('192.168.10.128','zabbix','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
mysql_close();
?>

http://192.168.10.128/              //瀏覽器輸入測試

部署Zabbix集中監控系統

部署Zabbix服務器

一、安裝zabbix服務程序

yum install php-bcmath php-mbstring -y
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm       //會自動生成yum源文件,須要在聯網狀態
yum install zabbix-server-mysql zabbix-web-mysql -y

二、生成數據庫文件

zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p  zabbix      //生成數據庫文件,密碼爲admin123

三、修改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
117:DBUser=zabbix
125:DBPassword=admin123        //只修改本行,其他不用修改
356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
474:Timeout=4
517:AlertScriptsPath=/usr/lib/zabbix/alertscripts
528:ExternalScripts=/usr/lib/zabbix/externalscripts
564:LogSlowQueries=3000

部署Zabbix集中監控系統

vim /etc/zabbix/zabbix_server.conf 

DBPassword=admin123

部署Zabbix集中監控系統

vim /etc/httpd/conf.d/zabbix.conf        //修改時區

php_value date.timezone Asia/Shanghai

部署Zabbix集中監控系統

vim /usr/share/zabbix/include/defines.inc.php       //修正圖表中文亂碼

:%s /graphfont/simkai/g     將本來graphfont字體替換成simkai字體

從微軟系統下複製相應的字體文件到 /usr/share/zabbix/fonts 目錄中,注意字體名稱要對應配置文件,且注意大小寫
cp simkai.ttf /usr/share/zabbix/fonts/

部署Zabbix集中監控系統

四、開啓zabbix-server服務,重啓httpd服務

systemctl enable zabbix-server
systemctl start zabbix-server
netstat -anpt | grep zabbix       //監聽在10051端口上

systemctl restart httpd.service

部署Zabbix集中監控系統

五、瀏覽器訪問測試

http://192.168.10.128/zabbix/             //安裝後登陸 用戶名Admin 密碼:zabbix

部署Zabbix集中監控系統
部署Zabbix集中監控系統
部署Zabbix集中監控系統
部署Zabbix集中監控系統
部署Zabbix集中監控系統
部署Zabbix集中監控系統
部署Zabbix集中監控系統
部署Zabbix集中監控系統
設置中文環境:Administrator-Users-點擊用戶-語言中設置
部署Zabbix集中監控系統linux

配置linux客戶機

配置被控服務器,若是服務器也須要被本身監控也須要安裝zabbix-agentios

一、安裝zabbix-agent

rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm         //安裝yum源
yum install -y zabbix-agent

二、查看zabbix-agent配置文件

grep -n '^'[a-Z] /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.175.155
139:ServerActive=192.168.175.155
150:Hostname=test
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf

部署Zabbix集中監控系統

三、關閉防火牆及SElinux,開啓zabbix-agent服務

syatemctl stop firewalld.service
setenforce 0

systemctl enable zabbix-agent.service
systemctl restart zabbix-agent.service
netstat -anpt | grep zabbix         //監聽在10050端口

部署Zabbix集中監控系統

zabbix服務端添加被控主機

web頁面上操做步驟:配置→主機→建立主機
部署Zabbix集中監控系統
部署Zabbix集中監控系統
模板頁須要連接模板,根據須要連接相應的模板,這裏我添加了sshd和httpd兩個服務
部署Zabbix集中監控系統
部署Zabbix集中監控系統web

zabbix服務器配置郵件報警功能

一、安裝郵箱服務

yum -y install mailx

二、修改/etc/mail.rc文件

vi /etc/mail.rc     //注意網易郵箱須要開啓客戶端受權碼進行第三方登陸

#文件末尾添加
set from=131********@139.com        //實際不是*號
set smtp=smtp.139.com
set smtp-auth-user=131********@139.com
set smtp-auth-password=郵箱密碼
set smtp-auth=login

部署Zabbix集中監控系統

三、測試郵箱發送功能

echo "hello world" | mail -s "testmail" 131********@139.com        //測試發信是否正常

部署Zabbix集中監控系統

四、編寫發郵件腳本

cd /usr/lib/zabbix/alertscripts

vi mailx.sh //編寫發郵件腳本

#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\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/        //設置/usr/lib/zabbix/目錄屬主屬組

五、發郵件測試

./mailx.sh 131********@139.com "主題" "內容"       //測試發郵件腳本是否能夠正常工做

./mailx.sh 131********@139.com "test" "this is test"

部署Zabbix集中監控系統

部署郵件報警

在zabbix服務器web頁面上配置sql

一、設置報警媒體類型

管理→報警媒體類型→建立媒體類型

名稱:Mail-Test
類型:腳本
腳本名稱:mailx.sh
腳本參數:         //新增如下三個參數

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

部署Zabbix集中監控系統
部署Zabbix集中監控系統

二、設置報警媒介

管理→用戶→點擊Admin→報警媒介

類型:Mail-Test      //調用上面設置的腳本
收件人:131********@139.com
其它默認保存

部署Zabbix集中監控系統
部署Zabbix集中監控系統
部署Zabbix集中監控系統

三、設置出問題後的動做

配置→動做→建立動做→刪除默認標籤,修改觸發條件

名稱:Mailx
條件 A 主機羣組=Linux servers

部署Zabbix集中監控系統
部署Zabbix集中監控系統
部署Zabbix集中監控系統

操做→以下配置

默認操做步驟持續時間 60
默認標題: {TRIGGER.STATUS}:{TRIGGER.NAME}
消息內容:

告警主機:{HOST.NAME}
告警  IP:{HOST.IP}
告警時間:{EVENT.DATE}-{EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件  ID:{EVENT.ID}

操做細節:

步驟:1-3
步驟持續時間:60
操做類型:發送消息
發送到用戶:Admin (Zabbix Administrator) 
僅送到:Mail-Test       //必定要配置不然郵件發送不成功

部署Zabbix集中監控系統

恢復操做→以下配置

默認標題:{TRIGGER.STATUS}:{TRIGGER.NAME}
消息內容:

恢復主機:{HOST.NAME}
恢復  IP:{HOST.IP}
恢復時間:{EVENT.DATE}-{EVENT.TIME}
恢復等級:{TRIGGER.SEVERITY}
恢復信息:{TRIGGER.NAME}:{ITEM.VALUE}
恢復  ID:{EVENT.ID}

操做細節:
操做類型:發送消息
發送到用戶:Admin (Zabbix Administrator) 
僅送到:Mail-Test          //必定要配置不然郵件發送不成功

部署Zabbix集中監控系統
添加完成
部署Zabbix集中監控系統數據庫

四、zabbix服務端與linux客戶端分別重啓服務

systemctl restart zabbix-server               //zabbix服務端重啓zabbix-server
systemctl restart zabbix-agent.service             //linux客戶端重啓zabbix-agent.service

五、測試報警

#能夠在被控主機上模擬相關參數超過閾值,如磁盤空間。而後驗證郵件收發。
systemctl stop httpd.service      //linux客戶端上開啓了httpd服務,現將其關閉,測試報警郵件的發送

正常監控頁面以下
部署Zabbix集中監控系統
被控端關閉httpd服務後出現問題
部署Zabbix集中監控系統
收到郵件提醒
部署Zabbix集中監控系統
被控端開啓httpd服務,顯示問題已解決
部署Zabbix集中監控系統
問題解決郵件提醒
部署Zabbix集中監控系統vim

相關文章
相關標籤/搜索