一、部署 Zabbix 代理服務(wù)器
1. 分布式監(jiān)控的作用
- 分擔(dān) server 的集中式壓力;
- 解決多機(jī)房之間的網(wǎng)絡(luò)延時(shí)問題。
結(jié)構(gòu):agent ——> proxy ——> server
2. 部署過程
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-proxy
2.1 設(shè)置 zabbix 的下載源,安裝 zabbix-proxy
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy
2.2 部署數(shù)據(jù)庫(kù)
??要求 MySQL 5.7 或 Mariadb 10.5 及以上版本
#配置 Mariadb yum源
cat > /etc/yum.repos.d/mariadb.repo << EOF
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
EOF
yum install -y mariadb-server mariadb
systemctl enable --now mariadb
#初始化數(shù)據(jù)庫(kù)
mysql_secure_installation
分別輸入 回車 -> n -> Y (設(shè)置root密碼,如abc123) -> 后面一路 Y
mysql -u root -pabc123
#創(chuàng)建數(shù)據(jù)庫(kù)并指定字符集
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
#創(chuàng)建 zabbix 數(shù)據(jù)庫(kù)用戶并授權(quán)
GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
2.3 導(dǎo)入數(shù)據(jù)庫(kù)信息
rpm -ql zabbix-sql-scripts #查詢 sql 文件的位置
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -pabc123 zabbix_proxy
2.4 修改 zabbix-proxy 配置文件
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.145.45 #32行,指定 zabbix 服務(wù)端的 IP 地址
Hostname=zbx-proxy #42行,指定當(dāng)前 zabbix 代理服務(wù)器的主機(jī)名
DBPassword=zabbix #194行,指定當(dāng)前數(shù)據(jù)庫(kù) zabbix 用戶的密碼
2.5 啟動(dòng) zabbix-proxy
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
2.6 在所有主機(jī)上配置 hosts 解析
vim /etc/hosts
192.168.145.30 zbx-server
192.168.145.15 zbx-agent01
192.168.145.45 zbx-agent02
192.168.145.60 zbx-proxy
2.7 在 Web 頁面配置 agent 代理
點(diǎn)擊左邊菜單欄【配置】中的【動(dòng)作】,勾選自動(dòng)注冊(cè)規(guī)則,點(diǎn)擊 禁用
點(diǎn)擊左邊菜單欄【配置】中的【主機(jī)】,勾選原有的客戶端主機(jī),點(diǎn)擊 刪除
點(diǎn)擊左邊菜單欄【管理】中的【agent代理程序】,點(diǎn)擊【創(chuàng)建代理】
【agent代理程序名稱】輸入 zbx-proxy
【系統(tǒng)代理程序模式】選擇 主動(dòng)式
【代理地址】輸入 192.168.145.60
點(diǎn)擊 【添加】
2.8 配置 agent 使用 proxy
#在客戶端修改 agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.145.60 #80行,指定 zabbix 代理服務(wù)器的 IP 地址
ServerActive=192.168.145.60 #133行,指定 zabbix 代理服務(wù)器的 IP 地址
#在 Web 頁面配置
點(diǎn)擊左邊菜單欄【配置】中的【主機(jī)】,點(diǎn)擊【創(chuàng)建主機(jī)】
【主機(jī)名稱】輸入 zbx-agent01
【可見的名稱】輸入 zbx-agent01
【模板】搜索 Linux ,選擇 Linux by Zabbix agent
【群組】選擇 Linux server
【Interfaces】選擇 客戶端,【IP地址】輸入 192.168.145.15,【端口】輸入 10050
【由agent代理程序監(jiān)測(cè)】選擇 zbx-proxy
點(diǎn)擊 【添加】
#分別在客戶端和代理服務(wù)器上重啟服務(wù)
systemctl restart zabbix-agent2
systemctl restart zabbix-proxy
等待一段時(shí)間后,點(diǎn)擊左邊菜單欄【配置】中的【主機(jī)】刷新,查看客戶端主機(jī)監(jiān)控狀態(tài)正常
在服務(wù)端查看日志
tail -f /var/log/zabbix/zabbix_proxy.log
二、部署 Zabbix 高可用集群
??官方的高可用僅僅針對(duì) Zabbix Server 部分,數(shù)據(jù)庫(kù)部分和前端部分需要自行采用各自領(lǐng)域的高可用解決方案。
1. 服務(wù)端配置
??默認(rèn)情況下,HA 是關(guān)閉的。HA 部分的配置在配置文件的最下面:High availability cluster parameters 部分。
#主節(jié)點(diǎn) Zabbix Server 配置
vim /etc/zabbix/zabbix_server.conf
......
DBHost=192.168.145.30 #87行
DBName=zabbix #99行
DBUser=zabbix #115行
DBPassword=zabbix #123行
......
HANodeName=zbx-server01 #974行,設(shè)置為當(dāng)前節(jié)點(diǎn)主機(jī)名
NodeAddress=192.168.145.30:10051 #984設(shè)置為節(jié)點(diǎn)IP
systemctl restart zabbix-server
#主節(jié)點(diǎn)給數(shù)據(jù)庫(kù)授權(quán)遠(yuǎn)程登錄權(quán)限
mysql -uroot -pabc123
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
#備節(jié)點(diǎn) Zabbix Server 配置
vim /etc/zabbix/zabbix_server.conf
......
DBHost=192.168.145.30 #87行
DBName=zabbix #99行
DBUser=zabbix #115行
DBPassword=zabbix #123行
......
HANodeName=zbx-server02 #974行,設(shè)置為當(dāng)前節(jié)點(diǎn)主機(jī)名
NodeAddress=192.168.145.30:10051 #984設(shè)置為節(jié)點(diǎn)IP
systemctl restart zabbix-server
2. 客戶端配置
vim /etc/zabbix/zabbix_agentd.conf
......
Server=192.168.145.30,192.168.145.75
ServerActive=192.168.145.30;192.168.145.75 #注意,ServerActive 的連接符是‘;’ ,而不是‘,’
3. 測(cè)試
vim /etc/hosts
192.168.145.30 zbx.abc.com
192.168.145.75 zbx.def.com
192.168.145.15 zbx-agent01
192.168.145.45 zbx-agent0
三、Zabbix 監(jiān)控 Windows 系統(tǒng)
1.下載 Windows 客戶端 Zabbix agent 2
https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.13/zabbix_agent2-6.0.13-windows-amd64-openssl.msi
2.安裝客戶端,配置
雙擊客戶端軟件包開始安裝
【Host name】:WIN10-SERVER
【Zabbix server IP/DNS】:192.168.145.30
【Agent listen port】:10050
【Server or Proxy for active checks】:192.168.145.30
勾選 【Add agent location to the PATH】
3.在服務(wù)端 Web 頁面添加主機(jī),關(guān)聯(lián)模板
點(diǎn)擊左邊菜單欄【配置】中的【主機(jī)】,點(diǎn)擊【創(chuàng)建主機(jī)】
【主機(jī)名稱】輸入 win10-agent01
【可見的名稱】輸入 win10-agent01-192.168.80.5
【模板】搜索 windows ,選擇 Windows by Zabbix agent
【群組】輸入 windows ,選擇 windows(新)
【Interfaces】點(diǎn)擊添加 客戶端,【IP地址】輸入 192.168.80.5,【端口】輸入 10050
四、Zabbix 監(jiān)控 java 應(yīng)用
1.客戶端開啟 java jmxremote 遠(yuǎn)程監(jiān)控功能
#上傳 tomcat 軟件包到 /opt 目錄中
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
#配置 java jmxremote 遠(yuǎn)程監(jiān)控功能
vim /usr/local/tomcat/bin/catalina.sh
...... #位置在 cygwin=false 前
CATALINA_OPTS="$CATALINA_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=192.168.145.15" #tomcat服務(wù)器地址
cygwin=false
#啟動(dòng)服務(wù),查看端口
/usr/local/tomcat/bin/startup.sh
netstat -lntp | grep 12345
2.服務(wù)端安裝 zabbix-java-gateway
yum install -y zabbix-java-gateway
systemctl enable --now zabbix-java-gateway.service
netstat -lntp | grep 10052 #zabbix-java-gateway 默認(rèn)監(jiān)聽 10052 端口
3.修改服務(wù)端 zabbix-server 配置
vim /etc/zabbix/zabbix_server.conf
......
JavaGateway=127.0.0.1 # 317行,指定 zabbix-java-gateway 的 IP 地址
StartJavaPollers=5 # 333行,開啟用來收集java數(shù)據(jù)的poller進(jìn)程的數(shù)量
systemctl restart zabbix-server
ps -ef | grep zabbix_server | grep java
4.在服務(wù)端 Web 頁面添加主機(jī),關(guān)聯(lián)模板
點(diǎn)擊左邊菜單欄【配置】中的【主機(jī)】,點(diǎn)擊 zbx-agent01
【模板】搜索 JMX ,選擇 Generic Java JMX
【Interfaces】點(diǎn)擊添加 JMX,【IP地址】輸入 192.168.145.15,【端口】輸入 12345
點(diǎn)擊 【更新】
等待一段時(shí)間后 Zabbix server 的可用性增加了 JXM 監(jiān)控方式
#監(jiān)控其它 java 應(yīng)用
java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=192.168.80.30" \
-jar XXX.jar
五、Zabbix 監(jiān)控 SNMP
??SNMP,簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議,常用于監(jiān)控網(wǎng)絡(luò)設(shè)備,也能監(jiān)控支持開啟SNMP功能的設(shè)備(windows、linux、打印機(jī)等)。
1.服務(wù)端安裝 snmp 監(jiān)控程序
yum install -y net-snmp net-snmp-utils
2.修改 snmp 的配置文件,并啟動(dòng)服務(wù)
vim /etc/snmp/snmpd.conf
......
view systemview included .1 #57行,添加此配置
systemctl start snmpd
3.使用 snmpwalk 命令測(cè)試
snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: zbx-server
-------------------------------------------------------
–v 1|2c|3:指定SNMP協(xié)議版本,v2c通過團(tuán)體名作為認(rèn)證,v3通過用戶名和密碼認(rèn)證
–c:指定團(tuán)體名(設(shè)備間的暗號(hào))
sysname:為 snmp 的 key,用于查看系統(tǒng)名稱;SysDesc 用于查看系統(tǒng)信息
-------------------------------------------------------
4.在 Web 頁面配置 snmp 方式監(jiān)控
點(diǎn)擊左邊菜單欄【配置】中的【主機(jī)】,點(diǎn)擊 Zabbix server
【模板】取消鏈接并清理 現(xiàn)有模板 Linux by Zabbix agent
搜索 Generic,選擇 Generic by SNMP
【群組】搜索 net,選擇 net(新)
【Interfaces】點(diǎn)擊【添加】選擇 SNMP ,【IP地址】輸入 127.0.0.1,【端口】輸入 161
【SNMP version】選擇 SNMPv2
【SNMP community】輸入 {$SNMP_COMMUNITY}
點(diǎn)擊上方菜單欄【宏】
選擇【主機(jī)宏】
【宏】輸入 {$SNMP_COMMUNITY},【值】 輸入 public(要與網(wǎng)絡(luò)設(shè)備設(shè)置的團(tuán)體名一致),【描述】輸入 網(wǎng)絡(luò)設(shè)備snmp的團(tuán)隊(duì)名
點(diǎn)擊 【更新】
等待一段時(shí)間后 Zabbix server 的可用性就變成了 SNMP 監(jiān)控方式
總結(jié)
1. Zabbix 如何郵件報(bào)警
1)在服務(wù)端web管理頁面的 【管理】-【報(bào)警媒介類型】中設(shè)置報(bào)警類型和報(bào)警內(nèi)容
2)在 【User settings】-【profile】-【報(bào)警媒介】中設(shè)置 類型 收件人 啟用時(shí)間 故障嚴(yán)重級(jí)別
3)在【配置】-【動(dòng)作】-【Trigger actions】中添加 報(bào)警觸發(fā)器和操作內(nèi)容
4)測(cè)試
2. Zabbix 和 Prometheus 區(qū)別
zabbix 優(yōu)點(diǎn):
??1、監(jiān)控模版可以包含多個(gè)指標(biāo),在不涉及自定義采集腳本等其他方式的情況下,使用SNMP、Zabbix Agent 的情況下可以做到開箱即用;
??2、指標(biāo)和觸發(fā)器(Zabbix的告警規(guī)則叫觸發(fā)器)的關(guān)聯(lián)交互挺好用;
??3、宏和宏變量的使用可以大大的提高告警的便捷性,基本可以做到每個(gè)label 不同的閾值;
??4、Zabbix 的指標(biāo)采集挺豐富的,包括采集間隔,是否要一直采集還是每天固定時(shí)間段來采集;
??5、Zabbix 的管理頁面,這個(gè)不愧是企業(yè)級(jí)軟件,Zabbix 很大一部分的優(yōu)勢(shì)是靠它來體現(xiàn)的。
zabbix缺點(diǎn):
??1、Zabbix 架構(gòu)原生是單點(diǎn),沒有集群方案,官方推薦的是使用keepalived 來進(jìn)行3個(gè)點(diǎn)的負(fù)載均衡,這個(gè)方案在現(xiàn)在來說還是有很大的優(yōu)化空間的。
??2、Zabbix 的數(shù)據(jù)存儲(chǔ)使用關(guān)系型數(shù)據(jù)庫(kù),在 Zabbix 剛發(fā)布的時(shí)候,這個(gè)沒的選擇,但放在現(xiàn)在這是個(gè)很大的問題,當(dāng)指標(biāo)數(shù)量增加以后,數(shù)據(jù)的存儲(chǔ)空間、查詢時(shí)間都變成了一個(gè)恐怖的事情。當(dāng)前使用了6TiB的空間來存儲(chǔ)了每幀80萬條數(shù)據(jù),采集間隔一分鐘,詳細(xì)數(shù)據(jù)1個(gè)月,歷史數(shù)據(jù)大概1年半的數(shù)據(jù),Prometheus 存儲(chǔ)比這個(gè)節(jié)省多了。當(dāng)然zabbix 也可以支持更大的數(shù)據(jù)收集規(guī)模,只是不知道資源會(huì)按什么比例增長(zhǎng)。
??3、升級(jí)復(fù)雜,體驗(yàn)了4.4.0升級(jí)到4.4.10以后,升級(jí)太麻煩,使用Zabbix 你的團(tuán)隊(duì)最好配置一個(gè)DBA 來處理各種問題。
??4、Zabbix 和 Grafana 的結(jié)合不太好,語句寫起來挺生硬的,也能用,但是不如Prometheus 靈活。
Prometheus 的優(yōu)點(diǎn):
??1、結(jié)構(gòu)簡(jiǎn)單,但是可以水平擴(kuò)展,通過和thanos 結(jié)合可以做到無縫的水平擴(kuò)展。不喜歡thanos 也可以使用自帶的聯(lián)邦功能進(jìn)行擴(kuò)展,Prometheus 的思想就是:我盡量簡(jiǎn)單但是好用,剩下的功能盡管放給其他人做
??2、采用時(shí)序數(shù)據(jù)庫(kù),大大的節(jié)省了存儲(chǔ)空間,并且提升了查詢效率。我使用3TiB 的空間存儲(chǔ)了每幀300萬條數(shù)據(jù),30秒采集一次,大約有120萬條數(shù)據(jù)是15秒采集一次,詳細(xì)數(shù)據(jù)存2個(gè)月,5分鐘降準(zhǔn)數(shù)據(jù)存半年,一小時(shí)降準(zhǔn)數(shù)據(jù)存一年,而且我還不需要DBA 參與。
??3、采集配置簡(jiǎn)單,簡(jiǎn)單配置以后就可以收取豐富的指標(biāo),不用自己一個(gè)指標(biāo)一個(gè)指標(biāo)的添加。
??4、原生支持收集很多服務(wù)暴露的監(jiān)控?cái)?shù)據(jù),Zabbix 很難收集應(yīng)用自身提供的監(jiān)控?cái)?shù)據(jù)。
Prometheus 的缺點(diǎn):文章來源:http://www.zghlxwxcb.cn/news/detail-534076.html
??當(dāng)前告警規(guī)則無法快捷的支持每個(gè)label 一個(gè)閾值,要么統(tǒng)一閾值,要么一個(gè)label 一條規(guī)則,量大了以后真的不好管理。文章來源地址http://www.zghlxwxcb.cn/news/detail-534076.html
到了這里,關(guān)于【Distributed】分布式監(jiān)控系統(tǒng)zabbix應(yīng)用(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!