zabbix 支持的主要監控方式
一、zabbix支持的主要監控方式:
zabbix主要Agent,Trapper,SNMP,JMX,IPMI這幾種監控方式,本文章主要通過監控理論和實際操作測試等方式來簡單介紹這幾種方式的監控原理和優缺點等 。下面對幾種監控方式的監控原理進行介紹:
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代理程序來負責數據的采集。
優點:
(1)可以詳細的監控各類Java程序的運行狀態
缺點:
(1)被監控機上需要安裝zabbix-java-gateway
5、IPMI監控方式
IPMI,全稱Interlligent Platform Management Interface,即智能平台管理接口,原本是Intel架構中企業系統的周邊設備所采用的一種工業標准,以后成為業界通用的標准。用戶可以利用IPMI監控服務器的物理特性,如溫度,電壓,電扇工作狀態,電源供應以及機箱***等指標。
根據以上對zabbix各主要監控方式的梳理,結論如下:
(1)根據被監控機器的環境和客戶要求選用適當的監控方式,可同時配合多種監控方式。
(2)有條件在監控機上部署zabbix-agent客戶端時,該方法為第一選擇,因為其功能強大且配置相對簡便。
(3)需要自定義腳本或者監控信息時,可使用Trapper方式,即使用zabbix-sender程序或者自定義腳本遵循zabbix-sender協議,已JSON形式,通過TCP發送自定義信息。
二、Agent監控方式
1、通過Agent方式監控Linux服務器
(1)需要在Linux服務器上安裝zabbix-agent客戶端安裝包,需要先導入軟件安裝源:
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
(2) 使用yum源安裝zabbix-agent
(3)zabbix客戶端配置
編輯zabbix_server配置文件
vim /etc/zabbix/zabbix_agent.conf
修改以下配置信息:
Server=192.168.40.134 #zabbix服務端IP地址
ServerActive=192.168.40.134 #zabbix服務端IP地址
ListenPort=10050 #監控服務端口
啟動zabbix-agent服務
systemctl start zabbix-agent
(4)zabbix服務器端添加被監控主機
選擇“配置”-“主機”,然后選擇“創建主機”:
選擇添加的模板:
添加主機成功:
2、通過Agent方式監控windows服務器
(1)下載Windows的zabbix客戶端
下載地址:https://www.zabbix.com/download_agents
選擇需要下載的windows版本客戶端:
(2)windows上安裝agent
准備好安裝文件zabbix_agents_3.4.6.win.zip,可以從官網上下載,在此需要注意和server端一致。然后解壓,解壓后的文檔結構如下:
(3)進入conf目錄,對配置文件進行配置
找到conf下的配置文件zabbix——agent.win.conf,需要修改的內容為:LogFile、Server、Hostname、ServerActive這幾個參數。具體配置如下:
Server=192.168.40.134
ServerActive=192.168.40.134
Hostname=Windows host
ListenPort=10050
(4)確定被監控主機的系統是32位還是64位
右鍵“此電腦”,查看操作系統版本,如果是32位,用bin\win32下的應用程序,否則用bin\win64下的應用程序。
(5)安裝zabbix-agent客戶端程序
用管理員權限打開CMD,進入到zabbix的應用程序目錄,執行安裝命令:
zabbix_agentd.exe -c D:\zabbix-agent\conf\zabbix_agentd.win.conf -i
安裝成功后,執行運行命令:
zabbix_agentd.exe -c D:\zabbix-agent\conf\zabbix_agentd.win.conf -s
(6)在zabbix server端配置agent
在server端,選擇 配置-主機 界面,然后點擊“創建主機”,在添加主機的界面,輸入被監控主機客戶端的信息。
點擊“添加”,然后過一段時間查看主機狀態
三、zabbix Trapper監控方式
1、zabbix Trapper 工作原理
zabbix獲取數據時有時會出現超時,如果一些數據需要執行較長的時間才能獲取的話,那么zabbix會出現異常,考慮到這種情況,zabbix增加了Trapper功能,客戶端自己提交數據給zabbix。
Trapper是被監控主機主動發送數據給zabbix server,與主動模式的區別是不需要安裝客戶端;Trapper方式發送數據是以主機名處理,不是IP地址,所以主機名要唯一。在配置監控項時候Type of information項要選擇text,否則會報not support錯誤。
Trapper工作模式中,使用zabbix監控類型zabbix Trapper(可以稱為zabbix捕捉器),在zabbix服務器上必須有一個捕捉項目,然后需要配合zabbix_sender把數據推送給zabbix服務器,該程序由zabbix發行版本自帶,源碼包解壓后在bin目錄下,配合crontab定期發送數據給zabbix server。
zabbix_sender是一個命令行工具,可以用來發送zabbix服務器處理性能數據。該工具通常用於長時間運行的用戶 腳本,用於定期發送可用性和性能數據。
2、zabbix_sender命令:
rpm導入zabbix_sender安裝源:
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-sender-4.0.0-1.alpha1.el7.x86_64.rpm
使用rpm安裝,默認在/bin目錄下:
cd /bin
ls
./zabbix_sender
usage:zabbix_sender [-Vhv] {[-zpsl] -ko | [-zpl] -T -i <file> -r} [-c<file>]
參數說明:
-c --config<file> 配置文件絕對路徑
-z --zabbix-server<server> zabbix server的IP地址
-p --port<server port> zabbix server 端口默認10051
-s --host <hostname> 主機名,zabbix客戶端zabbix.agentd.conf配置文件中定義的Hostname(不是服務器的hostname),不是客戶端主機的IP地址
-l -- source-address <IP address> 源IP
-k --key <key> 監控項的key值
-o --value<key value> key值
-i --input-file<input file> 從文件里面讀取hostname、key、value一行為一條數據,使用空格作為分隔符,如果主機名帶空格,那么請使用雙引號包起來
-T --with-timestamps 一行一條數據,空格作為分隔符:<hostname> <key> <timestamp> <value>,配合 --input-file option,timestamp為unix時間戳
-r --real-time 將數據實時提交給服務器
-v --verbose 詳細模式, -vv 更詳細
3、監控項配置
創建監控項(Configuration --> Template --> Items --> Create item 或Configuration --> Host --> Items --> Create item)
(1)選擇“配置”-“主機”-“新建主機”,添加zabbix-Trapper 客戶端的用戶名:
(2) 添加完主機后,添加監控項,選擇剛添加的主機,點擊“監控項”,然后點擊“創建監控項”:
添加監控信息,然后點擊更新:
(3)客戶端使用zabbix_sender發送數據
客戶端設備操作:
cd /bin
./zabbix_sender -s 192.168.40.134 -z 192.168.40.129 -k trappertest11 -o test
-vv 可以顯示具體信息,這里提示無法連接到zabbix server的10051端口
服務端:
netstat -anop | grep -i zabbix
未開放外網的10051端口
ListenIP=127.0.0.1,192.168.40.134
LIstenPort=10051
systemctl restart zabbix-service
netstat -anop | grep -i zabbix
客戶端操作:
四、Zabbix SNMP監控方式
1、SNMP監控介紹
如果要監控打印機、路由器、交換機、UPS等設備,肯定不能使用zabbix agentd,因為他們不能安裝軟件,但是一般都支持SNMP協議,可以使用SNMP來監控。SNMP檢查基於UDP協議。
注意事項:如果監控基於SNMPv3協議的設備,確保msgAuthoritativeEngineID(通常叫做snmpEngineID或“Engine ID”)是唯一的。
以前SNMPv3協議只支持MD5和DES加密,從zabbix2.2開始支持SHA與AES加密協議。
2、Zabbix SNMP監控Linux操作系統
(1)zabbix服務器端需要先安裝SNMP服務
使用yum源在線安裝SNMP服務配置
yum -y install net-snmp*
配置SNMP配置文件
vim /etc/snmp/snmpd.conf
proc mountd
proc ntalkd 4
proc sendmail 10 1
disk / 10000
load 12 14 14
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1
設置開機啟動SNMP:
chkconfig snmpd on
chkconfig --list | grep snmpd
/etc/init.d/snmpd start 啟動snmp服務
(2)zabbix服務器使用snmpwalk命令測試被監控計算機名
2c是指采用SNMP V2版本,192.168.40.134是指監控設備開啟了SNMP服務,否則會獲取失敗,sysName是指被監控設備的計算機名。
(3)被監控設備安裝SNMP服務
yum -y install net-snmp*
配置SNMP配置文件
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1
com2sec notConfigUser default zabbix #zabbix是被監控的團體名 public團體名稱可以修改成自己設置的字符串也可以使用默認public,default字符串默認是所有IP地址都可以訪問,如果把default修改成192.168.40.134(zabbix服務器IP地址),表示只允許zabbix服務器訪問這台被監控電腦的SNMP服務。
systemctl stop firewalld 關閉防火牆
/etc/init.d/snmpd start 啟動SNMP服務
(4)zabbix服務端web界面添加主機
選擇“配置”-“主機”-“創建主機”,添加要被監控設備的主機信息:
添加模塊:
添加宏:
然后點擊“添加”,主機通過SNMP添加成功;
3、zabbix SNMP監控windows系統
(1)windows系統啟動SNMP功能:
選擇“控制面板”-“程序”-“啟用或關閉windows功能”,選擇“簡單網絡管理協議(SNMP)”
(2)右擊“計算機”-“管理”-“服務”,選擇“snmp server”服務器,右擊“屬性”:
(3)zabbix 服務端web界面,選擇“配置”-“主機”,然后點擊“創建主機”
大概需要等待五分鍾左右,查看主機是否監控成功
4、zabbix SNMP 監控網設備
“配置”-“主機”-“創建主機”,添寫要監控的設備信息:
五、zabbix JMX監控方式
1、zabbix JMX 簡介
在企業中,很多程序是基於Java來編寫的,java程序運行在JVM之上,而JVM自己就可以監聽在某個套接字上,將自己內部的狀態信息輸出出去,所以監控服務器只需要直接連接JVM的套接字就可以獲取到Java進程的相關信息,不需要通過Agent、SNMP;可是zabbix是沒辦法自己連接JVM套接字的,也就是說,zabbix自身是不能夠作為客戶端來鏈接該套接字的。所以,就需要額外安裝一個服務來連接JVM套接字的。這個服務就是zabbix-java-gateway.x86_64(Java網關);可以通過該網關來監聽多個JVM;zabbix-agent-gateway可以是一個單獨的主機,可以和zabbix server安裝到一台主機上;
2、zabbix server 安裝java gateway
zabbix提供了一個java gateway的應用去監控jmx(Java Management Extensions,即Java管理擴展)是一個為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作平台、系統體系結構和網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用。
yum install -y java java-devel zabbix-java-gateway
3、添加java環境
vim /etc/profile
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
加載環境:
source /etc/profile
4、修改java-gateway配置文件
grep ^[a-Z] /etc/zabbix/zabbix_java_gateway.conf
cd /etc/zabbix
vim zabbix_java_gateway.conf 修改以下信息:
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5
TIMEOUT=3
5、重啟java-gateway服務
systemctl restart zabbix-java-gateway
6、修改zabbix_server配置文件
find / -name zabbix_java_gateway
vim /usr/sbin/zabbix_java_gateway 修改以下配置信息
JavaGateway=192.168.40.131<br>
JavaGatewayPort=10052<br>
StartJavaPollers=5
7、重啟zabbix_server服務
systemctl restart zabbix-server
8、客戶端配置
在Tomcat下的/bin/catalina.sh文件中添加以下內容:
CATALINA_OPTS="$CATALINA_OPTS
-Djavax.management.builder.initial=
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=192.168.40.131"
重啟Tomcat進程:
9、zabbix中添加監控
選擇配置:主機-模板-選擇-模板-:
查看圖形:
六、zabbix IPMI監控方式
IPMI(Intelligent PlatformManagement Interface)既智能平台管理接口是使硬件管理具備“智能化”的新一代通用接口標准。用戶可以利用IPMI監視服務器的物理特性,如溫度、電壓、電扇工作狀態、電源供應以及機箱入侵等。Ipmi最大的優勢在於它是獨立於 CPU BIOS 和OS的,所以用戶無論在開機還是關機的狀態下,只要接通電源就可以實現對服務器的監控。Ipmi是一種規范的標准,其中最重要的物理部件就是BMC(Baseboard Management Controller),一種嵌入式管理微控制器,它相當於整個平台管理的“大腦”,通過它 ipmi 可以監控各個傳感器的數據並記錄各種事件的日志。
使用 ipmi 的先決條件,想要實現對服務器的 ipmi 管理,必須在硬件、OS、管理工具等幾個方面都滿足:
a.服務器硬件本身提供對 ipmi 的支持目前惠普、戴爾和 NEC 等大多數廠商的服務器都支持IPMI 1.5,但並不是所有服務器都支持,所以應該先通過產品手冊或在 BIOS 中確定服務器是否支持 ipmi,也就是說服務器在主板上要具有 BMC 等嵌入式的管理微控制器。
b.操作系統提供相應的 ipmi 驅動通過操作系統監控服務器自身的 ipmi 信息時需要系統內核提供相應的支持,linux 系統通過內核對OpenIPMI(ipmi 驅動)的支持來提供對 ipmi 的系統接口。
日常監控中使用IPMI的方式不多,在此不舉例說明了。