目錄
- 一、zabbix監控nginx
- 二、zabbix監控mysql
- 三、zabbix監控tomcat+jave
- 四、Zabbix-agent主動模式 (全克隆)
- 五、Zabbix + proxy分布式
一、zabbix監控nginx
在server2上部署nginx

配置

編譯、安裝

創建軟鏈接方便使用

修改nginx組態檔,設定只允許本機訪問

語法檢測

啟動服務

本機訪問測驗;
server accepts handled requests — 總共處理了1個連接 , 成功創建1次握手, 總共處理了1個請求;
reading — 讀取客戶端的連接數;
writing — 回應資料到客戶端的數量
waiting — 開啟 keep-alive 的情況下,nginx 已經處理完正在等候下一次請求指令的駐留連接.

訪問本機時,可以看到nginx的默認發布頁面

其他主機訪問時被拒絕

此時就可以查看圖形的各種監控項了,但是發現有亂碼,這是由于服務器zabbix字體的原因,

解決字體亂碼方法:將真機的字體檔案傳給server1(zabbix服務端)

將字體檔案復制到相應目錄下

把之前的檔案洗掉,將正確的中文字體軟連接為原來的檔案,好處是不需要動組態檔

此時再次查看server2圖形監控,發現字體正常

通過shell命令,截取我們需要的資訊;
過濾得到活躍連接數

接下來,撰寫一個nginx腳本,通過agent獲取資訊;
重命名檔案

把剛才在shell測驗的抓取指令寫進去,腳本內容如下;
完成之后,重啟agent

server1安裝zabbix-get,zabbix_get命令是在server端用來檢查agent端的一個命令,在添加完主機或者觸發器后,不能正常獲得資料,可以用zabbix_get來檢查能否采集到資料,

-s --host: 指定客戶端主機名或者IP;
-p --port:客戶端埠,默認10050;
-k --key:你想獲取的key(鍵值)

接下來需要圖形化添加監控,網頁訪問172.25.1.1/zabbix,為server2創建監控項


之后選擇創建圖形:


創建完成,點擊更新,查看圖形結果

當出現數值時表明圖形添加成功

添加更多nginx監控項;
通過shell命令截取所需處理連接數 , 成功創建握手次數, 處理的請求次數

同樣的添加到之前的組態檔里面,重啟agent端服務讀取腳本

我們在server1驗證,獲取agent端的相關鍵值

同樣的,分別添加三個監控項nginx_accept,nginx_handle,nginx_request



然后選擇圖形nginx_status,在監控項處點擊添加

完成之后,預覽一下圖形

二、zabbix監控mysql
因為之前在server1搭建了mysql資料庫,為了節省資源,我們直接使用server1;
mkdir /var/lib/zabbix zabbix :創建目錄
cd /var/lib/zabbixzabbix :放zabbix腳本
vim .my.cnf:修改檔案引導
zabbix_get -s 127.0.0.1 -p 10050 -k “mysql.ping” :可以正常看到值

添加DB mysql模板


查看圖形資訊

但是由于自帶的mysq模板監控項(只有102個)太少了,所以我們需要手動添加模板;
刪掉剛才添加的mysql模板

將真機的percona模板軟體包傳給server1

server1安裝percona-mysql模塊rpm包

將模板檔案復制到zabbix服務相應位置

編輯如下.php檔案,修改真實的用戶和密碼如下:


安裝php-mysql

手動測驗如下,手動測驗之后會生成一個txt檔案,這個檔案默認權限是root,而訪問時是用zabbix用戶訪問的,所以測驗完成后洗掉.txt,root用戶下測驗的檔案其余用戶無法寫入


現在匯入外部模板

把zbx_percona_mysql_template.xml(真機上提前下載好)匯入到模板中,匯入時聚合圖形

接著選擇zabbix server添加已經匯入的模板

之后點擊觸發器,需要禁用一個觸發器

停用stop slave觸發器

完成之后,進到/tmp目錄,發現已經自動生成了前面刪掉的檔案,而且用檔案所屬權是zabbix


此時監控項就增加到了279項

圖形監控如下

三、zabbix監控tomcat+jave
監控原理:

