Zabbix實戰--監控Nginx
Zabbix支援的主要監控方式:
(1).Agent監控方式
在Agent監控方式下,zabbix-agent會主動收集本機的監控資訊並通過TCP協議與zabbix-server傳遞資訊。
Agent監控方式分為主動和被動模式。
在被動模式下,zabbix-agent監聽10050埠,等待zabbix-server的監控資訊收集資訊請求;
在主動模式下,zabbix-agent收集監控資訊並通過10050埠主動將資料傳給zabbix-server所在伺服器的10051埠。
優點:
(1)是zabbix最常用的監控方式,監測指標深入細緻有針對性。
(2)內建監控功能強大,內建監控專案豐富。
(3)TCP方式實現通訊,可靠性也有保證。
缺點:
(1)需要在被監控機器上安裝zabbix-agent客戶端,部署相對麻煩,最初需要逐個機器安裝代理軟體
(2)zabbix-agent客戶端執行在被監控機上,會收集本機資訊
(2).Trapper監控方式
Trapper監控方式使用zabbix-sender程式主動向zabbix-server傳送資料。key的名稱和傳送的資料內容都可以靈活定義。
傳送的資訊採用JSON格式,遵循zabbix-sender協議。可以自定義指令碼利用zabbix-sender協議來zabbix-server傳送資訊。
優點:
(1)不需要在被監控機器上安裝zabbix-agent
(2)不收集被監控機器的資訊
(3)可以自定義傳送的資訊內容
(4)可以使用自定義指令碼傳送資訊
缺點:
(1)需要自定義傳送的資訊內容
(2)無內建監控專案
(3).SNMP監控方式
SNMP全稱Simple Network Management Protocol,即網路管理協議,包括程式
管理和被管理裝置兩部分。
作為一種國際通用的網路管理協議被廣泛的應用於各種交換機,路由器等網路裝置的管理上,而現在也越來越多被用於對伺服器的監控上。
優點:
(1)伺服器一旦部署SNMPAgent,任何能實現SNMP協議的軟體都可以對其進行監測。
(2)通過這種手段進行監測不需知道被監測伺服器的使用者名稱和密碼,比較安全。
缺點:
(1)很多伺服器並非預設安裝SNMPAgent,如果通過這種方式監測則需要對所有伺服器安裝部署。
(2)能監測的引數指標比較固定不夠深入,無法滿足使用者的特殊需求。
(3)由於SNMP協議是通過UDP方式實現的。在網路狀況不佳的情況下其可靠效能以保證。
(4)JMX監控方式
JMX,全稱Java Management Extensions,即Java管理擴充,是Java平臺為應用程式,裝置,系統等植入管理功能的框架。
在zabbix中,JMX資料的獲取由zabbix-java-gateway代理程式來負責資料的採集。
優點:
可以詳細的監控各類Java程式的執行狀態
缺點:
被監控機上需要安裝zabbix-java-gateway
(5)IPMI監控方式
IPMI,全稱Interlligent Platform Management Interface,即智慧平臺管理介面,原本是Intel架構中企業系統的周邊裝置所採用的一種工業標準,以後成為業界通用的標準。
使用者可以利用IPMI監控伺服器的物理特性,如溫度,電壓,電扇工作狀態,電源供應以及機箱等指標。
實驗前提:
已經完成了zabbix的安裝部署,以及新增server2主機(zabbix-agent)
1.自定義監控 Nginx
zabbix自帶apache監控,但沒有nginx監控,所以需要自定義。
實驗環境:
server1:172.25.66.1 zabbix-server
server2:172.25.66.2 zabbix-agent nginx
1.配置nginx
(1).下載並解壓nginx
#1.在官網上下載nginx
[root@server2 ~]# ls
nginx-1.15.8.tar.gz zabbix-agent-4.0.5-1.el7.x86_64.rpm
#2.解壓
[root@server2 ~]# tar zxf nginx-1.15.8.tar.gz
[root@server2 ~]# ls
nginx-1.15.8 nginx-1.15.8.tar.gz zabbix-agent-4.0.5-1.el7.x86_64.rpm
(2).關閉debug日誌
[root@server2 ~]# cd nginx-1.15.8
#關閉debug日誌
[root@server2 nginx-1.15.8]# vim auto/cc/gcc
(3).原始碼編譯
#1.安裝依賴包
[root@server2 nginx-1.15.8]# yum install -y gcc make pcre-devel zlib-devel
#2.configure配置
[root@server2 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
#3.編譯與安裝
[root@server2 nginx-1.15.8]# make && make install
(4).更改配置檔案
[root@server2 nginx-1.15.8]# cd /usr/local/nginx/conf/
#1.更改配置檔案
[root@server2 conf]# vim nginx.conf
####################
location /status {
stub_status on; #載入模組
access_log off;
allow 127.0.0.1; #訪問控制;僅允許本機可以訪問
deny all;
}
#2.檢測語法
[root@server2 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#3.開啟nginx
[root@server2 conf]# /usr/local/nginx/sbin/nginx
2.採集資料並新增nginx監控項
(1)採集Nginx發起的活躍連線數
1.利用shell命令獲取活躍連線數
#多訪問幾次
[root@server2 conf]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests
10 10 10
Reading: 0 Writing: 1 Waiting: 0
[root@server2 conf]# curl http://127.0.0.1/status | grep Active
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 100 100 100 0 0 229k 0 --:--:-- --:--:-- --:--:-- 97k
Active connections: 1
[root@server2 conf]# curl -s http://127.0.0.1/status | grep Active
Active connections: 1
[root@server2 conf]# curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
1
2.指定key-value
[root@server2 conf]# cd /etc/zabbix/zabbix_agentd.d/
[root@server2 zabbix_agentd.d]# ls
userparameter_mysql.conf
#1.拷貝模板檔案
[root@server2 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
#2.更改檔案
[root@server2 zabbix_agentd.d]# vim userparameter_nginx.conf
###############################
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
#重啟zabbix-agent
[root@server2 zabbix_agentd.d]# systemctl restart zabbix-agent
3.在zabbix-server端測試
(1).安裝zabbix_get工具
安裝包:
zabbix-get-4.0.5-1.el7.x86_64.rpm
[root@server1 ~]# yum install -y zabbix-get-4.0.5-1.el7.x86_64.rpm
(2).測試agent
#若可以獲取到資料即時為配置成功
[root@server1 ~]# zabbix_get -s 172.25.66.2 -p 10050 -k "nginx.active"
1
4.網頁配置
(1).在server2主機中,建立nginx_active監控項
(2).資料繪圖
(3).預覽圖形
圖形中有資料,即說明監控nginx並採集資料成功
發現問題:無法顯示中文(中文亂碼)
解決亂碼問題:
#檢視graphfont.ttf軟連線,發現它連結到了本機系統
[root@server1 fonts]# pwd
/usr/share/zabbix/fonts
[root@server1 fonts]# ls
graphfont.ttf
[root@server1 fonts]# ll
total 0
lrwxrwxrwx 1 root root 33 Mar 9 10:23 graphfont.ttf -> /etc/alternatives/zabbix-web-font
[root@server1 fonts]# ll /etc/alternatives/zabbix-web-font
lrwxrwxrwx 1 root root 38 Mar 9 10:23 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
[root@server1 fonts]# ll /usr/share/fonts/dejavu/DejaVuSans.ttf
-rw-r--r-- 1 root root 720012 Feb 27 2011 /usr/share/fonts/dejavu/DejaVuSans.ttf
#1.在windos系統中拷貝某種字型,並將其放到/usr/share/zabbix/fonts目錄下
[root@foundation66 Desktop]# scp simkai.ttf root@172.25.66.1:/usr/share/zabbix/fonts
[root@server1 fonts]# ls
graphfont.ttf simkai.ttf
[root@server1 fonts]# cd ..
[root@server1 zabbix]# cd include/
[root@server1 include]# pwd
/usr/share/zabbix/include
#2.啟用該字型
[root@server1 include]# vim defines.inc.php
#######################
:%s/graphfont/simkai/g
(2)採集Nginx總共處理的請求數
1.利用shell命令獲取總共處理的請求數
[root@server2 ~]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests
40 40 40 #Nginx總共處理了40個連線,成功建立40次控制程式碼(證明中間沒有失敗的),總共處理了40個請求
Reading: 0 Writing: 1 Waiting: 0
[root@server2 ~]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
46
2.指定key-valus
[root@server2 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@server2 zabbix_agentd.d]# vim userparameter_nginx.conf
###############################
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
#重啟zabbix-agent
[root@server2 zabbix_agentd.d]# systemctl restart zabbix-agent
3.在zabbix-server端測試
[root@server1 include]# zabbix_get -s 172.25.66.2 -p 10050 -k "nginx.accept"
103
4.配置網頁
(1).在server2主機中,建立nginx_accept監控項
(2)資料繪圖
注意:此時無需重新建立圖形,直接將其新增到剛建立的nginx_status圖形中即可
(3)預覽圖形
圖形中有資料,即說明監控nginx並採集資料成功
相關文章
- Zabbix 4.0企業級分散式監控實戰分散式
- zabbix監控
- 專案實戰:zabbix監控MySQL狀態、服務資訊MySql
- Zabbix監控ActiveMQMQ
- MySQL監控--zabbixMySql
- Zabbix監控之遷移Zabbix
- Zabbix監控系統深度實踐
- 【監控】Zabbix安裝
- zabbix監控平臺
- zabbix新增php監控PHP
- zabbix的主動模式監控和zabbix-proxy分散式監控模式分散式
- 【Zabbix】如何使用Zabbix進行IPMI監控?
- Docker 監控實戰Docker
- Zabbix監控安裝部署
- Zabbix監控使用進階
- PostgreSQL的監控三(zabbix)SQL
- zabbix監控windows DHCP serverWindowsServer
- nginx監控Nginx
- Zabbix透過Orabbix監控OracleOracle
- Zabbix監控平臺的搭建
- zabbix系統監控部署(上)
- zabbix使用perconaplugin監控mysqlPluginMySql
- Zabbix監控各類軟體
- zabbix_sender自定義監控
- zabbix監控單例項redis單例Redis
- zabbix監控oracle資料庫Oracle資料庫
- Zabbix新增主機監控-zabbix+grafana從零設計自己的監控平臺Grafana
- RunLoop實戰:實時卡頓監控OOP
- Prometheus監控實戰應用Prometheus
- Zabbix企業分散式監控工具分散式
- 五、自定義Zabbix監控專案
- Zabbix Agent active主動模式監控模式
- 使用Zabbix + Python對Mysql監控PythonMySql
- mysql監控:zabbix上自定義keyMySql
- zabbix監控客戶端安裝客戶端
- Zabbix監控神通資料庫教程資料庫
- zabbix清除歷史監控資料
- 分散式監控系統Zabbix-新增windows監控主機分散式Windows