一颖医、修改密碼及中文版
作為一只英語(yǔ)不好的運(yùn)維备籽,這里悄悄改成了中文版,如果大家英語(yǔ)好的話看英文版即可钢属,英語(yǔ)不好就改了吧徘熔,畢竟中文版比較適合初學(xué)者更快的學(xué)習(xí)~
更改完畢記得點(diǎn)擊下方更新
二、創(chuàng)建主機(jī)及主機(jī)群組
先定義一個(gè)主機(jī)群組:
然后就可以添加主機(jī)了:
- 設(shè)置完成后淆党,點(diǎn)擊添加酷师。這個(gè)主機(jī)就出現(xiàn)在列表中了
三、監(jiān)控項(xiàng)(items)
1. 首先創(chuàng)建三個(gè)應(yīng)用集
- 略過(guò)創(chuàng)建另外兩個(gè)應(yīng)用集
2. 定義監(jiān)控項(xiàng):
任何一個(gè)被監(jiān)控項(xiàng)染乌,如果想要能夠被監(jiān)控山孔,一定要在 zabbix-server 端定義了能夠連接至 zabbix-agent 端,并且能夠獲取命令荷憋√ǖ撸或者在 agent 端定義了能夠讓 server 端獲取命令。一般都是內(nèi)建的命令勒庄,都對(duì)應(yīng)的有其名字串前,被我們稱之為
key
。下面監(jiān)控的是cpu的每秒中斷次數(shù)
in 每秒CPU的中斷次數(shù)实蔽,包括時(shí)間中斷
- 關(guān)于key值荡碾,我們可以直接在網(wǎng)頁(yè)上設(shè)置(服務(wù)器自動(dòng)執(zhí)行),也可以使用命令行命令(手動(dòng)執(zhí)行)來(lái)獲染肿啊:
[root@zabbix-server zabbix]# zabbix_get -s 192.168.19.130 -p 10050 -k "system.cpu.intr" 1101429
- 在我們的agent端坛吁,也可以使用命令來(lái)查看
intr
的速率變化:
zabbix會(huì)收集歷史數(shù)據(jù)(所有的數(shù)據(jù)都成為過(guò)去,O(∩_∩)O哈n砩小)拨脉,以及還會(huì)收集每小時(shí)的平均數(shù)據(jù)作為趨勢(shì)數(shù)據(jù),每小時(shí)才收集一次塑径,所以trends(趨勢(shì))暫用的資源很小女坑,
2.1 定義一個(gè)不帶參數(shù)的監(jiān)控項(xiàng)
設(shè)置完以后,點(diǎn)擊更新统舀,會(huì)自動(dòng)跳轉(zhuǎn)至下圖頁(yè)面:
定義完成匆骗,我們回到所有主機(jī)劳景,等待5秒,我們可以看到碉就,我們node1節(jié)點(diǎn)后面的選項(xiàng)已經(jīng)有變成綠色的了:如果不亮記得刷新
我們也可以回到我們的儀表盤盟广,可以看到,我們的監(jiān)控項(xiàng)有一個(gè)處于啟用狀態(tài):
那么瓮钥,我們的數(shù)據(jù)在哪里呢筋量?可以點(diǎn)擊
最新數(shù)據(jù)
,把我們的none1節(jié)點(diǎn)添加至主機(jī)碉熄,應(yīng)用一下桨武,就可以看到下面的狀態(tài)了:
可以看到,我們還有一個(gè)圖形頁(yè)面锈津,點(diǎn)進(jìn)去則可以看圖形的分布:
事實(shí)上呀酸,我們關(guān)注的指標(biāo)有很多種,我們一一添加進(jìn)來(lái)即可琼梆。
2.2 定義一個(gè)帶參數(shù)的帶參數(shù)的監(jiān)控項(xiàng)
剛剛我們定義的監(jiān)控項(xiàng)是很簡(jiǎn)單的性誉,指定一個(gè)
key
即可,但是有些監(jiān)控項(xiàng)是帶有參數(shù)的茎杂,這樣一來(lái)错览,我們的監(jiān)控項(xiàng)就有更多的靈活性。接下來(lái)煌往,我們來(lái)簡(jiǎn)單說(shuō)明一個(gè)需要帶參數(shù)的監(jiān)控項(xiàng):
圖中的[]
就是需要參數(shù)的意思倾哺,里面的值即為參數(shù),帶<>
為不可省略的携冤。我們就以這個(gè)例子來(lái)說(shuō)明:
if
表示是接口名悼粮;<mode>
表示是哪種模式,包括但不限于:packets(包)曾棕、bytes(字節(jié))扣猫、errors(錯(cuò)誤)、dropped(丟包)(上述內(nèi)容可以通過(guò)ifconfig
查看)
- 同樣的翘地,我們也可以通過(guò)命令行來(lái)查看:
[root@zabbix-server zabbix]# zabbix_get -s 192.168.19.130 -p 10050 -k "net.if.in[ens33,packets]" 36836
我們來(lái)看看網(wǎng)頁(yè)的顯示情況:
3. 快速定義類似指標(biāo)
- 如果我們想要定義一個(gè)類似的指標(biāo)申尤,我們可以直接選擇克隆,然后簡(jiǎn)單的修改一點(diǎn)點(diǎn)參數(shù)即可衙耕。
- 就以我們剛剛定義的
net.if.in[ens33,packets]
為例昧穿,如果我們想要在定義一個(gè)out
的進(jìn)行如下操作即可:
如果我們要以字節(jié)為單位也要定義的話,進(jìn)行同樣的操作:
如果有需要的話也可以把byte再克隆成out橙喘。就不一一演示了~
可以看一下时鸵,我們現(xiàn)在已經(jīng)定義的指標(biāo):
我們來(lái)到 檢測(cè)中 ---> 最新數(shù)據(jù),可以看到,我們定義的監(jiān)控項(xiàng)都已經(jīng)有值了:
4. 刪除監(jiān)控項(xiàng)
- 如果有一個(gè)監(jiān)控項(xiàng)饰潜,我們用不上了初坠,就可以刪除掉。但是如果你直接刪除的話彭雾,默認(rèn)數(shù)據(jù)是會(huì)留下的碟刺,所以我們要先清除數(shù)據(jù),然后再刪除薯酝,具體操作步驟如下:
配置-->主機(jī)-->監(jiān)控項(xiàng)-->選擇一個(gè)不要的監(jiān)控項(xiàng)
四半沽、觸發(fā)器(trigger)
1. 簡(jiǎn)介
當(dāng)我們的采集的值定義完了以后,就可以來(lái)定義觸發(fā)器了吴菠。
我們觸發(fā)器的定義是:界定某特定的 item 采集到的數(shù)據(jù)的非合理區(qū)間或非合理狀態(tài)者填。通常為邏輯表達(dá)式。一般做葵,我們?cè)u(píng)定采樣數(shù)值是否為合理區(qū)間的比較穩(wěn)妥的方法是——根據(jù)最后N次的平均值來(lái)判定結(jié)果幔托;這個(gè)最后N次通常有兩種定義方式:
- 最近N分鐘所得結(jié)果的平均值
- 最近N次所得結(jié)果的平均值
注:能用數(shù)值保存的就不要使用字符串
2. 觸發(fā)器表達(dá)式
基本的觸發(fā)器表達(dá)式格式如下所示:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
server
:主機(jī)名稱;key
:主機(jī)上關(guān)系的相應(yīng)監(jiān)控項(xiàng)的key蜂挪;function
:評(píng)估采集到的數(shù)據(jù)是否在合理范圍內(nèi)時(shí)所使用的函數(shù),目前觸發(fā)器所支持的函數(shù)有avg(平均)、count(計(jì)數(shù))嗓化、change(變化)棠涮、date(日期)、dayofweek(星期)刺覆、delta(增量)严肪、diff、iregexp谦屑、last(最近)驳糯、max(最大值)、min(最小值)氢橙、nodata(無(wú)數(shù)據(jù))酝枢、now(現(xiàn)在)、sum(總和)等parameter
:函數(shù)參數(shù)悍手;大多數(shù)數(shù)值函數(shù)可以接受秒數(shù)為其參數(shù)帘睦,而如果在數(shù)值參數(shù)之前使用“#”做為前綴咕宿,則表示為最近幾次的取值项戴,如sum(300)表示300秒內(nèi)所有取值之和绳姨,而sum(#10)則表示最近10次取值之和闻牡;
3. 定義一個(gè)觸發(fā)器
我們可以查看一下
rate of packets(in)
的值钠糊,并以其為標(biāo)準(zhǔn)確定我們的非正常的值:
圖中我們可以看出箩张,我們的最大值為7雹洗,最小值為4纺弊,平均值為4.59筛璧。這樣的話逸绎,我們可以定義5以上的都是非正常的值惹恃。
下面我們來(lái)定義一個(gè)觸發(fā)器:
右上角創(chuàng)建觸發(fā)器
生成完畢后,我們就點(diǎn)擊頁(yè)面下方的添加桶良,即成功定義了一個(gè)觸發(fā)器座舍,同時(shí)頁(yè)面自動(dòng)跳轉(zhuǎn):
然后我們?nèi)タ匆幌挛覀儎倓偠x了觸發(fā)器的那個(gè)監(jiān)控項(xiàng):
我們可以看出,這個(gè)里面就有了一根線陨帆,就是我們剛剛定義的值曲秉,超過(guò)線的即為異常狀態(tài),看起來(lái)非常直觀疲牵。
但是承二,現(xiàn)在即使超過(guò)了這根線,也僅僅會(huì)產(chǎn)生一個(gè)觸發(fā)器事件而不會(huì)做其他任何事纲爸。因此亥鸠,我們就需要去定義一個(gè)動(dòng)作(action)。
五识啦、定義動(dòng)作(action)
1. 簡(jiǎn)介
我們需要去基于一個(gè)對(duì)應(yīng)的事件為條件來(lái)指明該做什么事负蚊,一般就是執(zhí)行遠(yuǎn)程命令或者發(fā)警報(bào)。
第一颓哮,我們要事先定義一個(gè)媒介家妆,第二,還要定義這個(gè)媒介上用戶接收消息的端點(diǎn)(當(dāng)然冕茅,在用戶上伤极,我們也稱之為用戶的媒介)。
我們可以去看一下系統(tǒng)內(nèi)建的媒介類型:
這些是大的媒介類型姨伤,里面還有更多的細(xì)分哨坪,我們以
同樣的,同一個(gè)類型我們也可以定義多個(gè)乍楚,還是以
2. 定義一個(gè)媒介(media)
我們還是以
- 媒介定義好了词渤,那么我們?cè)趺床拍軌蛉缓笥脩艚邮盏洁]件呢牵舱?比如讓我們的Admin用戶接收郵件
進(jìn)入 管理 ---> 用戶 ---> Admin ---> 報(bào)警媒介
我們來(lái)添加一條進(jìn)來(lái):
添加過(guò)后是這樣的:
然后我們更新就可以了。
一個(gè)用戶可以添加多個(gè)接收的媒介類型缺虐。
3. 定義一個(gè)動(dòng)作(action)
動(dòng)作是在某些特定條件下觸發(fā)的芜壁,比如,某個(gè)觸發(fā)器被觸發(fā)了,就會(huì)觸發(fā)我們的動(dòng)作慧妄。
- 我們基于redis來(lái)定義一個(gè)動(dòng)作顷牌。首先,我們?cè)赼gent端使用yum安裝一下
redis
:[root@zabbix-client ~]# yum -y install epel-release; yum -y install redis
修改一下配置文件:
[root@zabbix-client ~]# vim /etc/redis.conf bind 0.0.0.0 #不做任何認(rèn)證操作
修改完成以后塞淹,我們啟動(dòng)服務(wù)窟蓝,并檢查端口:
[root@zabbix-client ~]# systemctl start redis [root@zabbix-client ~]# netstat -lntp|grep redis tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 2434/redis-server 0
接著,我們就可以去網(wǎng)站上來(lái)定義相關(guān)的操作了:
- 創(chuàng)建一個(gè)
redis
應(yīng)用集:
3.1 定義監(jiān)控項(xiàng)
該監(jiān)控項(xiàng)已成功添加饱普。
我們可以去查看一下他的值:
3.2 定義觸發(fā)器
定義好了監(jiān)控項(xiàng)以后运挫,我們亦可來(lái)定義一個(gè)觸發(fā)器,當(dāng)服務(wù)有問(wèn)題的時(shí)候套耕,我們才能及時(shí)知道:
配置 ---> 主機(jī) ---> zabbix-client ---> 觸發(fā)器(trigger)---> 創(chuàng)建觸發(fā)器
該觸發(fā)器已成功添加谁帕。我們?nèi)ゲ榭匆幌?/p>
我們來(lái)手動(dòng)關(guān)閉redis服務(wù)來(lái)檢測(cè)一下:
[root@zabbix-client ~]# systemctl stop redis
- 可以看到,現(xiàn)在已經(jīng)顯示的是問(wèn)題了冯袍。并且有持續(xù)的時(shí)間匈挖,當(dāng)我們的服務(wù)被打開(kāi),會(huì)轉(zhuǎn)為已解決狀態(tài):
[root@zabbix-client ~]# systemctl start redis
3.3 定義動(dòng)作(action)
- 我們可以看出康愤,還需要在虛擬機(jī)上進(jìn)行兩項(xiàng)操作儡循,一是修改sudo配置文件使zabbix用戶能夠臨時(shí)擁有管理員權(quán)限;二是修改zabbix配置文件使其允許接收遠(yuǎn)程命令征冷。我們進(jìn)行如下操作:
[root@zabbix-client ~]# vim /etc/sudoers ## Allow root to run any commands anywhere root ALL=(ALL) ALL zabbix ALL=(ALL) NOPASSWD:ALL #添加此行 [root@zabbix-client ~]# vim /etc/zabbix/zabbix_agentd.conf EnableRemoteCommands=1 #允許接收遠(yuǎn)程命令 LogRemoteCommands=1 #把接收的遠(yuǎn)程命令記入日志 [root@zabbix-client ~]# systemctl restart zabbix-agent
我們已經(jīng)添加了第一步需要做的事情贮折,也就是重啟服務(wù),如果重啟不成功怎么辦呢资盅?我們就需要來(lái)添加第二步:
添加完成以后,我們可以看一下:
操作添加完了踊赠,如果服務(wù)自動(dòng)恢復(fù)了呵扛,我們可以發(fā)送消息來(lái)提示:
添加完成會(huì)自動(dòng)跳轉(zhuǎn)至如下頁(yè)面:
- 現(xiàn)在我們可以手動(dòng)停止服務(wù)來(lái)進(jìn)行測(cè)試:
[root@zabbix-client ~]# systemctl stop redis
然后我們來(lái)到問(wèn)題頁(yè)面來(lái)查看,發(fā)現(xiàn)確實(shí)有問(wèn)題筐带,并且已經(jīng)解決: 等一會(huì)
也可以去agent端查看端口是否開(kāi)啟:
[root@zabbix-client ~]# netstat -lntp|grep redis tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 2744/redis-server 0 #查看郵件是否發(fā)送成功 [root@zabbix-server ~]# yum -y install mailx [root@zabbix-server ~]# mail Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/mail/root": 1 message 1 new >N 1 zabbix@localhost.loc Tue Mar 24 17:16 20/867 "Resolved: redis service down" &
可以看出端口正常開(kāi)啟今穿,我們的動(dòng)作觸發(fā)已經(jīng)完成。
補(bǔ)充:我們也可以使用腳本來(lái)發(fā)送警報(bào)伦籍,我們的腳本存放路徑在配置文件中可以找到蓝晒,定義為:AlterScriptsPath=/usr/lib/zabbix/alertscripts
然后我們將這個(gè)動(dòng)作關(guān)閉掉為后面的郵件報(bào)警做準(zhǔn)備。