Zabbix分布式部署詳細
zabbix proxy 可以代替 zabbix server 收集性能和可用性數據,然后把數據匯報給 zabbix server,並且在一定程度上分擔了zabbix server 的壓力。此外,當所有agents和proxies報告給一個Zabbix server並且所有數據都集中收集時,使用proxy是實現集中式和分布式監控的最簡單方法
zabbix proxy 使用場景:
監控遠程區域設備
監控本地網絡不穩定區域
當 zabbix 監控上千設備時,使用它來減輕 server 的壓力
簡化分布式監控的維護
環境准備
| 節點主機名 | IP地址 | 備注 |
|---|---|---|
| node1 | 10.0.0.41 | Zabbix server服務器 |
| node2 | 10.0.0.42 | Zabbix poxy代理服務器 |
| node3 | 10.0.0.43 | 模擬poxy所監控的服務器node3 |
首先安裝Zabbix官方源和epel源
yum -y install epel-release.noarch rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
一、部署Zabbix-Proxy
1、安裝Zabbix-proxy等組件
[root@ node2 ~]# yum install -y zabbix-proxy zabbix-proxy-mysql mariadb mariadb-server zabbix-agent
2、簡單優化mariadb
[root@ node1 ~]# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8 #設置字符集為utf8
innodb_file_per_table=1 #設置innodb的每個表文件單獨存儲
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
.......
[root@ node1 ~]# systemctl start mariadb #設為開機啟動
[root@ node1 ~]# systemctl enable mariadb #開啟MariaDB數據
3、設置數據庫相關項
[root@ node1 ~]# mysql -u root -p
MariaDB [(none)]> create database zabbixproxydb character set utf8 collate utf8_bin;
#創建數據庫且字符集為utf8,使web界面顯示中文不出現亂碼
MariaDB [(none)]> grant all privileges on zabbixproxydb.* to proxy@'localhost' identified by '123456';
#創建zabbixproxydb數據庫和proxy用戶,且賦予此用戶擁有此數據庫全部權限。
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> q\;
4、導入數據庫相關表
zcat /usr/share/doc/zabbix-proxy-mysql-*/schema.sql.gz | mysql -uroot -p zabbixproxy #將模板數據恢復至zabbixproxydb數據
mysql -u proxy -p123456 zabbixproxydb -e "show tables" #查看數據是否導入
5、主要配置zabbix_proxy.conf項以下幾個
[root@ node2 ~]# vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 # 默認即為0,代表 Proxy 處於主動模式,即 Proxy 主動去請求 Zabbix Server 獲取監控項;1 代表被動模式
Server=10.0.0.41 #改成service端ip需要向service發送數據
ServerPort=10051 # 默認即為10051,Zabbix Server 監聽端口,同上只在 Proxy 為主動模式時生效
Hostname=node2 # Server端添加proxy的時候需要一致,建議采用主機名
LogFile=/var/log/zabbix/zabbix_proxy.log # Proxy 日志文件位置
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
DBHost=localhost # 連接數據庫的主機
DBName=zabbixproxydb # 數據庫名
DBUser=proxy # 連接用戶
DBPassword=123456 # 用戶密碼
ConfigFrequency=60 # proxy主動從server端檢索配置更新的頻率,單位秒,主動proxy 參數, 被動 proxies忽略此項
DataSenderFrequency=60 # Proxy 向 Zabbix Server 發送監控數據間隔,單位為秒
Timeout=4
6、Proxy自身agent配置
[root@ node2 ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.42 #若為純主動模式需要注釋此行
ServerActive=10.0.0.42 #主動模式,數據通過proxy代理向Server傳送數據
Hostname=node2 #zabbix server web上添加自身需要用到
7、zabbix-proxy啟動及開機啟動
[root@ node2 ~]# systemctl start zabbix-proxy.service
[root@ node2 ~]# systemctl enable zabbix-proxy.service
[root@ node2 ~]# systemctl start zabbix-agent.service
[root@ node2 ~]# systemctl enable zabbix-agent.service
二、部署Zabbix-Server
1、安裝Zabbix Server等組件
yum -y install zabbix-get zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent mariadb mariadb-server
2、簡單優化mariadb
[root@ node1 ~]# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8 #設置字符集為utf8
innodb_file_per_table=1 #設置innodb的每個表文件單獨存儲
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
.......
[root@ node1 ~]# systemctl start mariadb #設為開機啟動
[root@ node1 ~]# systemctl enable mariadb #開啟MariaDB數據
3、設置數據庫相關項
[root@ node1 ~]# mysql -u root -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#創建數據庫且字符集為utf8,使web界面顯示中文不出現亂碼
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by '123456';
#創建zabbix數據庫和Zabbix用戶,且賦予此用戶擁有此數據庫全部權限。
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> q\;
4、導入數據庫相關表
zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz |mysql -uroot -p zabbix #將模板數據恢復至Zabbix數據
mysql -u zabbix -p123456 zabbix -e "show tables" #查看數據是否導入
5、主要配置Zabbix_server.conf項一下幾個
[root@ node1 ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost #mysql所在地
DBName=zabbix #數據庫名
DBUser=zabbix #數據庫用戶zabbix
DBPassword=123456 #修改DB密碼(之前所創建密碼)
LogSlowQueries=3000 #多慢的數據庫查詢將會被記錄,單位:毫秒,0表示不記錄慢查詢
6、啟動Zabbix服務
[root@ node1 ~]# systemctl enable zabbix-server #設為開機啟動Zabbix服務
[root@ node1 ~]# systemctl start zabbix-server #啟動Zabbix服務
[root@ node1 ~]# systemctl start zabbix-agent #需要監控自己,因此也開啟agent
[root@ node1 ~]# systemctl enable zabbix-agent #啟動Zabbix服務
7、配置php
[root@ node1 ~]# vi /etc/php.ini
date.timezone= Asia/Shanghai #主要改這一行
[root@ node1 ~]# vim /etc/httpd/conf.d/zabbix.conf
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai #主要改這一行
</IfModule>
</Directory>
8、啟動Apache服務
[root@ node1 ~]# systemctl start httpd.service [root@ node1 ~]# systemctl enable httpd.service
9、Web界面配置
Proxy name : 輸入代理名稱,它必須與代理配置文件中的Hostname參數中的名稱相同。
Proxy mode : 選擇代理模式。
Proxy address : 添加的代理主機IP地址。
Description: 輸入代理描述。

三、 部署Zabbix Agent節點
1、安裝Zabbix Agent等組件
yum -y install zabbix-agent
- 1
2、node3節點agent配置
[root@ node3 ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.42 #若為純主動模式需要注釋此行
ServerActive=10.0.0.42 #主動模式,數據通過proxy代理向Server傳送數據
Hostname=node2 #zabbix server web上添加自身需要用到
3、 啟動Zabbix服務
[root@ node3 ~]# systemctl start zabbix-agent [root@ node3 ~]# systemctl enable zabbix-agent
四、修改模板監控模式
配置---->模板---->Template OS Linux---->全克隆


1.2 Linux系統模板---->監控項---->全選---->批量更新---->類型---->zabbix客戶端(主動式)---->更新





1.3 Linux系統模板---->自動發現規則,需要將兩個發現規則均改為主動式


五、添加node3節點
為了方便管理,可新建node2代理的主機組。
配置---->主機
為主機選擇相應的模板---->添加
效果

手動添加的監控項也可改成主動式
添加圖形
查看效果
原文:https://blog.csdn.net/a13568hki/article/details/106627315?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242
