監視任何事情適用於任何it基礎架構,服務,應用程式和資源的解決方案注:
序列化和反序列化的概念
把物件轉換為位元組序列的過程稱為物件的序列化;把位元組序列恢復為物件的過程稱為物件的反序列化。
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
服務監控
(監控的服務要求有狀態頁面查詢)
nginx
php-fpm
mysql
tomcat
redis
web監控
請求時間
響應時間
頁面不是200-->觸發報警
自動化監控
:
自動發現(server端輪詢網段掃瞄發現agent)
自動發現:ip、ftp、ssh、web、pop3、imap、tcpip范文自動發現(兩個階段:發現–>動作)
szabbix-web自動發現定義自動監控的網段中的zabixx-agent(配置檔案中server已經定義zabbix-server位址)
自動發現所執行的動作
傳送訊息
新增/刪除主機
啟用/禁用主機
新增主機到組
從組中刪除主機
將主機鏈結到模板/從模板中取消鏈結
執行遠端指令碼命令
主動註冊
(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、首先需要在模板當中建立乙個自動發現的規則,這個地方只需要乙個名稱和乙個鍵值。自動發現實際上就是需要首先去獲得需要監控的值,然後將這個值作為乙個新的引數傳遞到另外乙個收集資料的item裡面去。2、過濾器中間要新增你需要的用到的值巨集。
3、然後要建立乙個監控項原型,也是乙個名稱和乙個鍵值。
4、然後需要去寫乙個這樣的鍵值的收集。
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,如果是為了服務的效率建議使用新增記憶體的方式,
zabbix3 X安裝注意事項
本人安裝zabbix3.x過程中,遇到了些許問題,下面分享一下,或許對一些人有幫助。1 lamp or lnmp平台 php版本至少5.4.x 2 編譯php引數問題 with gettext with mysql mysqlnd 3 zabbix版本的選擇 注意zabbix3.0漏洞,影響範圍 2...
zabbix3 X安裝注意事項
本人安裝zabbix3.x過程中,遇到了些許問題,下面分享一下,或許對一些人有幫助。1 lamp or lnmp平台 php版本至少5.4.x 2 編譯php引數問題 with gettext with mysql mysqlnd 3 zabbix版本的選擇 注意zabbix3.0漏洞,影響範圍 2...
java DOM 注意事項
1.w3c把標籤內的文字部分也定義成乙個node 2.element物件代表的是xml文件中的標籤元素 繼承於node,亦是node的最主要的子物件 3.attr實際上是包含在element中的,它並不能被看作是element的子物件,因而在dom中attr並不是dom樹的一部分,所以node中的 ...