zabbix监控系统下——zabbix实现数据库监控、对JMX的支持、server和agent的关系、zabbix监控报警平台
目錄
五、zabbix實現數據庫監控
1、在agent端設置
2、在瀏覽器前端設置?
六、zabbix對JMX(Java)應用的支持
七、server和agent的關系
1、agent端的信息采集變被動為主動
2、zabbix的server端的分布式架構——zabbix代理
第一步:參考官網文檔
?第二步:引入代理機制的概念
?第三步:實驗環境
第四步:安裝軟件包
第五步:安裝并配置proxy
第六步:在agent端配置(server8上)
?八、zabbix的監控報警
1、實驗環境:先注冊一個可以實現微信報警功能的帳號
2、zabbix報警平臺的使用
3、配置zabbix_server
4、在瀏覽器中查看
5、在云報警平臺上的配置
6、模擬問題
?一般提供的模板都中都有自帶的插件,沒有的話可以導入第三方插件,再沒有就自己編譯插件。
五、zabbix實現數據庫監控
1、在agent端設置
第一步:實驗環境
在zabbix服務端(server6)中安裝監控mysql的zabbix插件。其實測試時應該是在agent端安裝,但是server6上已經有了mysql了,所以直接在本機上安裝監控插件。換言之,server6既是mysql客戶端,也是zabbix的agent端;同時也是zabbix的server端。自己監控自己!!!
第二步:復制模板到</etc/zabbix/zabbix_agentd.d/>目錄下,因為此目錄中的配置文件模板可以用來直接作為監控項。復制完成后重啟zabbix-agent服務使其生效。
systemctl restart zabbix-agent.service #重啟zabbix-agent服務以下圖為例:
?第三步:執行腳本和php文件
?具體操作步驟為:(1)zabbix的監控配置文件中的監控命令</etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf>,調用的是(2)</var/lib/zabbix/percona/scripts>目錄中的shell腳本,(3)腳本中調用的是同一目錄下的<ss_get_mysql_stats.php>文件。php文件中獲取到數據庫的基本信息后,返回給shell腳本,zabbix監控配置目錄中調用腳本得到要監控的參數。
修改 php文件中訪問數據庫的帳號和密碼。
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php 30 $mysql_user = 'root';31 $mysql_pass = 'Westos+007';第四步:執行腳本測試
直接執行的話,報錯,因為找不到執行路徑下的php環境變量。
?通過以下方式解決:
rpm -qa| grep php rpm -ql rh-php72-php-cli-7.2.24-1.el7.x86_64 ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/php #在所需路徑中創建軟鏈接 which php腳本執行結果如下圖,執行成功后,會將獲取到的參數存放在</tmp/localhost-mysql_cacti_stats.txt>文件中。
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg #執行腳本注意:以root用戶身份執行腳本后,生成的“.log”文件的所有人也是root。在瀏覽器端應該使用zabbix用戶身份運行,之前產生的文件將導致zabbix身份運行的結果無法操作。因此在正式執行前應先將該文件刪除,以防對后續操作產生影響。?
2、在瀏覽器前端設置?
操作步驟如下:
這里導入一個模板文件<zbx_percona_mysql_template.xml>
?
添加完成后查看server6主機,監控mysql的模板已添加。
模板添加完成后,令其在圖形中顯示:
這里所有關于“MySQL”的參數,都是剛才的模板創建的。
選擇幾個參數,查看圖形統計效果:
?
?所有采集信息的模板文件都是在</etc/zabbix/zabbix_agentd.d/>中的“***.conf”文件。
六、zabbix對JMX(Java)應用的支持
實驗環境:在server8中測試zabbix對java插件的支持。
1、下載安裝tomcat
第一步:下載并移動到指定目錄下
tar zxf apache-tomcat-8.5.24.tar.gz #解壓tomcat yum install -y java-1.8.0-openjdk #安裝支持java的軟件openjdk移動tomcat目錄到</usr/local/tomcat>下,方便編譯。
更改配置文件參考tomcat官網:
Apache Tomcat? - Apache Tomcat 8 Software Downloadshttps://tomcat.apache.org/download-80.cgi
第二步:更改配置文件:
vim /usr/local/tomcat/bin/catalina.sh #編輯文件內容如下109 CATALINA_OPTS=-'Dcom.sun.management.jmxremote.port=8888110 -Dcom.sun.management.jmxremote.ssl=false111 -Dcom.sun.management.jmxremote.authenticate=false'第三步:啟動tomcat
啟動完以后,查看端口出現上一步設置的8888。這個端口是上一步手動設置的監控端口,其他端口為tomcat調用的端口。
第四步:在zabbix的server服務器(server6)中安裝zabbix-java插件
這個插件是zabbix監控java應用的組件,所有的java應用必須通過這個java網關
yum install -y zabbix-java-gateway #安裝插件來監控java網關 systemctl enable --now zabbix-java-gateway.service #設置zabbix-java開機自啟動 netstat -antlp |grep 10052 #檢查端口10052,證明啟動成功第五步:編輯zabbix-java的server端
編輯zabbix-server端的配置文件,告訴zabbix怎么去調用java-gateway
vim /etc/zabbix/zabbix_server.conf #編輯zabbix-server的配置文件297 JavaGateway=172.25.254.6305 JavaGatewayPort=10052313 StartJavaPollers=5 systemctl restart zabbix-server.service #重啟zabbix-server服務其中配置文件更改內容如下:分別表示java網關為<172.25.254.6>;監聽端口為10052端口;線程數為5個(和上圖所示一致)。
第六步:在瀏覽器前端設置
?以下兩個模板都可以,一般來說選擇“通用模板”,監控的參數更多
添加完成后,刷新。“server8”的“JMX”已經亮了,證明JMX可以正常使用。
具體的執行流程是:zabbix-server——>java-gateway:10052——>jmx:8888——>tomcat?
第六步:通過圖形可視化
通過瀏覽器訪問,增加8080端口的訪問量?
?在統計界面可以監視到,已經有訪問量進來。
?七、server和agent的關系
對agent來說,它的主動模式和被動模式都是支持的。agent的模式由server端決定,主動被動主要取決于server端給agent端加的什么模板。
1、agent端的信息采集變被動為主動
下圖所示,agent端通過這些端口被server端監聽。那么是否可以讓agent端主動將數據傳到server端?隨著agent端的增多,每個agent端又有許多監控項,那么如果讓server端主動去監控agent端的話,agent端的壓力會很大;所以需要讓agent主動將自己的數據發送給server端。
以agent端(server7)為例:
取消server上的模板:
?
選擇完成后,看到主機頁面已經切換到“agent active”模板,表示agent主動將數據回傳給server端。
隨便選一個監控項,這里顯示此監控項已經成為了“主動式”的。
?查看圖形統計,也可以統計出來。
2、zabbix的server端的分布式架構——zabbix代理
因為即使agent端主動向server端發送采集的信息,在agent節點過多時,對server端的壓力還是會很大。因此就需要對serber端進行水平擴容,以提高其處理數據峰值的能力。
第一步:參考官網文檔
1 代理https://www.zabbix.com/documentation/5.0/zh/manual/distributed_monitoring/proxies
?第二步:引入代理機制的概念
Zabbix proxy 使用場景:
監控遠程區域設備;
監控本地網絡不穩定區域;
監控上千設備時,減輕 zabbix server 的負荷;
簡化分布式監控的維護。
proxy的功能只有數據采集,無法用來做事件處理。
?第三步:實驗環境
從zabbix監控界面將server7移除,將server7設置為zabbix_proxy。
第四步:安裝軟件包
yum install -y zabbix-proxy #安裝軟件包systemctl disable --now zabbix-agent.service #關閉zabbix-agent并禁止自啟動第五步:安裝并配置proxy
1 Red Hat Enterprise Linux/CentOShttps://www.zabbix.com/documentation/5.0/zh/manual/installation/install_from_packages/rhel_centos在server6中為zabbix-proxy配置數據庫:
由于zabbix是分布式的,所以數據庫可以在其他主機配置。這里選用server6中的數據庫。
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;#創建數據庫 mysql> grant all on zabbix_proxy.* to zabbix@'%' identified by 'Westos+007';#授權用戶訪問 mysql> flush privileges; #刷新授權表更改server7中的zabbix_proxy配置:
vim /etc/zabbix/zabbix_proxy.conf 30 Server=172.25.254.649 Hostname=server7162 DBHost=172.25.254.6173 DBName=zabbix_proxy196 DBPassword=Westos+007?向server6數據庫中導入proxy的數據(proxy主機只需要安裝mysql的客戶端即可):
proxy主機上的文件為</usr/share/doc/zabbix-proxy-mysql-5.0.19/schema.sql.gz>,將其導入到server6中的數據庫中。
cd /usr/share/doc/zabbix-proxy-mysql-5.0.19 #進入目錄 zcat schema.sql.gz | mysql -h 172.25.254.6 -uzabbix -pWestos+007 zabbix_proxy#導入該目錄下的數據庫到172.25.254.6在server6的數據庫中查看,proxy的數據已導入到數據庫中。
?在server7中啟動zabbix-proxy:
systemctl start zabbix-proxy.service #啟動zabbix-proxy啟動完成后查看進程,可以看到進程都已啟用。注意:如果這一步啟動失敗,很可能是數據庫問題
查看zabbix_proxy的日志,發現proxy服務找不到“server7”對應的主機。
cat /var/log/zabbix/zabbix_proxy.log #查看zabbix_proxy的日志為了解決上述問題,因此需要在瀏覽器中做以下更改:
zabbix_server -R config_cache_reload #刷新zabbix_server端的配置緩存?再次查看日志,可以看到proxy端的服務已經成功啟動
?查看server6(zabbix_server)端的日志,顯示代理已成功發送數據?
第六步:在agent端配置(server8上)
更改server8中的配置文件,令其指向的master成為proxy服務器 。?更改完成后重啟zabbix-agent服務。
vim /etc/zabbix/zabbix_agentd.conf #更改agent端的配置文件117 Server=172.25.254.7 #改成proxy的地址158 ServerActive=172.25.254.7 systemctl restart zabbix-agent.service #重啟zabbix-agent服務在proxy端中查看端口:
測試:在瀏覽器中查看
可以看到agent端可以正常使用,但是其中的JMX服務失效了。?這是因為agent端的java應用需要通過“java-geteway”訪問,原本的zabbix_server中安裝了JMX服務,可以訪問agent的java;但是proxy端并沒有設置”java-gateway“的端口,因此proxy要采集angent端的java信息的話,必須設置“java-gateway”端口。
修正方法:在proxy中添加“java-gateway”
vim /etc/zabbix/zabbix_proxy.conf #編輯zabbix-proxy的配置文件338 JavaGateway=172.25.254.6346 JavaGatewayPort=10052354 StartJavaPollers=5grep -v ^# /etc/zabbix/zabbix_proxy.conf | uniqsystemctl restart zabbix-proxy.service #重啟zabbix-proxy服務?
?配置更改完成后,重啟“zabbix-proxy.service”服務,在瀏覽器中已看到JMX已經連接上。
?八、zabbix的監控報警
1、實驗環境:先注冊一個可以實現微信報警功能的帳號
睿象云-AIOps智能運維平臺 | 用人工智能點亮傳統IT運維睿象云AIOps智能運維平臺方案提供商,為傳統IT運維插上人工智能的翅膀,云監控平臺、云壓測平臺、業務可用性監測平臺、云告警平臺,為IT運維人員提供一站式AIOps 可視化智能運維解決方案,用人工智能點亮傳統運維。https://www.aiops.com/
2、zabbix報警平臺的使用
?
?
3、配置zabbix_server
wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-4.0.0.tar.gz#獲取Cloud Alert Agent包: tar zxf ca_zabbix_release-4.0.0.tar.gz -C /usr/lib/zabbix/alertscripts#解壓到zabbix腳本目錄進入到剛解壓的目錄下,執行腳本。并輸入上一步中獲得到的“Appkey",接著輸入要報警的zabbix地址,以及登錄zabbix時設置的用戶名和密碼。
cd /usr/lib/zabbix/alertscripts/cloudalert/bin/ #進入zabbix腳本目錄 ./install.sh 933177f39ca247c59fe2f76d8db18848 #執行啟動腳本,并注冊認證用戶請輸入Zabbix管理地址:http://172.25.254.6/zabbixCheck connection success!請輸入Zabbix管理員賬號:Admin請輸入Zabbix管理員密碼: zabbix?更改zabbix腳本的權限:
chown zabbix.zabbix cloudalert/ -R4、在瀏覽器中查看
列表中出現了許多類型的報警信息。為了方便測試,我們僅測試一項報警信息。
其他項目中也出現了“云平臺”的信息。
這里是具體的執行動作:???
5、在云報警平臺上的配置
新增通知策略:?
?
6、模擬問題
關掉server8上的agent。
systemctl stop zabbix-agent.service?在瀏覽器中查看,server8已經“失聯”了。
?查看“監測欄“的“問題”選項,故障信息已經出現,并且報警信息也發送到報警平臺上。
查看云平臺的服務日志:
cat /usr/lib/zabbix/alertscripts/cloudalert/logs/cloudalert.log#顯示云平臺報警信息日志在平臺和微信上都能看到相應的通知:?
?
?server8中重新啟動zabbix-agent服務,監測窗口顯示”已解決“?,云平臺上也顯示問題已解決。
總結
以上是生活随笔為你收集整理的zabbix监控系统下——zabbix实现数据库监控、对JMX的支持、server和agent的关系、zabbix监控报警平台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis 实现Mysql批量插入数
- 下一篇: Oracle删除创建用户并授权