zabbix分布式監控多網段的部署與實現


文章目錄

[隱藏]

  • 集群架構:
  • 構建思路:
  • 部署步驟:
    • 一、准備階段:
    • 二、部署階段:
集群架構:

 構建思路:

本監控系統由一個zabbix master和兩個zabbix proxy組成,各自位於不同的網段,且有獨立的MySQL服務器;其中192.168.1.0網段作為三個路由互聯的網段,10.0.0.0網段為zabbix master所處的網段,172.16.0.0和172.26.0.0網段為zabbix proxy1和zabbix proxy2所處的網段。

兩個zabbix proxy負責收集各自網段內主機的數據,每2秒向zabbix master發送監控各自網段內主機的數據。為節約資源,所有zabbix GUI服務均與zabbix server服務配置在同一台主機。

部署步驟:

一、准備階段:

1、准備三台最小化安裝的centos7,修改hostname,關閉selinux和防火牆,打開ipv4核心轉發並重啟:

# vi /etc/hostname

修改:

router1

保存退出

# vi /etc/selinux/config

修改:

SELINUX=disabled

保存退出

# systemctl disable firewalld # vi /usr/lib/sysctl.d/50-default.conf

添加:

net.ipv4.ip_forward = 1

保存退出

# sync # reboot

2、在各router上寫入靜態路由
1)在router1上寫入靜態路由:

# vi /etc/sysconfig/network-scripts/route-ens33

添加:

172.16.0.0/24 via 192.168.1.182 dev ens33 172.26.0.0/24 via 192.168.1.183 dev ens33

保存退出

# sync # reboot

2)在router2上寫入靜態路由:

# vi /etc/sysconfig/network-scripts/route-ens33

添加:

10.0.0.0/24 via 192.168.1.181 dev ens33 172.26.0.0/24 via 192.168.1.183 dev ens33

保存退出

# sync # reboot

3)在router3上寫入靜態路由:

# vi /etc/sysconfig/network-scripts/route-ens33

添加:

10.0.0.0/24 via 192.168.1.181 dev ens33 172.16.0.0/24 via 192.168.1.182 dev ens33

保存退出

# sync # reboot

3、在route1-3上測試靜態路由的連通情況:
1)route1:


2)route2:


3)route3:


4、准備三台安裝好MySQL的主機,配置好IP備用;
5、准備一台zabbix master主機和兩台zabbix ,配置好IP備用;
6、准備六台被監控主機,安裝好相應的服務、配置好IP備用;
7、各主機使用相同的hosts文件:

10.0.0.11 zbx-master 10.0.0.12 mysql1 10.0.0.21 tomcat1 10.0.0.22 tomcat2 172.16.0.11 zbx-proxy1 172.16.0.12 mysql2 172.16.0.21 nginx1 172.16.0.22 nginx2 172.26.0.11 zbx-proxy2 172.26.0.12 mysql3 172.26.0.21 redis1 172.26.0.22 redis2

8、各主機均使用NTP服務器校准時間;

二、部署階段:

對zabbix master的部署:
1、在zabbix master上安裝zabbix相關程序包:

# yum install zabbix22 zabbix22-server zabbix22-server-mysql zabbix22-web zabbix22-web-mysql zabbix22-agent zabbix22-dbfiles-mysql

2、在MySQL1上為zabbix創建用戶和數據庫:

# yum install mariadb-server mariadb # mysql MariaDB> CREATE DATABASE zabbix CHARACTER SET utf8; MariaDB> GRANT ALL on zabbix.* TO ‘zbxuser’@’10.0.0.%’ IDENTIFIED BY ‘zbxpass’; MariaDB> GRANT ALL on zabbix.* TO ‘zbxuser’@’zbx-master’ IDENTIFIED BY ‘zbxpass’; MariaDB> FLUSH PRIVILEGES;

3、復制zabbix master安裝的的數據庫模板至MySQL1:

# cd /usr/share/zabbix-mysql/ # scp *.sql root@mysql1:/root/

4、在MySQL1上導入數據庫模板:

# cd # mysql zabbix < schema.sql # mysql zabbix < images.sql # mysql zabbix < data.sql

5、在zabbix master上動httpd:

# systemctl start httpd.service

6、在zabbix master上編輯zabbix配置文件:

# vim /etc/zabbix/zabbix_server.conf

修改:

DBHost=10.0.0.12 DBName=zabbix DBUser=zbxuser DBPassword=zbxpass

保存退出
7、啟動zabbix-server

# systemctl start zabbix-server.service

8、查看10051端口是否監聽:

# ss –tnl

9、修改php的時區:

# vim /etc/php.ini

啟用:

date.timezone = Asia/Shanghai

保存退出
10、重啟httpd:

# systemctl restart httpd.service

11、在瀏覽器中啟動zabbix的配置界面:

http://10.0.0.11/zabbix


12、按提示配置zabbix
填入數據庫服務器地址、用戶、密碼等,填完之后還可以測試一下,看到“OK”說明數據庫連接正常:


標記zabbix服務器本身:

Host 10.0.0.11 Port 10051 Name zbx-master

確認后完成zabbix的配置
13、登陸時,默認賬號密碼:
用戶:admin
密碼:zabbix
登陸成功后即可進入zabbix的dashboard:


14、加入zabbix-server本身為監控對象:
配置agent的配置文件(注意:zabbix_agent.conf 和 zabbix_agentd.conf不一樣,要配置的是zabbix_agentd.conf,不能錯!)

# vim /etc/zabbix/zabbix_agentd.conf

修改:

Server=127.0.0.1,10.0.0.11

保存退出
啟動zabbix-agent

# systemctl start zabbix-agent

15、在zabbix GUI配置界面上啟用對本機的監控
點擊Status中的Not monitored,選擇OK:


當綠色的“Z”標志亮起,說明服務器已被正常監控:


16、配置並啟動兩台tomcat服務器的zabbix-agent:
在tomcat1上安裝、配置並啟動zabbix-agent:

# yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

修改:

Server=10.0.0.11 ServerActive=10.0.0.11 Hostname=tomcat1

保存退出

# systemctl start zabbix-agent.service

在tomcat2上安裝、配置並啟動zabbix-agent:

# yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

修改:

Server=10.0.0.11 ServerActive=10.0.0.11 Hostname=tomcat2

保存退出

# systemctl start zabbix-agent.service

17、將兩台tomcat服務器加入主機列表:


18、至此,zabbix master已部署完畢。

對zabbix proxy1的部署:
1、在zabbix proxy1上安裝程序包:

# yum install zabbix22 zabbix22-proxy zabbix22-proxy-mysql zabbix22-agent zabbix22-dbfiles-mysql

2、在MySQL2上為proxy1創建一個數據庫:

# mysql MariaDB> CREATE DATABASE zabbix_proxy CHARACTER SET utf8; MariaDB> GRANT ALL ON zabbix_proxy.* TO zbxuser@’172.16.0.%’IDENTIFIED BY ‘zbxpass’; MariaDB> GRANT ALL ON zabbix_proxy.* TO zbxuser@’zbx-proxy1’IDENTIFIED BY ‘zbxpass’; MariaDB> FLUSH PRIVILEGES; MariaDB> quit

3、在zabbix proxy1上復制數據庫文件到MySQL2上:

# cd /usr/share/zabbix-mysql/ # scp *.sql root@mysql2:/root/

4、在MySQL2上導入數據庫文件:

# cd # mysql zabbix_proxy < schema.sql 注意:proxy只需要schema.sql

5、在MySQL2上驗證導入數據庫是否成功:

# mysql MariaDB> USE zabbix_proxy MariaDB> SHOW TABLES;

6、在zabbix proxy1上配置zabbix-proxy的配置文件:

# cd /etc/zabbix # vim zabbix_proxy.conf

修改:

Server=10.0.0.11 ##填寫Master的地址 Hostname=zbx-proxy1 ##填寫本機hostname DBhost=172.16.0.12 ##填寫數據庫地址 DBname=zabbix_proxy DBuser=zbxuser DBpassword=zbxpass DataSenderFrequency=2 ##每隔2秒向Master送一次數據

保存退出
7、在zabbix proxy1上啟動zabbix-proxy服務:

# systemctl start zabbix-proxy

9、在zabbix proxy1上查看服務監聽端口:

# ss –tnl


10、在Maser的GUI界面上添加proxy
找到選項卡:Administration è DM
選擇“Create proxy”

Proxy name zbx-proxy1 Proxy mode Passive ##由Master推送配置 Proxy hosts


這里選擇需要加入的主機(目前還沒有主機加入)
點擊save完成添加


11、在zabbix proxy1上配置agent文件:

# vim /etc/zabbix/zabbix_agentd.conf

修改:

Server=10.0.0.11 ServerActive=10.0.0.11 Hostname=zbx-proxy1

保存退出

# systemctl start zabbix-agent.service

12、在zabbix的GUI界面上添加對proxy1的監控:


13、配置並啟動兩台nginx服務器的zabbix-agent:
在nginx1上安裝、配置並啟動zabbix-agent:

# yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

修改:

