文章目錄
- Zabbix介紹
- Zabbix架構
- Zabbix server
- Zabbix agent
- Zabbix proxy
- Zabbix Server的安裝
- Zabbix Agent的安裝
- 監控主機流程
- zabbix_get
- 自定義模板和監控項
- 實戰用戶登錄數監控
- 1.指定監控項命令
- 2.重啟Agent服務
- 3.在Server上創建監控項
- 4.測試監控項
- 5.查看監控項圖形
- 觸發器
- 定義觸發器
- 故障自愈
- 實現故障自愈的步驟
- 1.Agent開啟遠程命令功能
- 2.授權zabbix用戶管理權限
- 3.創建觸發器動作
- Zabbix主動與被動模式
- 被動模式
- 主動模式
- 主動模式實現步驟
- 1.Agent端修改zabbix_agent2.conf配置
- 2.Server端修改主動式監控項
- 監控Java程序
- 開啟JMX監控
- 部署Java gateway
- zabbix_server.conf指定Java gateway
- 在zabbix server中指定java服務的ip和端口
- Zabbix分布式實現Proxy
- Zabbix Server 和 Zabbix Proxy區別
- 在Zabbix Server上添加代理Proxies
- 配置主動模式的proxy
- 1.修改zabbix_proxy.conf
- 2.修改Agent為主動模式的Zabbix Proxy
- 配置被動模式的proxy
- 1.修改zabbix_proxy.conf
- 2.修改Agent為被動模式的Zabbix Proxy
- Zabbix自動注冊
- 1.修改Zabbix agent配置
- 2.在Zabbix Server上配置動作
- Zabbix優化
- Zabbix高可用
Zabbix介紹
zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。功能強大,成熟可靠,使用者眾多。
官方網站: https://www.zabbix.com/
為什么需要監控
現在攝像頭遍布大街小巷,包括汽車上的行車記錄儀,當發生了什么事故時你可能第一直覺就是“調監控”來了解事故的前因后果。監控面前事實勝于雄辯!
在運維行業也是“無監控,不運維”,監控俗稱“第三只眼”。沒有監控,什么基礎運維,業務運維都是“瞎子”,你不能實時掌握服務器的各種資源和你搭建的服務的各種使用數據指標。沒有數據監控你就可能成為背鍋俠。
監控功能1.在需要的時刻,提前預警即將出現的問題,避免故障發生;2.實時監控系統和業務,當出問題之后,通過發出告警,提醒相關人員,快速找到問題的根源從而及時處理問題;3.可以實現網站,應用或者服務器的故障自愈,保證高可用性;4.以圖形或易于觀察的方式呈現當前以及過往的狀態,便于分析和預測系統發展趨勢。
監控什么
硬件監控:通過遠程控制卡: DeLL的iDRAC,HP的ILO和IBM的IMM等使用IPMI來完成物理設備的監控工作。通常必須要監控包括溫度、硬盤故障等路由器,交換機(端口,光衰,日志),打印機等系統監控:cpu,內存,硬盤使用率,硬盤IO,系統負載,進程數服務監控:nginx, apache, php-fpm, mysql, memcache, redis, tomcat, JVM, TCP連接數等性能監控:網站性能,服務器性能,數據庫性能,存儲性能日志監控:系統會產生系統日志,應用程序會有應用的訪問日志、錯誤日志,服務有運行日志等,可以使用ELK來進行日志監控安全監控:用戶登錄數,passwd文件變化,本地所有文件改動Nginx+Lua編寫一個WAF通過kibana可以圖形化的展示不同的攻擊類型的統計。網絡監控:IP端口,URL,DB,ping包,IDC帶寬網絡流量,網絡流出流出速率,網絡入流量,網絡出流量.網絡使用率,SMTP.POP3
Zabbix架構
zabbix中文使用手冊:https://www.zabbix.com/documentation/6.0/zh/manual
Zabbix server
Zabbix server 是整個 Zabbix 軟件的核心程序。
Zabbix Server負責執行數據的主動輪詢和被動獲取,計算觸發器條件,向用戶發送通知。它是Zabbix Agent 和 Proxy 報告系統可用性和完整性數據的核心組件。Server自身可以通過簡單服務遠程檢查網絡服務(如Web服務器和郵件服務器)。
Zabbix Server是所有配置、統計和操作數據的中央存儲中心,也是Zabbix監控系統的告警中心。在監控的系統中出現任何異常,將發出通知給管理員。
基本的 Zabbix Server 的功能分解成為三個不同的組件。他們是:Zabbix server、Web前端和數據庫。
Zabbix agent
Zabbix agent 部署在被監控目標上,以主動監控本地資源和應用程序(硬盤、內存、處理器統計信息等)。
Zabbix agent 收集本地的操作信息并將數據報告給 Zabbix server 用于進一步處理。一旦出現異常 (例如硬盤空間已滿或者有崩潰的服務進程),Zabbix server 會主動警告管理員指定機器上的異常。
Zabbix agents 的極高效率緣于它可以利用本地系統調用來完成統計數據的采集。
Zabbix proxy
zabbix作為一個分布式監控系統(分布式監控解決方案),支持通過代理(proxy)收集zabbix agent的監控數據,然后由zabbix proxy再把數據發送給zabbix server,也就是zabbix proxy可以代替zabbix server收集監控數據,然后把數據匯報給zabbix server,所以zabbix proxy可以在一定程度上分擔了zabbixserver的數據收集壓力,從而降低了數據的采集時間、也相應的增加了zabbix server的監控能力。
部署Zabbix proxy 是可選的,但可能非常有利于分擔單個 Zabbix server 的負載。 如果由代理采集數據,則 Zabbix server 上會減少 CPU 和磁盤 I/O 的開銷。
Zabbix proxy 是無需本地管理員即可集中監控遠程位置、分支機構和網絡的理想解決方案。
Zabbix proxy 需要使用獨立的數據庫。
Zabbix Server的安裝
ZabbixLTS(長期支持)版本沒有任何額外的或隱藏的消費成本。Zabbix是一個100%開源軟件,每個人都可以下載使用。
Zabbix LTS特點:1.支持期限更長,例如:為潛在的安全問題及bug迭代更新2.令人期待的高質量更新以及全新的功能點3.快速更新,可適用于多變的復雜環境4.在版本升級方面,更容易規劃管理
官方安裝幫助文檔:https://www.zabbix.com/download
安裝腳本
#!/bin/bash
#
#********************************************************************
#Author: wangxiaochun
#Date: 2022-06-22
#FileName: install_zabbix5.0_for_ubuntu20.04.sh
#URL: http://www.wangxiaochun.com
#Description: The test script
#Copyright (C): 2022 All rights reserved
#********************************************************************
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
dpkg -i zabbix-release_5.0-1+focal_all.deb
sed -i.bak 's#http://repo.zabbix.com#https://mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/apt/sources.list.d/zabbix.list
apt update
apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent2
apt -y install mysql-server
cat << EOF | mysql
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by '123456';
grant all privileges on zabbix.* to zabbix@localhost;
EOFzcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbixsed -i.bak '/# DBPassword/a DBPassword=123456' /etc/zabbix/zabbix_server.conf
sed -i.bak '/^server/a\ listen 80;\n server_name zabbix.lei.org;' /etc/zabbix/nginx.confsed -i.bak '/date.timezone/c php_value[date.timezone] = Asia/Shanghai' /etc/zabbix/php-fpm.confsystemctl disable --now apache2systemctl restart zabbix-server zabbix-agent2 nginx php7.4-fpmsystemctl enable zabbix-server
安裝完成后直接使用腳本里的域名打開zabbix
zabbix首頁
登錄時遇到了問題,就是我windows的ip被拒絕訪問我ubuntu192.168.10.148的zabbix的mysql,于是我設置了允許了mysql的用戶和ip
update user set host = '%' where user = 'root';
update user set host = '%' where user = 'zabbix';
#將數據庫里面的“user”表里面“host”的“localhost”改為“%”。“%”是允許所有遠程都允許遠程連接連接,
授權法:將zabbix用戶權限改為:ALL PRIVILEGES,前面的是用戶名,后面的是密碼。
GRANT ALL PRIVILEGES ON . TO ‘zabbix’@‘%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)mysql> FLUSH PRIVILEGES; #刷新權限
Query OK, 0 rows affected (0.00 sec)
Zabbix Agent的安裝
Zabbix Agent需要安裝到被監控的主機上,它負責定期收集各項數據,并發送到zabbix server端,zabbix server將數據存儲到數據庫中,zabbix web 訪問數據庫在前端進行展現和繪圖。
Zabbix Agent安裝腳本
#!/bin/bash
#
#********************************************************************
#Author: wangxiaochun
#Date: 2021-01-06
#FileName: install_zabbix_agent2_5.0.sh
#URL: http://www.wangxiaochun.com
#Description: The test script
#Copyright (C): 2021 All rights reserved
#********************************************************************ZABBIX_SERVER=zabbix.lei.org
ZABBIX_VER=5.0
URL="https://mirror.tuna.tsinghua.edu.cn/zabbix". /etc/os-releasecolor () {RES_COL=60MOVE_TO_COL="echo -en \\033[${RES_COL}G"SETCOLOR_SUCCESS="echo -en \\033[1;32m"SETCOLOR_FAILURE="echo -en \\033[1;31m"SETCOLOR_WARNING="echo -en \\033[1;33m"SETCOLOR_NORMAL="echo -en \E[0m"echo -n "$1" && $MOVE_TO_COLecho -n "["if [ $2 = "success" -o $2 = "0" ] ;then${SETCOLOR_SUCCESS}echo -n $" OK " elif [ $2 = "failure" -o $2 = "1" ] ;then ${SETCOLOR_FAILURE}echo -n $"FAILED"else${SETCOLOR_WARNING}echo -n $"WARNING"fi${SETCOLOR_NORMAL}echo -n "]"echo
}install_zabbix_agent2() {if [ $ID = "centos" -o $ID = "rocky" ];thenVERSION_ID=`echo $VERSION_ID|awk -F. '{print $1}'` rpm -Uvh $URL/zabbix/${ZABBIX_VER}/rhel/${VERSION_ID}/x86_64/zabbix-release-${ZABBIX_VER}-1.el${VERSION_ID}.noarch.rpmif [ $? -eq 0 ];thencolor "YUM倉庫準備完成" 0elsecolor "YUM倉庫配置失敗,退出" 1exitfised -i 's#repo.zabbix.com#mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/yum.repos.d/zabbix.repoyum -y install zabbix-agent2else wget $URL/zabbix/${ZABBIX_VER}/ubuntu/pool/main/z/zabbix-release/zabbix-release_${ZABBIX_VER}-1+bionic_all.debif [ $? -eq 0 ];thencolor "APT倉庫準備完成" 0elsecolor "APT倉庫配置失敗,退出" 1exitfidpkg -i zabbix-release_${ZABBIX_VER}-1+bionic_all.debsed -i 's#repo.zabbix.com#mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/apt/sources.list.d/zabbix.listapt updateapt -y install zabbix-agent2fi
}config_zabbix_agent2 (){ sed -i -e "/^Server=127.0.0.1/c Server=$ZABBIX_SERVER" -e "/^Hostname=Zabbix server/c Hostname=`hostname -I`" /etc/zabbix/zabbix_agent2.conf
}start_zabbix_agent2 () {systemctl enable zabbix-agent2.servicesystemctl restart zabbix-agent2.servicesystemctl is-active zabbix-agent2.serviceif [ $? -eq 0 ];then echo "-------------------------------------------------------------------"color "Zabbix Agent 安裝完成!" 0elsecolor "Zabbix Agent 安裝失敗" 1exitfi
}install_zabbix_agent2
config_zabbix_agent2
start_zabbix_agent2
執行以上腳本可完成安裝
將zabbix agent納入zabbix server的管理中,在server頁面中"創建主機"
初學就先使用agent的監控模板
監控主機流程
1 安裝agent,指定Zabbix Server地址;
2 在Zabbix Server 添加被監控的主機;
3 修改內置的模板,為了實驗環境更快地采集數據,將模板中所有監控項的時間間隔修改為10s;
4 在被監控的主機關聯模板(內置了很多的監控項) Template OS Linux by Zabbix agent --適合LinuxTemplate OS Windows by Zabbix agent --適合windows
5 Web 查看數據和圖形
zabbix_get
利用zabbix_get工具可以測試Zabbix Agent是否正常
zabbix_get需要安裝
zabbix_get -s 192.168.10.152 -k agent.ping
自定義模板和監控項
自定義監控項流程:1.在Agent上創建監控項名稱2.在Agent的配置文件中指定獲取監控項的命令3.在Server上創建自定義的監控項4.在Server上關聯到被監控的Agent主機上創建自定義監控項后可將自定義監控項創建模板1.在Server上創建模板2.將自定義的監控項加入至模板3.將模板關聯至被監控主機
vim /etc/zabbix/zabbix_agent2.conf
實戰用戶登錄數監控
自定義一個獲取xshell用戶登錄數的監控項
1.指定監控項命令
在agent上的/etc/zabbix/zabbix_agent2.d下創建user_login_count.conf文件
UserParameter=user.login.count,who|wc -l
2.重啟Agent服務
agent配置完自定義監控項后需要重啟agent服務,否則server識別不了agent的自定義監控項
3.在Server上創建監控項
4.測試監控項
5.查看監控項圖形
觸發器
觸發器是條件的定義,一個觸發器是根據一個監控項的返回值將之對比預先設置的閾值,當監控項返回了不符合預定義的值范圍后,;就進行觸發下一步操作的警戒線,一般要對創建的監控項設置觸發器以及觸發方式和值的大小
可以在指定主機上創建觸發器,只是針對指定主機有效
也可以在指定模板上創建觸發器,則使用此模板的所有主機都有效,一個模板中可以有多觸發器觸發器中使用的表達式是非常靈活的。你可以使用它們去創建關于監控統計的復雜邏輯測試。
官方幫助手冊:https://www.zabbix.com/documentation/5.0/zh/manual/config/triggers/expression
Zabbix支持下列6種觸發器的嚴重程度:
定義觸發器
觸發器表達式
{<server>:<key>.<function>(<parameter>)}<operator><constant>
觸發器表達式常用函數
故障自愈
當zabbix服務監控到指定的監控項異常時,可以通過指定的操作使故障自動恢復
我有一個監聽80端口的觸發器,當80端口down掉之后,就觸發報警
我停掉了152的nginx服務,此時就觸發了報警機制
我還開啟了報警器,一旦報警就有一段刺耳的鈴聲
實現故障自愈的步驟
以nginx服務為例,當nginx服務停止時,自動重啟服務,實現故障自愈功能
1.Agent開啟遠程命令功能
2.授權zabbix用戶管理權限
3.創建觸發器動作
添加動作的操作
故障已經自愈了
Zabbix主動與被動模式
Zabbix有兩種工作模式:主動和被動模式
無論是模式還是被動模式,都是站在zabbix agent角度來說的工作模式
主動和被動模式1.被動模式: Server向Agent請求獲取監控項的數據,Agent返回數據。此為默認模式,如果有100個監控項,則需要100次交互2.主動模式:Agent請求Server獲取主動的監控項列表,并主動將監控項內需要檢測的數據提交給server/proxy,如有100個監控項,只需要1次交互即可
被動模式
被動模式是指zabbix agent被動的接受zabbix server(或者Zabbix Proxy)周期性發送過來的數據收集指令
被動模式工作形式1.zabbix server發送什么指令那么zabbix agent就收集什么數據,2.zabbix server什么時候發送指令,zabbix agent就什么時候采集,3.zabbix server不發送指令,zabbix agent就一直不響應,所以zabbixagent也不用關心其監控項和數據采集周期間隔時間。被動模式優點1.被動模式的優點就是配置簡單,安裝后即可使用,因此也成為zabbix的默認工作模式,被動模式缺點1.被動模式的最大問題就是會加大zabbix server的負載,在數百甚至數千臺服務器的環境下會導致zabbix server需要輪訓向每個zabbix agent發送數據采集指令,2.如果zabbix server負載過高還會導致不能及時獲取到最新數據3.被動模式因為性能的原因,一臺Zabbix Server一般只能監控500臺以下的主機,更多的主機建議使用主動模式
主動模式
主動模式是由每個zabbix agent打開本機的隨機端口,主動向Zabbix Server (或者Zabbix Proxy)的10051端口發起tcp連接請求。
主動模式工作形式1.主動模式下必須在zabbix agent配置文件中指定zabbix server的IP或者主機名(必須可以被解析為IP地址),2.在連接到zabbix server之前zabbix agent是不知道自己要采集那些數據以及間隔多久采集一次數據的,3.在連接到zabbix server以后獲取到自己的監控項和數據采集間隔周期時間,然后再根據監控項采集數據并返回給zabbix server主動模式的優點主動模式下不再需要zabbix serve向zabbix agent發起連接請求,因此主動模式在一定程度上可減輕zabbix server打開的本地隨機端口和進程數,在一定程度就減輕了zabbix server的壓力。經過優化后可以輕松監控2000臺,甚至5000以上的主機以下場景下生產推薦使用主動模式1.Zabbix Server 出現性能瓶頸,監控隊列出現大量延遲的監控項,告警不及時·2.監控主機超過500臺以上
主動模式實現步驟
1.Agent端修改zabbix_agent2.conf配置
zabbix Agent默認是被動模式,需要修改zabbix_agent2.conf配置才能支持主動模式,配置由一下三項
server=<zabbix server> #被動模式指向zabbix server的IP或FQDN ,默認模式
serverActive=<zabbix server> #主動模式指向zabbix server的IP或FQDN
Hostname=<當前主機IP> #當前主機的IP,此項必須和zabbix server中設置的主機名稱相同
將ServerActive的127.0.0.1改為我的server服務器的地址192.168.10.148
2.Server端修改主動式監控項
2.1添加主機,名稱=Hostname和客戶端相同
2.2關聯模板,包括的監控項是主動模式
監控Java程序
開啟JMX監控
在tomcat的catalina.sh腳本中添加如下配置
CATALINA_OPTS="$CATALINA__OPTS
-Dcom.sun.management.jmxremote #啟用遠程監控JMX
-Djava.rmi.server.hostname=<JAVA主機IP> #是tomcat主機的IP地址,不是zabbix服務器地址
-Dcom.sun.management.jmxremote.port=xXXXX #默認啟動的MX端口號
-Dcom.sun.management.jmxremote.authenticate=false #不使用用戶名密碼
-Dcom.sun.management.jmxremote.ssl=false" #不使用ssl認證
CATALINA_OPTS="$CATALINA__OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.10.153 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
vim /usr/local/tomcat/bin/catalina.sh
配置完后重啟tomcat,可以看到12345端口已正常放開
使用windows的jconsole連接是否成功
cmdline-jmxclient-0.10.3.jar 是一個開源jar包,在zabbix中常用于測試的個工具,可以用來測試 jmx
是否配置正確。在監控方面還可以對Tomcat各種屬性進行監控。下面使用java客戶端cmdline-
jmxclient進行測試
wget https://github.com/qiueer/zabbix/blob/master/Tomcat/cmdline-jmxclient-0.10.3.jar
獲取堆內存狀況
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.153:12345 java.lang:type=Memory NonHeapMemoryUsage
部署Java gateway
apt install zabbix-java-gateway
zabbix_server.conf指定Java gateway
vim zabbix_server.conf
JavaGateway=127.0.0.1
StartJavaPollers=1
在zabbix server中指定java服務的ip和端口
配置主機192.168.10.153:12345
配置主機的監控模板
Template App Generic Java JMX模板監控項
Template App Appache Tomcat JMX模板監控項
配置完后著急看數據的話可以重啟服務,此時我們可以看到153主機JMX的可用性已經綠了。
JMX監控數據
Zabbix分布式實現Proxy
官方幫助手冊: https://www.zabbix.com/documentation/5.0/zh/manual/distributed_monitoring
Zabbix proxy 使用場景:1.監控遠程區域設備,尤其是多機房和多個云環境時監控網絡不穩定區域,避免跨網段監控的告警不及時2.當需要監控設備眾多時,使用它來減輕Zabbix Server的壓力3.簡化分布式監控的維護,無需各位創建Zabbix Server,統一管理策略
Zabbix Server 和 Zabbix Proxy區別
Zabbix proxy功能1.Zabbix proxy數據庫必須和server數據庫分開,否則Zabbix server數據庫會被破壞。2.zabbix proxy是一個數據收集器,它不計算觸發器、不處理事件、不發送報警。
在Zabbix Server上添加代理Proxies
Zabbix Proxy安裝完成后,需要Zabbix Server的上配置Proxies
配置主動模式的proxy
1.修改zabbix_proxy.conf
[root@zabbix-proxy-active ~]#grep '^[^#]'/etc/zabbix/zabbix_proxy.conf
ProxyMode=O #主動模式為0,被動模式為1,默認為0即主動模式
server=10.0.0.100 #指向zabbix server
Hostname=zabbix-proxy-active #此名稱必須和后面web管理頁的agent代理程序名稱相同
DBHost=localhost #MySQL服務器地址
DBName=zabbix_proxy_active #MysQL數據庫名
DBUser=proxy #連接MySQL的用戶
DBPassword=123456 #連接MySQL的用戶密碼
2.修改Agent為主動模式的Zabbix Proxy
[root@centos8 ~]#grep '^[^#]’/apps/zabbix_agent/etc/zabbix_agent2.conf
server=10.0.0.100,10.0.0.101 #指向zabbix server(可選)和zabbix Proxy(必選)
serverActive=10.0.0.101 #指向zabbix Proxy
配置被動模式的proxy
1.修改zabbix_proxy.conf
[root@zabbix-proxy-passive ~]#grep '^[^#]'/apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1 #被動模式為1
server=10.0.0.100 #指向zabbix server的地址
Hostname=zabbix-proxy-passvie-magedu
LogFi1e=/tmp/zabbix_proxy. 1og
DBHost=loca1host #指定MySQL的地址
DBName=zabbix_proxy_passive #指定MySQL數據庫名稱
DBUser=proxy #指定MysQL的用戶
DBPassword=123456 #指定MysQL的用戶密碼
2.修改Agent為被動模式的Zabbix Proxy
[root@centos8 ~]#grep '^[^#]' /etc/zabbix/zabbix_agent2.conf
server=10.0.0.100,10.0.0.102 #必須指向Proxy代理地址,否則proxy無法監控,zabbix server地址則是可選項
#ServerActive=10.0.0.100 #注釋此行
Hostname=10.0.0.104
Timeout=30
Zabbix自動注冊
之前都是手動將主機一臺一臺的添加到Zabbix中進行監控,很是繁瑣,可以利用自動發現和自動注冊功能,自動添加被監控的主機。
利用Zabbix的自動注冊功能,實現添加主機的自動化,可以大幅減少運維的工作量,減少Zabbix Server的資源消耗
此方式和自動發現不同,是由Active agent主動發起請求zabbix server將這些agent加到主機里。
注意:Agent必須使用主動模式才支持自動注冊
自動注冊由于比自動發現效率更好,Zabbix Server資源消耗更少,更適合大規模及云環境IP地址不固定的場景使用
1.修改Zabbix agent配置
[root@centos8 ~]#vim /etc/zabbix /zabbix_agentd.conf
server=zabbix.wang.org
serverActive=zabbix.wang.org
Hostname=web-10.0.0.18 #指定主機名,如果不指定,則服務器將使用agent的系統主機名#HostnameItem=system.hostname #指定主機名
HostMetadata=123456 #HostMetadataItem=system.uname
2.在Zabbix Server上配置動作
配置自動注冊動作
創建動作
添加主機鏈接模板
Zabbix優化
如果主機和監控項眾多,Zabbix Server有可能會出現的性能問題,主要表現如下:1.Web操作很卡,容易出現502錯誤2.監控圖形中圖層斷裂3.監控告警不及時
可以查看隊列了解Zabbix性能狀態管理–隊列
優化方法1.數據庫:寫多讀少,數據采集比較頻繁,可以考慮PostgreSQL;2.使用主動模式,減輕Zabbix Server壓力;3.如果需要監控遠程主機,使用Zabbix Proxy刪除無用監控項,建議使用自定義的模板和監控項;4.適當增加監控項的取值間隔,減少歷史數據保存周期,此工作由housekeeper進程定時清理5.針對zabbix歷史數據和趨勢圖的數據表,進行周期性分表保存6.對Zabbix Server進程調優,發現性能瓶頸的進程,加大它的進程數量7.對Zabbix Server緩存調優,發現哪種緩存的剩余內存少,就加大它的緩存值
Zabbix高可用
在前面的部署架構中,Zabbix Server和MySQL都有只有一臺主機,存在單點問題可以使用Keepalived 實現Zabbix Server的高可用
基礎架構為LAMP或LNMP環境,采用keepalived實現zabbix服務器高可用,保證主服務器或者Httpd宕掉后能切換到從服務器
MySQL數據庫做主主同步,保證兩邊服務器數據的一致性,實現數據庫的高可用。
官方Zabbix6.0給出了高可用解決方案
https://www.zabbix.com/documentation/6.0/zh/manual/concepts/server/ha#implementa