天天看點

Zabbix小記

監控的緯度:

一、架構體系監控

1.硬體監控:伺服器、路由器、交換機、防火牆

2.系統監控:cpu、記憶體、磁盤、程序

3.服務監控:nginx、php、redis、mysql

4.網站監控:請求時間、響應時間、加載時間

5.日志監控:ELK(收集 存儲 分析 展示)

6.安全監控:firewalld waf

7.網絡監控:奇雲測

8.業務監控:活動産生多少流量、産生多少注冊量

二、根據網絡模型進行監控

TCP/IP四層模型

三、根據網站實際情況進行監控

四、根據使用者通路網站流程監控

綜合架構監控服務體系結構

監控常用指令:

CPU:top

監控什麼?

us: 使用者程序占用cpu百分比 --> 使用者态資訊

sy: 核心程序占用cpu百分比 --> 核心态資訊

id: 空閑的百分比 --> 空閑狀态

memory:top free

記憶體可用率

swap空間使用情況

disk:df、iotop(檢查磁盤io消耗)

磁盤使用情況

磁盤的IO消耗

網絡:iftop

網絡帶寬使用情況

程序:top、htop、ps

占用記憶體情況

記憶體占滿會産生記憶體溢出--->服務出現僵死

占用cpu情況

負載:w、top、uptime

十分鐘負載、十五分鐘負載

<CPU核心數

綜合架構監控服務腳本

  1. 如何監控記憶體使用情況

正常使用情況:記憶體使用率高于80%

異常使用情況:記憶體使用率低于80%,發送報警

free|awk 'NR==2{print int($NF/$2*100)}'

  1. 監控服務運作狀态

zabbix監控服務說明

1.結構組成

zabbix-server 監控伺服器

zabbix-agent 監控用戶端

zabbix-web 網站服務

php 處理動态請求

mysql 資料庫存儲監控資料

zabbix-proxy 負責收集agent資訊彙總告知zabbix-server

(大型架構中使用)

實作zabbix報警功能--觸發器/動作

報警方式:

1.頁面提示資訊報警(值班運維)
2.頁面聲音提示報警
3.郵件資訊報警
4.微信功能報警

           

1.頁面提示資訊報警

1)建立觸發器

配置--主機--選擇相應監控主機觸發器--建立觸發器

設定好表達式:{監控主機名稱:鍵值名稱.調用的表達式函數}<=2

表達式總結:

last() #收集到的最新資訊(數值)

max() #在一定周期内,收到的最大值

min() #在一定周期内,收到的最小值

diff() #在一定時間内,判斷收集的資訊是否不同

change() #最新值和上一個值的差異

avg() #一段時間的平均值

2.郵件資訊報警

同上

2)修改動作配置

配置--動作---将預設動作進行開啟

3)建立和163郵箱服務

管理--報警媒介類型--建立報警媒介

4)定義接收報警的郵件位址

個人中心--報警媒介--設定收件人資訊

3.微信報警

================

1、zabbix是什麼?

由alexei vladisev建立,目前由其成立的公司-zabbix sia積極的持續開發更新維護,并為使用者提供技術支援服務。

zabbix是一個企業級分布式開源監控解決方案

zabbix軟體能夠監控衆多網絡參數和伺服器的健康度、完整性;zabbix使用靈活的告警機制,允許使用者為幾乎任何事件配置基于郵件的告警。這樣使用者可以快速響應伺服器問題。

它基于存儲的資料提供出色的報表和資料可視化功能,這些功能使得zabbix成為容量規劃的理想選擇。

zabbix支援主動輪詢(polling)和被動捕獲(trapping)。

zabbix所有的報表、統計資料和配置參數都可以通過基于web的前端頁面進行通路。能夠確定你在任何地方通路被監控的網絡狀态和伺服器健康狀态;

适當的配置後,zabbix可以在監控IT基礎設施方面發揮重要作用,無論是對于有少量伺服器的小型組織,還是擁有大量伺服器的大企業而言,同樣适用。

基于GPL通用公共許可證的第二版編寫和釋出的,意味着免費、開源。

2、zabbix能幹什麼?

zabbix是一個高度成熟完善的網絡監控解決方案,一個軟體包中包含了多種功能。

1)資料采集

可用性和性能檢查

執行SNMP(包括主動輪詢和被動捕獲)、IPMI、JMX、VMware監控;

自定義檢查

按照自定義的時間間隔采集需要的資料

通過server、proxy和agents來執行資料采集。

2)靈活的門檻值定義

可以參考後端資料庫定義非常靈活的告警門檻值,即“觸發器”

3)高度可配置化的告警

可以根據遞增計劃、接收者、媒介類型自定義發送告警通知;

使用宏變量可以使告警通知變得更加高效有用;

自動操作包含遠端執行指令。

4)實時圖形

内置圖形功能可以将健康實時繪制成圖形

5)web監控功能

zabbix可以追蹤滑鼠在web網站上的點選操作,來檢查web網站的功能和響應時間。

6)豐富的可視化選項

可以組合多個監控項到單個視圖中,建立自定義圖示

網絡拓撲圖

以儀表盤樣式展示自定義聚合圖形和幻燈片示範

報表

監控資源的更高層次展示視圖(業務視圖)

7)曆史資料存儲

存儲在資料庫總的資料

曆史配置

内置資料管理機制(housekeeping)

8)配置簡單

将被監控裝置添加為主機

主機一旦添加到資料庫中,就會采集資料用于監控

将模闆用于監控裝置

9)使用模闆

模闆中分組檢查

模闆可以關聯模闆,繼承已關聯模闆的屬性

10)網絡發現

自定發現網絡裝置

zabbix agent發現裝置後自動注冊

自動發現檔案系統、網絡接口和SNMP OIDs值

11)快捷的web界面

基于PHP的web前端

可以從任何地方通路

可以定制自己的操作方式

通過審計日志來檢視操作

12)zabbix api

為zabbix提供可程式設計接口,用于批量操作、第三方軟體集合和其他用途

13)權限管理系統

安全的使用者身份驗證

指定的使用者隻能檢視指定的權限範圍内的視圖

14)功能強大且易于擴充的zabbix agent

部署于被監控對象上

支援Linux和windows

15)二進制守護程序

為了更好的性能和更少的記憶體占用,采用C語言編寫

便于移植

16)适應更複雜的環境

使用zabbix proxy代理,可以輕松實作分布式遠端監控

3、zabbix的架構

zabbix由幾個主要的功能元件組成

1)server

zabbix server是zabbix軟體的核心元件。agent向其報告可用性、系統完整性資訊和統計資訊;server也是存儲所有配置資訊、統計資訊和操作資訊的核心存儲庫。

2)資料庫

所有配置資訊以及zabbix采集到的的資料都被存儲在資料庫中。

3)web界面

該web界面是zabbix server的一部分,通常和zabbix server運作在同一台實體機器上。

4)proxy

zabbix proxy可以代替zabbix server采集性能和可用性資料,zabbix proxy在zabbix的部署是可選部分,但是proxy的部署可以很好的分擔單個zabbix server的負載。

5)agent

zabbix agent部署在被監控目标上,用于主動監控本地資源和應用程式,并将收集的資料發送給zabbix server。

6)資料流

另外,回過頭來整體的了解下zabbix内部的資料流對zabbix的使用也很重要;

首先,為了建立一個采集資料的監控項,就必須先建立主機;

其次,在任務的另外一端,必須要有監控項才能建立觸發器(trigger),必須要有觸發器來建立動作(action);

是以,如果想要收到類似“X個server上的CPU負載過高”這樣的告警,必須首先為server X 建立一個主機條目,其次建立一個用于監控其CPU的監控項,最後建立一個觸發器,用來觸發CPU負載過高這個動作,并将其發送到您的郵箱裡;

雖然這些步驟繁瑣,但是使用模闆的話,實際操作非常簡單,也正是由于這種設計,使得zabbix的配置變得更加靈活易用。

4、zabbix的常用術語

主機(host)- 你想要監控的聯網裝置,有IP/DNS。

主機組(host group)- 主機的邏輯組

