zabbix組件:
兩核心組件:
zabbix-server(監控者) :收集agent發送的數據,寫入數據庫(mysql、oracal、)中,再通過web展示出來。默認端口為10051.
zabbix-agent(被監控者):zabbix-agent:被監控者。通過安裝zabbix agent,可將主機做為一個被監控的節點,通過agent采集數據並發送到zabbix-server或zabbix-proxy端。默認端口為10050.
其他重要組件:
zabbix-proxy:監控代理者。通過安裝zabbix proxy,可將主機做為代理,代理zabbix-server收集部分被監控端的監控數據,寫入zabbix-proxy自己的數據庫中,再統一按時發往zabbix-server端。(可視為一個小型的zabbix-server,配置方法也幾乎等同於zabbix-server,常用於分布監控環境中,通常大於500台主機需要使用,需要進行分布式監控架構部署)。默認端口:10051.
zabbix_get:它是zabbix的數據接收工具,通常在zabbix-server或zabbix-proxy端執行獲取遠程zabbix-agent客戶端的命令。
zabbix_sender:它是zabbix的數據發送工具,用於再zabbix-agent端發送數據給zabbix-server或zabbix-proxy。
Database Storage:專用於存儲所有配置信息,以及由zabbix收集的數據,通常與Server運行在同一台主機上
Web interface:zabbix的GUI接口,與Server運行在同一台主機上
工作原理:
zabbix-agent將采集到的主機信息,發送給zabbix-server,zabbix-server收到數據,將數據存在數據庫中,用戶基於zabbix-web在前端查看監控數據的圖像,給監控項設置一個觸發器閾值,當監控指標達到或超過這個閾值的時候,系統會做一些動作,比如發送消息給管理員或者發送一些shell命令。
zabbix監控什么:
內存使用情況:
磁盤空間:
網絡流量:網絡接口流量、網絡出口流量。
agent:檢查客戶端可用性、主機名、系統詳細信息等。
監控程序端口啟用。
zabbix-agent客戶端收集數據的模式:
Zabbix監控客戶端默認為被動模式,可以修改為主動模式,只需要在客戶端配置文件中添加 StartAgents=0即可,
主動監控:agent主動向server獲取監控項列表,zabbix-agent主動將監控項內需要檢測的數據提交給zabbix-server/proxy。
被動監控:zabbix-agent等待zabbix-server的監控信息,server向agent請求獲取監控項的數據。agent收集信息請求並作出響應。Server處理接收到的數據。
自動發現:
在zabbixGUI界面,配置欄下配置自動發現規則,設置要監控的主機ip范圍,配置動作規則,添加模板,然后分別啟用,最后在主機欄,刷新等待查看自動發現的主機。
郵件告警:(版本3.0)
1、在linux中/usr/local/zabbix/alertscripts編寫郵件告警腳本
2、【管理】--【報警媒介類型】--【創建媒介類型】(先將默認的都停用)
3、名稱:自定義就行 類型:腳本 腳本名稱:跟配置文件保持一致
4、【管理】--【用戶】--【創建用戶】(創建用戶)
5、【配置】----【動作】----【觸發器】----【創建動作】(添加告警動作)
用戶根據自己的監控項目自定義監控項:
以監控httpd進程是否存在為例。
1、首先編寫自定義監控腳本:
腳本名字:check_httpd.sh
腳本目錄(這個目錄可以自定義):/usr/local/zabbix_scripts
腳本內容:腳本說明:通過ps檢查httpd進程是否存在,如果存在則腳本反饋1,如果不存在則返回0
2、在agent端修改zabbix_agentd.conf配置文件,修改兩處:
UnsafeUserParameters=1,默認為0,此處我們將它改為1,改為1以后,表示用戶自定義的腳本中可以包含特殊字符。
3、添加自定義監控項,格式為:UserParameter=<鍵值>,<命令>。這里我們自定義鍵值為:check_httpd,要執行的命令為執行check_httpd.sh這個腳本。
4、添加完成后重啟zabbix-agent服務使其生效。
5、在zabbix-server端:
進行get測試:zabbix_get -s 192.168.11.11 -p 10050 -k "check_httpd.sh" ,-s后邊跟的是agent服務所在的IP,-k后邊跟的是在agent配置里的key.
6、在zabbix-server端web頁面操作:
選擇要增加監控項的主機,創建監控項,根據自定義鍵值填寫監控項,鍵值填agent端配置文件中的key。
7、添加成功后,在最新數據中查看是否獲取到數據
8、給這個監控項添加觸發器(在這里我們定義當check_httpd監控項返回為0的時候告警。即httpd進程不存在)自定義觸發器名稱以及嚴重程度,表達式那里,點擊添加觸發器表達式,監控項選擇我們自定義監控項,功能可以根據自己的需求選擇,這里我們選擇最后一個值是0的時候則告警(即httpd進程不存在)
9、至此,自定義監控項和自定義告警已添加完成,如果有其他監控需求,自己寫監控腳本即可。
zabbix監控nginx:
背景:Nginx在生產環境中的應用越來越廣泛,所以需要對nginx的性能狀態做一些監控,從而發現故障隱患。
Ngnx的監控指標可分為:基本活動指標,錯誤指標,性能指標
zabbix模板:zabbix模板中可以包含監控項、觸發器、web監控、圖表等等項目,一一創建這些項目之后,在后續的主機只需要套用這個模板,主機便可以監控模板里面所配置的監控項目。
比如要用zabbix監控100台Linux服務器的基本性能,如cpu、內存、硬盤、網絡這些基本的東西,如果一台一台的配置,會好費大量的時間和精力,此時創建一個模板,然后每個服務器套用/鏈接這個模板,那么只要在創建主機的過程中在link(套用/鏈接)這個模板,一個服務器就完成了。
嵌套模板:在zabbix使用過程中,某些情況下,一個host需要link多個模板。這么做顯得比較麻煩,很容易忘記到底要link哪些模板,我想link一個模板就達成這個目標,行不行?然而沒問題,zabbix模板內嵌簡單的說就是:模板link多個模板,
zabbix的主要監控架構:
在zabbix的監控架構中,主要分為了三種架構: server-agent 、server-proxy-agent、master-node-client三種 ,適合於不同的生產環境。