Zabbix監控環境搭建實現7x24監控服務
Zabbix通過C/S模式采集數據通過B/S模式在web端展示和配置,通過SNMP協議傳輸,而被監控對象只需要支持SNMP協議或者運行Zabbix——agents代理程序即可。服務端監聽端口為10051,而被監控端即Zabbix——agents代理程序監控10050端口。
本篇基於centos7.3版本安裝zabbix4.0實現對centos7.3主機的監控管理以及警告機制郵箱發送的搭建。
實驗環境
主機 | 操作系統 | IP地址 | 主要軟件 |
---|---|---|---|
zabbix服務端 | centos7.3 x86_64 | 192.168.144.113 | zabbix-server4.0 |
Linux被監控端 | centos7.3 x86_64 | 192.168.144.114 | zabbix-agent4.0 |
Zabbix服務端環境部署
1、部署LAMP環境
- 由於zabbix提供集中的web監控管理界面,因此服務在web界面的呈現需要LAMP架構支持。
yum install -y \ //安裝LAMP環境包 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,配置中國時區
vim /etc/php.ini
date.timezone = PRC //PRC為中國時區
- 啟動httpd,mysql
systemctl stop firewalld.service
setenforce 0systemctl start httpd.service
systemctl start mariadb.servicenetstat -ntap | egrep ‘(80|3306)‘
- 啟動msyql後執行初始安全設置。
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‘; //創建zabbix數據庫,並設定用戶密碼
flush privileges;
- 數據庫設置完成,檢測php與數據庫連通情況
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();
?>
出現上圖則PHP連通數據庫完成。
- 為保證zabbix用戶也可以登錄數據庫,若出現本地無法登錄情況,解決方式如下。
- 使用root賬戶登錄數據庫。
select user,host from mysql.user; //有空用戶名稱占用導致本地無法登錄遠程可登錄
+--------+-----------+
| 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 //會自動生成yum源文件,保證系統可以上網
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 //生成數據庫文件,註意密碼不要輸成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 //訪問數據庫名稱
117:DBUser=zabbix //zabbix訪問數據庫用戶
125:DBPassword=admin123 //配置文件中只需修改本行,zabbix訪問數據庫密碼
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中的時區
vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
- 為防止web界面中文亂碼現象,需要將相應字體文件復制,使zabbix識別
cp STKAITI.TTF /usr/share/zabbix/fonts/
- 使zabbix系統識別字體
vim /usr/share/zabbix/include/defines.inc.php
:%s /graphfont/kaiti/g //采用全局替換模式
- zabbix基本配置完成,啟動服務,實現web界面安裝
systemctl enable zabbix-server
systemctl start zabbix-server
netstat -anpt | grep zabbix //監聽在10051端口上
systemctl restart httpd.service
- web界面安裝訪問。
http://192.168.175.155/zabbix/
web界面安裝流程如下:
zabbix被監控端代理設置
- 安裝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服務器地址
139:ServerActive=192.168.144.113 //活躍服務器地址
150:Hostname=test
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf
- 關閉防火墻,啟動服務
systemctl stop firewalld.service
setenforce 0
systemctl enable zabbix-agent.service
systemctl restart zabbix-agent.servicenetstat -anpt | grep zabbix //監聽在10050端口
WEB管理界面添加被管理主機
配置郵箱報警功能
1、配置自動郵箱發送
yum install mailx -y
vim /etc/mail.rc 編輯mailx配置文件
set [email protected]
set smtp=smtp.qq.com
set [email protected]
set smtp-auth-password=郵箱密碼
set smtp-auth=login
- 測試郵箱軟件是否可用
echo "hello world" | mail -s "testmail" [email protected] //測試發信正常
2、編寫郵件發送腳本
- 郵件發送觸發腳本一定要寫在zabbix指定的alterscripts目錄下,後面直接指定腳本名稱即可觸發。
vim /usr/lib/zabbix/alertscripts
#!/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/
- 測試發郵件腳本是否可以正常工作
./mailx.sh [email protected] "主題" "內容"
3、配置服務監控自動觸發郵件發送腳本
4、在被監控主機模擬故障
- 關閉被監控主機的httpd服務,驗證郵箱接收情況。
Zabbix監控環境搭建實現7x24監控服務