1. 程式人生 > >Linux部署Zabbix集中監控系統

Linux部署Zabbix集中監控系統

Zabbix概述

Zabbix是一個基於Web介面的分散式系統監控與網路裝置監控系統,它能夠監控各種網路引數,並提供靈活的通知機制,以使管理員能快速定位故障並解決由zabbix server 端與zabbix agent組成,可通過SNMP、zabbix、agent 、ping、埠監視等方法實現對遠端主機與網路裝置的監控。

zabbix特點

  • 支援自動發現網路裝置和伺服器
  • 支援分散式監控
  • 可設定報警閾值
  • 可以通過多種方式進行資料收集
  • 可定製報警方式
  • 實時的繪圖功能
  • 通過Web監控系統與設定

zabbix官網: https://www.zabbix.com

系統環境

主機 IP 服務
監控端 192.168.26.161 lamp、zabbix-server
被監控端 192.168.26.163 zabbix-agent

實驗步驟

關閉所有主機的防火牆和安全性策略

systemctl stop firewalld.service
setenforce 0 

一、Server端安裝配置LAMP環境,以滿足zabbix的程式碼部署要求

1.安裝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

2.編輯修改httpd、php配置檔案

vi /etc/httpd/conf/httpd.conf
ServerName www.benet.com
DirectoryIndex index.html index.php

vi /etc/php.ini
date.timezone = PRC    //設定中國時區

3.啟動http服務與mariadb服務

systemctl start httpd.service
systemctl start mariadb.service

netstat -ntap | egrep '(80|3306)'  //檢視埠

部署Zabbix集中監控系統

4.MySQL初始化安裝

mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): // 回車鍵
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:    //設定新密碼
Re-enter new password:      //確認密碼
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] n    //是否移除anonymous使用者
 ... skipping.

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n      //是否允許root使用者遠端登入
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] n    //是否移除test資料庫
 ... skipping.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y    //重新載入資料表
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

5.登入mysql,建立zabbix資料庫及建立zabbix使用者並設定密碼

mysql -u root -p

CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';
flush privileges;

6.建立mysql資料庫的測試網頁檔案

vi /var/www/html/index.php

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

部署Zabbix集中監控系統

7.客戶端訪問index.php網頁

顯示success則訪問mysql正常,fail則訪問失敗,檢查index.php中連線地址、使用者名稱、密碼是否正確,若還是有問題請檢查mysql.user表使用者名稱稱是否有空使用者名稱稱佔用而導致的錯誤,以下為解決方法

> select user,host from mysql.user; //使用者名稱稱為空佔用導致本地無法登入遠端可登入

+--------+-----------+
| user  | host      |
+--------+-----------+
| zabbix | %        |
| root  | 127.0.0.1 |
| root  | ::1      |
|        | localhost |
| root  | localhost |
|        | zabbix    |
| root  | zabbix    |
+--------+-----------+

> drop user ''@localhost;

> drop user ''@zabbix;

> flush privileges;

二、部署zabbix Server

1.下載zabbix官方yum原始檔

rpm -i https://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm

2.安裝zabbix服務端及被控端軟體包

yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y

3.匯入zabbix資料庫

zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p  zabbix

4.編輯zabbix_service.conf配置,結果如下

egrep -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 //修改本行為建立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

5.編輯zabbix配置檔案,指定時區

vim /etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai

6.修正zabbix-web圖表中文亂碼

vim /usr/share/zabbix/include/defines.inc.php

#替換全文中所有graphfot為kaiti
:%s/graphfont/kaiti/g

7.複製字型檔案至zabbix/fonts/目錄下

cp kaiti.ttf /usr/share/zabbix/fonts/

8.啟動zabbix-server服務

systemctl enable zabbix-server
systemctl start zabbix-server

9.檢查是否已監聽10051埠

netstat -anpt | grep zabbix

部署Zabbix集中監控系統

10.重啟httpd服務

systemctl restart httpd.service

三、部署Zabbix-agent

1.下載zabbix官方yum原始檔

rpm -i https://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm

2.安裝zabbix被控端軟體包

yum install -y zabbix-agent

3.編輯zabbix_agentd.conf配置,結果如下

egrep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf

13:PidFile=/var/run/zabbix/zabbix_agentd.pid
23:LogFile=/var/log/zabbix/zabbix_agentd.log
34:LogFileSize=0
85:Server=192.168.96.70
126:ServerActive=192.168.96.70
137:Hostname=zabbix
246:Include=/etc/zabbix/zabbix_agentd.d/

4.啟動zabbix-agent服務

systemctl enable zabbix-agent.service
systemctl start zabbix-agent.service

5.檢查是否已監聽10050埠

netstat -anpt | grep zabbix

部署Zabbix集中監控系統

四、在web介面安裝zabbix

開啟瀏覽器輸入:
http://192.168.26.161/zabbix/
安裝後登入 使用者名稱Admin 密碼:zabbix
點選使用者:設定中文環境方便管理

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

新增被控主機

配置>主機>建立主機
主機頁面根據需求配置
選中主機>點選批量更新(可以新增監控項)> 模板 (新增2個模板測試下)

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

五、配置郵件報警功能

1.首先在zabbix-server上配置

yum install mailx  -y

vi /etc/mail.rc

----檔案末尾新增---
set from=qq郵箱
set smtp=smtp.qq.com
set smtp-auth-user=qq郵箱
set smtp-auth-password=郵箱授權碼
set smtp-auth=login

echo "hello world" | mail -s "testmail" qq郵箱 //測試發信正常

cd /usr/lib/zabbix/alertscripts

vi mailx.sh //e編寫發郵件指令碼
#!/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  qq郵箱 "主題" "內容"  //測試發郵件指令碼是否可以正常工作

部署Zabbix集中監控系統

2.然後在伺服器WEB上配置

開啟管理==》報警媒體型別==》建立媒體型別

部署Zabbix集中監控系統

名稱:Mail-Test
型別:指令碼
指令碼名稱:mailx.sh
指令碼引數://新增以下三個引數
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

部署Zabbix集中監控系統

管理==》使用者==》點選Admin=》報警媒介
型別:Mail-Test //呼叫上面的指令碼br/>收件人:qq郵箱
其它預設-儲存

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

配置-》動作-》建立動作-》刪除預設標籤,修改觸發條件
名稱:Mailx
條件 A 主機群組=Linux servers

部署Zabbix集中監控系統

操作-》如下配置
預設操作步驟持續時間 60
預設接收人 : {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集中監控系統

恢復操作:{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集中監控系統

六、測試郵箱報警功能

新增一個監控項(ssh service)
systemctl stop sshd //在被監控主機上關閉ssh服務

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

重新啟動ssh服務

部署Zabbix集中監控系統