監(jiān)控基礎(chǔ)概論
Zabbix并非監(jiān)控仆葡,而是實(shí)現(xiàn)監(jiān)控的工具
Zabbix-server是一個c/s和b/s結(jié)構(gòu)
安裝zabbbix的服務(wù)器安裝時和php7.1有沖突:若此機(jī)器上已經(jīng)安裝php7.1就安裝不上zabbix
監(jiān)控知識體系
為什么要使用監(jiān)控
1.對系統(tǒng)不間斷實(shí)時監(jiān)控
2.實(shí)時反饋系統(tǒng)當(dāng)前狀態(tài)
3.保證服務(wù)可靠性安全性
4.保證業(yè)務(wù)持續(xù)穩(wěn)定運(yùn)行
如果去到一家新的公司霍殴,如何入手?
1.硬件監(jiān)控——路由器、交換機(jī)、防火墻
2.系統(tǒng)監(jiān)控——cpu、內(nèi)存章姓、磁盤、網(wǎng)絡(luò)识埋、進(jìn)程凡伊、tcp
3.服務(wù)監(jiān)控——nginx、php窒舟、tomcat系忙、redis、memcache惠豺、mysql
4.web監(jiān)控——響應(yīng)時間银还、加載時間风宁、渲染時間
5.日志監(jiān)控——ELK、(收集蛹疯、存儲戒财、分析、展示)日志
6.安全監(jiān)控——firewalld捺弦、WAF(nginx+lua)饮寞、安全寶、牛盾云列吼、安全狗
單機(jī)監(jiān)控
單機(jī)進(jìn)程cpu查看負(fù)載和使用率
單機(jī)內(nèi)存查看
單機(jī)磁盤查看
單機(jī)查看網(wǎng)絡(luò)
引入zabbix分布式監(jiān)控系統(tǒng)
使用shell腳本來監(jiān)控服務(wù)器
安裝zabbix
(單機(jī))--> LAMP
(架構(gòu))--> LAP + MYSQL
服務(wù)端端口:10051
客戶端端口:10050
基礎(chǔ)模板
自定義監(jiān)控閾值實(shí)戰(zhàn)
自定義監(jiān)控項(xiàng)
單位
值類型
值映射
閾值的定義
單條件
多條件
自定義觸發(fā)器(動作)
自定義報警(郵件|微信)郵件發(fā)送的信息內(nèi)容可以使用系統(tǒng)自帶的宏變量來對應(yīng)修改(官方站點(diǎn)有宏變量的介紹)
自定義圖形幽崩、聚合圖形、幻燈片寞钥、網(wǎng)絡(luò)拓?fù)鋱D慌申、Graphtree
自定義模板(給主機(jī)添加)
系統(tǒng)默認(rèn)自帶的監(jiān)控項(xiàng)設(shè)置閾值要根據(jù)生產(chǎn)中的需求來進(jìn)修修改(閾值的高低)
服務(wù)監(jiān)控(監(jiān)控的服務(wù)要求有狀態(tài)頁面查詢)
nginx
PHP-fpm
mysql
tomcat
redis
web監(jiān)控
請求時間
響應(yīng)時間
頁面不是200-->觸發(fā)報警
自動化監(jiān)控:
自動發(fā)現(xiàn)(server端輪詢網(wǎng)段掃描發(fā)現(xiàn)agent)
** 自動發(fā)現(xiàn):server-->輪詢掃描-->ip地址段--> **
自動發(fā)現(xiàn):ip、ftp理郑、ssh蹄溉、web、pop3您炉、imap类缤、tcp
ip范文自動發(fā)現(xiàn)(兩個階段:發(fā)現(xiàn)-->動作)
szabbix-web自動發(fā)現(xiàn)定義自動監(jiān)控的網(wǎng)段中的zabixx-agent(配置文件中server已經(jīng)定義zabbix-server地址)
自動發(fā)現(xiàn)所執(zhí)行的動作
發(fā)送消息
添加/刪除主機(jī)
啟用/禁用主機(jī)
添加主機(jī)到組
從組中刪除主機(jī)
將主機(jī)鏈接到模板/從模板中取消鏈接
執(zhí)行遠(yuǎn)程腳本命令
主動注冊(agent端主動告訴server端請求加入)
zabbix-server必須開啟自動注冊-->操作-->(通知|加入監(jiān)控|套用模板)
Agent(ServerActive=10.0.0.61)-->啟動-->自動加入zabbix-server
zabbix-proxy分布式
Zabbix-proxy使用場景:
監(jiān)控遠(yuǎn)程位置,解決跨機(jī)房
監(jiān)控主機(jī)多邻吭,性能跟不上,延遲大
解決網(wǎng)絡(luò)不穩(wěn)定
zabbix 是怎么實(shí)施監(jiān)控的
一個監(jiān)控系統(tǒng)運(yùn)行的大概的流程是這樣的:
agentd需要安裝到被監(jiān)控的主機(jī)上宴霸,它負(fù)責(zé)定期收集各項(xiàng)數(shù)據(jù)囱晴,并發(fā)送到zabbix server端,zabbix server將數(shù)據(jù)存儲到數(shù)據(jù)庫中瓢谢,zabbix web根據(jù)數(shù)據(jù)在前端進(jìn)行展現(xiàn)和繪圖畸写。這里agentd收集數(shù)據(jù)分為主動和被動兩種模式:
主動:agent請求server獲取主動的監(jiān)控項(xiàng)列表,并主動將監(jiān)控項(xiàng)內(nèi)需要檢測的數(shù)據(jù)提交給server/proxy
被動:server向agent請求獲取監(jiān)控項(xiàng)的數(shù)據(jù)氓扛,agent返回數(shù)據(jù)枯芬。
主動模式被動模式:默認(rèn)為zabbix-agent被動模式
主動模式與被動模式主要是站在zabbix-agent身份來說
1.被動模式(zabbix-server輪詢檢測zabbix-agent)
2.主動模式(zabbix-agent主動上報給zabbix-server)優(yōu)
zabbix主動模式與被動模式選擇
1.當(dāng)(Queue)隊列中有大量的延遲監(jiān)控項(xiàng)
2.當(dāng)監(jiān)控主機(jī)超過300+ ,建議使用主動模式
【主動監(jiān)測】通信過程如下:
zabbix首先向ServerActive配置的IP請求獲取active items,獲取并提交active tiems數(shù)據(jù)值server或者proxy采郎。很多人會提出疑問:zabbix多久獲取一次active items千所?它會根據(jù)配置文件中的RefreshActiveChecks的頻率進(jìn)行,如果獲取失敗蒜埋,那么將會在60秒之后重試淫痰。分兩個部分:
獲取ACTIVE ITEMS列表
Agent打開TCP連接(主動檢測變成Agent打開)
Agent請求items檢測列表
Server返回items列表
Agent 處理響應(yīng)
關(guān)閉TCP連接
Agent開始收集數(shù)據(jù)
主動檢測提交數(shù)據(jù)過程如下:
Agent建立TCP連接
Agent提交items列表收集的數(shù)據(jù)
Server處理數(shù)據(jù),并返回響應(yīng)狀態(tài)
關(guān)閉TCP連接
【被動監(jiān)測】通信過程如下:
Server打開一個TCP連接
Server發(fā)送請求agent.ping\n
Agent接收到請求并且響應(yīng)
Server處理接收到的數(shù)據(jù)
關(guān)閉TCP連接
1整份、新建監(jiān)控項(xiàng)目時待错,選擇的是zabbix代理還是zabbix端點(diǎn)代理程式(主動式)籽孙,前者是被動模式,后者是主動模式火俄。
2犯建、agentd配置文件中StartAgents參數(shù)的設(shè)置,如果為0瓜客,表示禁止被動模式适瓦,否則開啟。一般建議不要設(shè)置為0忆家,因?yàn)楸O(jiān)控項(xiàng)目很多時犹菇,可以部分使用主動,部分使用被動模式芽卿。
zabbix 自定義發(fā)現(xiàn)是怎么做的
1揭芍、首先需要在模板當(dāng)中創(chuàng)建一個自動發(fā)現(xiàn)的規(guī)則,這個地方只需要一個名稱和一個鍵值卸例。
2称杨、過濾器中間要添加你需要的用到的值宏。
3筷转、然后要創(chuàng)建一個監(jiān)控項(xiàng)原型姑原,也是一個名稱和一個鍵值。
4呜舒、然后需要去寫一個這樣的鍵值的收集锭汛。
自動發(fā)現(xiàn)實(shí)際上就是需要首先去獲得需要監(jiān)控的值,然后將這個值作為一個新的參數(shù)傳遞到另外一個收集數(shù)據(jù)的item里面去袭蝗。
zabbix 是怎么微信報警的 ----企業(yè)現(xiàn)在用的比較的多
1唤殴、首先,需要有一個微信企業(yè)號到腥。(一個實(shí)名認(rèn)證的[微信號]一個可以使用的[手機(jī)號]一個可以登錄的[郵箱號]
2朵逝、下載并配置微信公眾平臺私有接口。
3乡范、配置Zabbix告警配名,(增加示警媒介類型,添加用戶報警媒介晋辆,添加報警動作)渠脉。
zabbix 怎么開啟自定義監(jiān)控
1、寫一個腳本用于獲取待監(jiān)控服務(wù)的一些狀態(tài)信息瓶佳。
2连舍、在zabbix客戶端的配置文件zabbix_agentd.conf中添加上自定義的“UserParameter”,目的是方便zabbix調(diào)用我們上面寫的那個腳本去獲取待監(jiān)控服務(wù)的信息。
3索赏、在zabbix服務(wù)端使用zabbix_get測試是否能夠通過第二步定義的參數(shù)去獲取zabbix客戶端收集的數(shù)據(jù)盼玄。
4、在zabbix服務(wù)端的web界面中新建模板潜腻,同時第一步的腳本能夠獲取什么信息就添加上什么監(jiān)控項(xiàng)埃儿,“鍵值”設(shè)置成前面配置的“UserParameter”的值。
5融涣、數(shù)據(jù)顯示圖表童番,直接新建圖形并選擇上一步的監(jiān)控項(xiàng)來生成動態(tài)圖表即可。
zabbix 監(jiān)控了多少客戶端 客戶端是怎么進(jìn)行批量安裝的
根據(jù)實(shí)際公司臺數(shù)回答威鹿。
1剃斧、使用命令生成密鑰。
2忽你、將公鑰發(fā)送到所有安裝zabbix客戶端的主機(jī)幼东。
3、安裝 ansible 軟件科雳,(修改配置文件根蟹,將zabbix 客戶機(jī)添加進(jìn)組)。
4糟秘、創(chuàng)建一個安裝zabbix客戶端的劇本简逮。
5、執(zhí)行該劇本尿赚。
6散庶、驗(yàn)證。
實(shí)戰(zhàn)經(jīng)驗(yàn)總結(jié):
1.先查看文檔中有沒有對應(yīng)的腳本和xml模板
2.在服務(wù)端導(dǎo)入模板凌净,查看對應(yīng)的監(jiān)控項(xiàng)名稱
3.測試腳本是否能取值悲龟,并存放置于/etc/zabbix/scripts目錄下,一定要增加執(zhí)行權(quán)限
4.編寫xx.conf文件泻蚊,里面主要存放的是如何定義監(jiān)控項(xiàng)
5.最后重啟zabbix-agent
6.使用服務(wù)端zabbix-get 獲取 zabbix-agent對應(yīng)的監(jiān)控項(xiàng)的數(shù)據(jù)
范例:
公司未啟用swap(swap也是公司中服務(wù)器不建議啟用的,因?yàn)閟wap是將磁盤模擬內(nèi)存使用丑婿,消耗cpu的性能性雄,建議關(guān)閉swap。加大內(nèi)存)羹奉,隨著客戶的流量日益增大秒旋,導(dǎo)致將zabbix服務(wù)進(jìn)程強(qiáng)制OOM, Zabbix服務(wù)進(jìn)程被kill诀拭,有兩種解決的方法迁筛,如果公司為了性能著想加大內(nèi)存,如果公司資有限添加swap,如果是為了服務(wù)的效率建議使用添加內(nèi)存的方式