Server=172.16.0.11 ServerActive=172.16.0.11 Hostname=nginx1

保存退出

# systemctl start zabbix-agent.service

在nginx2上安裝、配置並啟動zabbix-agent:

# yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

修改:

Server=172.16.0.11 ServerActive=172.16.0.11 Hostname=nginx2

保存退出

# systemctl start zabbix-agent.service

14、將兩台nginx服務器以proxy的模式加入主機列表:

 

 



15、至此,zabbix proxy1已部署完畢。

對zabbix proxy2的部署:

1、在zabbix proxy2上安裝程序包:

# yum install zabbix22 zabbix22-proxy zabbix22-proxy-mysql zabbix22-agent zabbix22-dbfiles-mysql

2、在MySQL3上為proxy2創建一個數據庫:

# mysql MariaDB> CREATE DATABASE zabbix_proxy CHARACTER SET utf8; MariaDB> GRANT ALL ON zabbix_proxy.* TO zbxuser@’172.26.0.%’IDENTIFIED BY ‘zbxpass’; MariaDB> GRANT ALL ON zabbix_proxy.* TO zbxuser@’zbx-proxy2’IDENTIFIED BY ‘zbxpass’; MariaDB> FLUSH PRIVILEGES; MariaDB> quit

3、在zabbix proxy2上復制數據庫文件到MySQL3上:

# cd /usr/share/zabbix-mysql/ # scp *.sql root@mysql3:/root/

4、在MySQL3上導入數據庫文件:

# cd # mysql zabbix_proxy < schema.sql

5、在MySQL3上驗證導入數據庫是否成功:

# mysql MariaDB> USE zabbix_proxy MariaDB> SHOW TABLES;

6、在zabbix proxy2上配置zabbix-proxy的配置文件:

# cd /etc/zabbix # vim zabbix_proxy.conf

修改:

Server=10.0.0.11 Hostname=zbx-proxy2 DBhost=172.26.0.12 DBname=zabbix_proxy DBuser=zbxuser DBpassword=zbxpass DataSenderFrequency=2

保存退出
7、在zabbix proxy2上啟動zabbix-proxy服務:

# systemctl start zabbix-proxy

8、在zabbix proxy2上查看服務監聽端口:

# ss –tnl


9、在Maser的GUI界面上添加proxy
找到選項卡:Administration è DM
選擇“Create proxy”

Proxy name zbx-proxy2 Proxy mode Passive ##由Master推送配置 Proxy hosts


這里選擇需要加入的主機(目前還沒有主機加入)
點擊save完成添加


10、在zabbix proxy2上配置agent文件:

# vim /etc/zabbix/zabbix_agentd.conf

修改:

Server=10.0.0.11 ServerActive=10.0.0.11 Hostname=zbx-proxy2

保存退出

# systemctl start zabbix-agent.service

11、在zabbix的GUI界面上添加對proxy2的監控:


12、配置並啟動兩台redis服務器的zabbix-agent:
在redis1上安裝、配置並啟動zabbix-agent:

# yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

修改:

Server=172.26.0.11 ServerActive=172.26.0.11 Hostname=redis1

保存退出

# systemctl start zabbix-agent.service

在redis2上安裝、配置並啟動zabbix-agent:

# yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

修改:

Server=172.26.0.11 ServerActive=172.26.0.11 Hostname=redis2

保存退出

# systemctl start zabbix-agent.service

13、將兩台redis服務器以proxy的模式加入主機列表:

 

 

 

 



14、至此,zabbix proxy2已部署完畢。

監控主機全家福:


發現問題:
2個proxy后的主機均不能正常監控,Dashboard報錯:

Zabbix agent on nx1 unreachable for 5 minutes.


解決問題:
查詢zabbix master的日志,發現如下信息:

“172.26.0.11”failed: proxy “zbx-proxy2” is configured in passive mode.


說明此時proxy的工作模式和server的不一致,默認情況下,proxy是運行在active模式中的,故應該修改2個proxy的配置文件,使其運行在passive模式中:
在zbx-proxy1上修改:

# cd /etc/zabbix # vi zabbix_proxy.conf

修改:

ProxyMode=1

保存退出

# systemctl restart zabbix-proxy

在zbx-proxy2上修改:

# cd /etc/zabbix # vi zabbix_proxy.conf

修改:

ProxyMode=1

保存退出

# systemctl restart zabbix-proxy

問題解決:


經測試,passive模式工作的proxy的延遲要遠高於active模式,正確配置passive模式后如果proxy后的hosts無法顯示被監控,請耐心等待master向proxy推送新配置信息。

至此,整個zabbix分布式監控的部署完成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM