大家好,又見面了,我是你們的朋友全棧君。
- 監控基礎概論
- zabbix并非監控,而是實作監控的工具
- Zabbix-server是一個c/s和b/s結構
- 安裝zabbbix的伺服器安裝時和php7.1有沖突:若此機器上已經安裝php7.1就安裝不上zabbix
- 監控知識體系
- 為什麼要使用監控
- 1.對系統不間斷實時監控
- 2.實時回報系統目前狀态
- 3.保證服務可靠性安全性
- 4.保證業務持續穩定運作
- 如果去到一家新的公司,如何入手?
- 1.硬體監控——路由器、交換機、防火牆
- 2.系統監控——cpu、記憶體、磁盤、網絡、程序、tcp
- 3.服務監控——nginx、php、tomcat、redis、memcache、mysql
- 4.web監控——響應時間、加載時間、渲染時間
- 5.日志監控——ELK、(收集、存儲、分析、展示)日志
- 6.安全監控——firewalld、WAF(nginx+lua)、安全寶、牛盾雲、安全狗
- 為什麼要使用監控
- 單機監控
- 單機程序cpu檢視負載和使用率
- 單機記憶體檢視
- 單機磁盤檢視
- 單機檢視網絡
- 引入zabbix分布式監控系統
- 使用shell腳本來監控伺服器
- 安裝zabbix
- (單機)–> LAMP
- (架構)–> LAP + MYSQL
- 服務端端口:10051
- 用戶端端口:10050
基礎模闆
- 自定義監控門檻值實戰
- 自定義監控項
- 機關
- 值類型
- 值映射
- 門檻值的定義
- 單條件
- 多條件
- 自定義觸發器(動作)
- 自定義報警(郵件|微信)郵件發送的資訊内容可以使用系統自帶的宏變量來對應修改(官方站點有宏變量的介紹)
- 自定義圖形、聚合圖形、幻燈片、網絡拓撲圖、Graphtree
- 自定義模闆(給主機添加)
- 系統預設自帶的監控項設定門檻值要根據生産中的需求來進修修改(門檻值的高低)
服務監控(監控的服務要求有狀态頁面查詢)
- nginx
- PHP-fpm
- mysql
- tomcat
- redis
web監控
- 請求時間
- 響應時間
- 頁面不是200–>觸發報警
自動化監控:
- 自動發現(server端輪詢網段掃描發現agent)
- ** 自動發現:server–>輪詢掃描–>ip位址段–> **
- 自動發現:ip、ftp、ssh、web、pop3、imap、tcp
- ip範文自動發現(兩個階段:發現–>動作)
- szabbix-web自動發現定義自動監控的網段中的zabixx-agent(配置檔案中server已經定義zabbix-server位址)
- ip範文自動發現(兩個階段:發現–>動作)
- 自動發現所執行的動作
- 發送消息
- 添加/删除主機
- 啟用/禁用主機
- 添加主機到組
- 從組中删除主機
- 将主機連結到模闆/從模闆中取消連結
- 執行遠端腳本指令
- 主動注冊(agent端主動告訴server端請求加入)
- zabbix-server必須開啟自動注冊–>操作–>(通知|加入監控|套用模闆)
- Agent(ServerActive=10.0.0.61)–>啟動–>自動加入zabbix-server
zabbix-proxy分布式
- Zabbix-proxy使用場景:
- 監控遠端位置,解決跨機房
- 監控主機多,性能跟不上,延遲大
- 解決網絡不穩定
zabbix 是怎麼實施監控的
一個監控系統運作的大概的流程是這樣的:
agentd需要安裝到被監控的主機上,它負責定期收集各項資料,并發送到zabbix server端,zabbix server将資料存儲到資料庫中,zabbix web根據資料在前端進行展現和繪圖。這裡agentd收集資料分為主動和被動兩種模式:
主動:agent請求server擷取主動的監控項清單,并主動将監控項内需要檢測的資料送出給server/proxy
被動:server向agent請求擷取監控項的資料,agent傳回資料。
- 主動模式被動模式:預設為zabbix-agent被動模式
主動模式與被動模式主要是站在zabbix-agent身份來說
複制
- 1.被動模式(zabbix-server輪詢檢測zabbix-agent)
- 2.主動模式(zabbix-agent主動上報給zabbix-server)優
zabbix主動模式與被動模式選擇
複制
- 1.當(Queue)隊列中有大量的延遲監控項
- 2.當監控主機超過300+ ,建議使用主動模式
【主動監測】通信過程如下:
zabbix首先向ServerActive配置的IP請求擷取active items,擷取并送出active tiems資料值server或者proxy。很多人會提出疑問:zabbix多久擷取一次active items?它會根據配置檔案中的RefreshActiveChecks的頻率進行,如果擷取失敗,那麼将會在60秒之後重試。分兩個部分:
擷取ACTIVE ITEMS清單
Agent打開TCP連接配接(主動檢測變成Agent打開)
Agent請求items檢測清單
Server傳回items清單
Agent 處理響應
關閉TCP連接配接
Agent開始收集資料
主動檢測送出資料過程如下:
Agent建立TCP連接配接
Agent送出items清單收集的資料
Server處理資料,并傳回響應狀态
關閉TCP連接配接
【被動監測】通信過程如下:
Server打開一個TCP連接配接
Server發送請求agent.ping\n
Agent接收到請求并且響應
Server處理接收到的資料
關閉TCP連接配接
1、建立監控項目時,選擇的是zabbix代理還是zabbix端點代理程式(主動式),前者是被動模式,後者是主動模式。
2、agentd配置檔案中StartAgents參數的設定,如果為0,表示禁止被動模式,否則開啟。一般建議不要設定為0,因為監控項目很多時,可以部分使用主動,部分使用被動模式。
zabbix 自定義發現是怎麼做的
1、首先需要在模闆當中建立一個自動發現的規則,這個地方隻需要一個名稱和一個鍵值。
2、過濾器中間要添加你需要的用到的值宏。
3、然後要建立一個監控項原型,也是一個名稱和一個鍵值。
4、然後需要去寫一個這樣的鍵值的收集。
自動發現實際上就是需要首先去獲得需要監控的值,然後将這個值作為一個新的參數傳遞到另外一個收集資料的item裡面去。
zabbix 是怎麼微信報警的 —-企業現在用的比較的多
1、首先,需要有一個微信企業号。(一個實名認證的[微信号]一個可以使用的[手機号]一個可以登入的[郵箱号]
2、下載下傳并配置微信公衆平台私有接口。
3、配置Zabbix告警,(增加示警媒介類型,添加使用者報警媒介,添加報警動作)。
zabbix 怎麼開啟自定義監控
1、寫一個腳本用于擷取待監控服務的一些狀态資訊。
2、在zabbix用戶端的配置檔案zabbix_agentd.conf中添加上自定義的“UserParameter”,目的是友善zabbix調用我們上面寫的那個腳本去擷取待監控服務的資訊。
3、在zabbix服務端使用zabbix_get測試是否能夠通過第二步定義的參數去擷取zabbix用戶端收集的資料。
4、在zabbix服務端的web界面中建立模闆,同時第一步的腳本能夠擷取什麼資訊就添加上什麼監控項,“鍵值”設定成前面配置的“UserParameter”的值。
5、資料顯示圖表,直接建立圖形并選擇上一步的監控項來生成動态圖表即可。
zabbix 監控了多少用戶端 用戶端是怎麼進行批量安裝的
根據實際公司台數回答。
1、使用指令生成密鑰。
2、将公鑰發送到所有安裝zabbix用戶端的主機。
3、安裝 ansible 軟體,(修改配置檔案,将zabbix 客戶機添加進組)。
4、建立一個安裝zabbix用戶端的劇本。
5、執行該劇本。
6、驗證。
實戰經驗總結:
- 1.先檢視文檔中有沒有對應的腳本和xml模闆
- 2.在服務端導入模闆,檢視對應的監控項名稱
- 3.測試腳本是否能取值,并存放置于/etc/zabbix/scripts目錄下,一定要增加執行權限
- 4.編寫xx.conf檔案,裡面主要存放的是如何定義監控項
- 5.最後重新開機zabbix-agent
- 6.使用服務端zabbix-get 擷取 zabbix-agent對應的監控項的資料
- 範例:
- 公司未啟用swap(swap也是公司中伺服器不建議啟用的,因為swap是将磁盤模拟記憶體使用,消耗cpu的性能,建議關閉swap。加大記憶體),随着客戶的流量日益增大,導緻将zabbix服務程序強制OOM, Zabbix服務程序被kill,有兩種解決的方法,如果公司為了性能着想加大記憶體,如果公司資有限添加swap,如果是為了服務的效率建議使用添加記憶體的方式,
釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/131073.html原文連結:https://javaforall.cn