1、當Zabbix-Server需要知道java應用程式的某項性能的時候,會啟動自身的一個Zabbix-JavaPollers行程去連接Zabbix-JavaGateway請求資料,而ZabbixJavagateway收到請求后使用"JMXmanagementAPI"去查詢特定的應用程式,而前提是應用程式這端在開啟時需要"-Dcom.sun.management.jmxremote"引數來開啟JMX遠程查詢,Java程式會啟動自身的一個簡單的小程式埠向Zabbix-JavaGateway提供請求資料,
2、配置Zabbix監控Java應用程式的關鍵點在于:配置Zabbix-JavaGateway、讓Zabbix-Server能夠連接Zabbix-JavaGateway、Tomcat開啟JVM遠程監控功能等 ;
3、Java-gateway不安裝在zabbix-server上也可以,僅僅是作為一個采集器,tomcat監控主要是監控JVM,
我們在server1上安裝java模塊插件

默認java應用監聽埠10052

編輯 zabbix_server.conf檔案,設定java監聽網關指向zabbix-server主機并設定處理的行程數



將真機的tomcat壓縮包傳給server3,Tomcat是Apache 服務器的擴展,但運行時它是獨立運行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的行程單獨運行的,

server3解壓縮,創建軟鏈接

編輯tomcat腳本,設定JMX監聽埠為8888,vim /usr/local/tomcat/bin/catalina.sh


然后安裝java

開啟腳本

查看埠

網頁測驗tomcat是否啟動成功,訪問172.25.9.3:8080埠(Apache Tomcat web server安裝后,默認的服務埠就是8080)

點擊server3,選擇模板,將java TMX加入模板

將JMX埠寫入

此時發現server3的JMX綠色亮了

查看監控圖形,出現資料

四、Zabbix-agent主動模式 (全克隆)
在server2上操作,StartAgent:處理被動檢查的zabbix agentd的預分叉實體數,如果設定為0,則禁用被動檢查,代理將不會偵聽任何TCP埠,


點擊OS 模板,選擇全克隆

創建Active模板


左下角全選,點擊下面的批量更新


選擇zabbix客戶端主動式

server2點擊添加模板,將Linux-Active模板進行鏈接

更新成功,此時server2將直接向zabbix server(server1)傳遞主機資訊

五、Zabbix + proxy分布式


原理:
server1 ( zabbix-server、mysql-server ) <---- server4( proxy ) <------ server3( agent )
如果所有agent直接向server傳遞主機資訊,一方面會增大server的負載,另一方面由于所有agent都需要穿過防火墻,因此降低了安全性,所以設定代理server收集所有受監控主機資訊,再傳給server控制端,降低負載同時保證安全性,
實驗環境:
server1作為zabbix server控制端
server4作為代理端,負責接受其他agent發來的資訊,再傳遞給server1控制端
server3作為agent,向代理端傳遞資訊

server4安裝proxy并使用Mysql資料庫

編輯 /etc/zabbix/zabbix_proxy.conf 組態檔;
DBName=zabbix_proxy:資料庫中的庫名稱
DBHost=172.25.36.1:資料庫位置
DBUser=zabbix :訪問資料庫的身份
DBPassword=westos:訪問資料庫的密碼


將生成的資料庫資訊傳給資料庫位置server1中

查看服務行程是否開啟

將server4的主機名改為proxy

在server1,2,3,4的本地決議都加入server4決議proxy

server進入資料庫

創建mysql資料庫zabbix_proxy,并將庫的所有權利給zabbix用戶,授權后重繪

將schema.sql.gz 檔案解壓后匯入 zabbix_proxy 庫中

點擊創建agent代理程式

然后輸入代理名稱,代理地址

在server4的組態檔里面繼續修改;
Server=172.25.36.1 :分布式服務位于zabbix-server端
ServerPort=10051 :默認埠為10051
Hostname=proxy :主機名為proxy


查看server4日志顯示:成功接受server1的資訊

server1日志顯示:成功發送資訊給server4

然后再網頁上點擊主機server3,選擇proxy代理


然后修改server3的組態檔/etc/zabbix/zabbix_agentd.conf;
設定其server為server4(proxy)



查看圖形,此時server3通過server4的proxy成功連接到zabbix-server端
此時發現JMX不能正常作業

在server4修改組態檔;
JavaGateway=172.25.36.1 :java服務監聽埠指向zabbix-server端
StartJavaPollers=5 :Java輪詢器為5,實際設定根據需求


此時所有服務將恢復啟用

如果設定完server3中的java匯入proxy后,查看server1的日志顯示不能找到,需要重繪zabbix-server 資料修改快取:zabbix_server -R config_cache_reload
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290538.html
標籤:其他