可能包含主機和模闆,一個主機組裡的主機和模闆之間并沒有任何直接的關聯,通常再在給不同使用者組的主機配置設定權限時使用主機組。

監控項(item)- 你想要從主機接收的特定資料,一個度量(metrics)/名額資料。

值預處理(value preprocessing)- 存入資料庫之前,轉化/預處理接收到的名額資料。

觸發器(trigger)- 觸發器是一個邏輯表達式,用來定義問題門檻值和“評估”監控項接收到的資料;

當接收到的資料高于門檻值時,觸發器從“OK”變成“Problem”狀态;當接收的資料低于門檻值時,觸發器保留/傳回“OK”的狀态。

時間(event)- 發生的需要注意的事件,例如觸發器狀态改變、自動發現/監控代理自動注冊。

事件标簽(event tag)- 提前設定的事件标記,可以用于事件關聯,權限細化設定等。

事件關聯(event correlation)- 自動靈活地、精确的關聯問題和解決方案;

比如,你可以定義觸發器A告警的異常可以由觸發器B解決,觸發器B可能采用完全不同的資料采集方式。

異常(problems)- 處在“異常”狀态的觸發器。

異常狀态更新(problem update)- zabbix提供的異常管理選項,例如添加評論、确認異常、改變嚴重級别或手動關閉等。

動作(action)- 預先定義的應對事件的動作;

一個動作由操作(例如發出通知)和條件(什麼事件進行操作)組成。

更新(escalation)- 使用者自定義的一個在動作内執行操作的場景;發送通知/執行遠端指令的序列。

媒介(media)- 發送告警通知的方式、途徑

告警通知(notification)- 通過預先設定好的媒介途徑發送事件資訊給使用者。

遠端指令(remote command)- 預定義好的,滿足特定條件的情況下,可以在被監控主機上自動執行的指令。

模闆(template)- 被應用到一個或多個主機上的一整套實體組合(如監控項,觸發器,圖形,聚合圖形,應用,LLD,web場景等)。

模闆的應用使得主機上的監控任務部署快捷友善,也可以使監控任務的批量修改更加簡單,模闆是直接關聯到每台單獨的主機上。

應用(application)- 監控項的邏輯分組。

web場景(frontend)- zabbix提供的web界面

儀表盤(dashborad)- 自定義的web前端模闆中,用于重要的概要和可視化資訊展示的單元,我們稱之為元件。

元件(widget)- dashboard中用來展示某種資訊和資料的可視化元件(概覽、map、圖示、時鐘等)。

zabbix api - 允許用于使用json rpc協定來建立、更新和擷取zabbix對象(如主機、監控項、圖示等)資訊或者執行任何其他的自定義的任務。

zabbix server - zabbix軟體的核心程序,執行監控操作,與zabbix proxies和agents進行互動、觸發器計算、發送告警通知,也是資料的中央存儲庫。

zabbix agent - 部署在監控對象上的程序,能夠主動監控本地資源和應用。

zabbix proxy - 代替zabbix server 采集資料,進而分擔zabbix server負載的程序。

加密(encryption)- 使用TLC協定支援zabbix元件之間的加密通訊(server、agent、proxy、zabbix_sender和zabbix_get工具)。

網絡自動發現(network discovery)- 網絡裝置的自動發現

低級别自動發現(low-level discovery)- 特定裝置上低級别實體的自動發現(如檔案系統、網絡接口等)。

低級别自動發現規則(low-level discovery rule)- 為自動發現裝置中低級别實體設定的一系列規則。

監控項原型(item prototype)- 有特定變量的名額,用于自動發現;低級别自動發現執行之後,該變量将被實際自動發現的參數替換,該名額也自動開始采集資料。

觸發器原型(trigger prototype)

  • 有特定參數作為變量的觸發器,用于自動發現;自動發現執行後該變量将被實際自動發現的參數替換,該觸發器自動開始計算資料。

還有其他一些zabbix實體原型也被用于自動發現中--圖示原型,主機原型,主機組原型,應用原型。

agent自動注冊(agent auto-registration)

  • zabbix agent自己自動注冊為一個主機,并且開始監控的自動執行程序。