第三章;發(fā)現(xiàn),自動(dòng)注冊(cè)和web監(jiān)控
十余年的五河網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整五河建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“五河網(wǎng)站設(shè)計(jì)”,“五河網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
報(bào)警實(shí)現(xiàn):應(yīng)該使用專(zhuān)用的郵箱服務(wù)實(shí)現(xiàn),使用專(zhuān)用的賬號(hào)和密碼
:使用飛信機(jī)器人,使用腳本實(shí)現(xiàn)發(fā)信息
action動(dòng)作:condition,Operation(remote,command,send message)
item:數(shù)據(jù)項(xiàng)()-->MySQL server保存在數(shù)據(jù)庫(kù)中-->web gui
key:是server向agent上獲取數(shù)據(jù)時(shí)所需要的標(biāo)記,
//一個(gè)key可以生成多個(gè)item,
//用戶(hù)參數(shù),userParameter=
//key也可以接受參數(shù)
//key和item并非是一一對(duì)應(yīng)的
trigger:激發(fā)動(dòng)作,action,//trigger定義某個(gè)item的閾值,key
動(dòng)作:condition條件,operation (remote command,send message)
完整的監(jiān)控:添加主機(jī)(主機(jī)組)-->添加item(內(nèi)置的簡(jiǎn)單圖形)--->trigger(event)-->
action(發(fā)通知(通知信息中包括大量的宏),condition,operation(step))
Item:自己建立的,
trigger:定義一個(gè)合理的范圍,超出閾值,就產(chǎn)生event(OK--->problem)
action:可以是發(fā)信息,或者遠(yuǎn)程命令,一旦恢復(fù)后,還需要problem-->OK
:通知信息大量使用宏,需要條件和操作
action:一個(gè)trigger未必就執(zhí)行Operation還要看條件,還需要滿(mǎn)足condition才可以
:在action.Operation中定義steps,定義step duratiion//報(bào)警升級(jí)的實(shí)現(xiàn)
:在action.Recovery中沒(méi)有steps
:trigger可以引起事件,但是必須滿(mǎn)足action.condition才可以
Media type:email,External Script,Jabber,SMS, //最常用的就是前兩個(gè),外部腳本可以實(shí)現(xiàn)調(diào)用外部的應(yīng)用發(fā)送信息
Meida:google_mail,our_mail等,媒介是具體的實(shí)體
//item和trigger是主機(jī)級(jí)別的,需要定義在主機(jī)或者木板上
//action:不是在主機(jī)級(jí)別因?yàn)?,?dāng)多個(gè)主機(jī)監(jiān)控同一個(gè)指標(biāo)的時(shí)候,可以定義一個(gè)action讓多個(gè)主機(jī)上的同一個(gè)指標(biāo),同事報(bào)警,::可以定義多個(gè)主機(jī)監(jiān)控同一個(gè)指標(biāo)時(shí)的操作
//action.condition可以定義host.group,trigger,hosts等同時(shí)監(jiān)控
信息的發(fā)送目標(biāo):zabbix用戶(hù),每個(gè)用戶(hù)的系方式,自定義發(fā)送的目標(biāo)
Graph:將同一類(lèi)的item數(shù)據(jù)項(xiàng),展示在同一個(gè)圖形中;
screen:將多個(gè)graph,放在一個(gè)大屏幕中
map:通過(guò)圖形定義各個(gè)節(jié)點(diǎn)間的拓?fù)潢P(guān)系,地圖
Template:批量監(jiān)控每一個(gè)主機(jī)
添加主機(jī)時(shí),直接把主機(jī)套用模板即可,建議多做幾個(gè)模板,每個(gè)模板只關(guān)注幾個(gè)指標(biāo),然后
添加主機(jī)的時(shí)候,只要多關(guān)聯(lián)幾個(gè)指標(biāo)就可以了
可以把一個(gè)主機(jī)關(guān)聯(lián)多個(gè)模板,模板可以嵌套,模板和主機(jī)是同一個(gè)級(jí)別
也可以定義item,application,trigger,graph等
discovery:
發(fā)現(xiàn)的方式:
agent
agentless,ssh,ping//無(wú)代理方式
SNMP,
JMX:專(zhuān)用于監(jiān)控java虛擬機(jī)的環(huán)境,tomcat默認(rèn)并不支持jmx,需要為toomcat添加特定的類(lèi),官網(wǎng)下載,安裝,重啟 //假如只監(jiān)控tomcat的連接數(shù),正在打開(kāi)的網(wǎng)頁(yè)數(shù),就不在需要JMX,腳本即可
zabbix的網(wǎng)絡(luò)發(fā)現(xiàn)功能可基于如下信息進(jìn)行
IP range
根據(jù)服務(wù)(FTP,SSH,WEB,POP3,IMAP,TCP)
zabbix agent發(fā)來(lái)的信息,agent可以
SNMP代理實(shí)現(xiàn)
Discovery:過(guò)程階段:discovery-->action
Discovery中的事件:
service up,service down
host up,host down
service discovered,service lost
host discovered,host lost
action:{condition,operation}添加主機(jī),關(guān)聯(lián)模板
sending notification:發(fā)送通知
adding/removing hosts:添加或者刪除主機(jī)
adding hosts to a group:添加主機(jī)到組
Enabling/disabled hosts:激活或者失效一個(gè)組
removing hosts from a group
linking hosts to/unlinking from a template
remote scripts
網(wǎng)絡(luò)發(fā)現(xiàn)中添加時(shí)會(huì)自動(dòng)創(chuàng)建interface
1.the services detected //例如基于SNMP檢測(cè)成功,則會(huì)創(chuàng)建SNMP借口
2.如果某服務(wù)同時(shí)響應(yīng)了agent和snmp則,會(huì)創(chuàng)建兩種接口
3.如果同一種發(fā)現(xiàn)機(jī)制(如agentd)返回了非唯一數(shù)據(jù),第一個(gè)接口為默認(rèn),其他的為額外接口
4.即便是某主機(jī)開(kāi)始時(shí)只有agent接口,后來(lái)又通過(guò)SNMP發(fā)現(xiàn)了它,同樣會(huì)為其添加額外的SNMP借口
5.不同主機(jī)-返回相同的數(shù)據(jù),則第一個(gè)主機(jī)將被添加,余下的主機(jī)會(huì)被當(dāng)做第一個(gè)主機(jī)的額外借口
實(shí)驗(yàn):自動(dòng)發(fā)現(xiàn),環(huán)境:zabbix_server,另外一臺(tái)主機(jī),新建立的主機(jī),
//server為200,client為101:server指定為server,zabbix-agent啟用
1.新建模板
test template
Test group //組名
//不在模板中定義,discovery,在其他地方定義
2.創(chuàng)建item--trigger--graph
//agentd的agent.conf上有:UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk '/^$1:/{print$$2}' 這個(gè)記錄,建議在server上使用agent-get命令測(cè)試效果
//zabbix_get -s 10.0.0.101-k "agent.ping" //是一個(gè)key,對(duì)方的一個(gè)key
創(chuàng)建3個(gè)item
//確保item的key能夠使用
memory.usage[MemAvailable] //*1024
memory.usage[MemFree]//*1024
memory.usage[Active]//*1024
memory.usage[Inactive]//*1024
創(chuàng)建trigger:
Name : free memory too low
Severity:High //high級(jí)別的報(bào)警
Expression:
Item:test-template: memory.usage[MemFree]
Function:Average value of a period T is < N
Last off(T) : 30 //最后30s的平均值,小于51M
TIme shift:
N: 51200 //51M小于51M為閾值,默認(rèn)單位為k
OK event generation:None //不會(huì)附帶產(chǎn)生其他的問(wèn)題
創(chuàng)建 graph
Name:mem-usage-depaly
3.配置configuration->discovery--->create discovery //discovery創(chuàng)建
Name:linux_in localhost
DIscover by proxy :No proxy
ip range :10.0.0.100-10.0.0.101 //自己的ip也要包含在內(nèi)
Delay (in sec) :120 //延遲
check New:
check type: zabbix agent
key:memory.usage[MemFree]//這里的key是作為輔助手段,添加主機(jī)
//這里的discovery只能發(fā)現(xiàn),但是發(fā)現(xiàn)完以后,選喲a(bǔ)ction
Device uniqueness criteria:IP address設(shè)備的唯一標(biāo)識(shí)符為IP
4.配置action //discovery只能發(fā)現(xiàn),但是發(fā)現(xiàn)之后做什么,他們并不知道
configuration--action-event source{discovery}---create action
action:
name:auto discovery linux in localnet
condition:Host IP.:10.0.0.100-10.0.0.101 //當(dāng)滿(mǎn)足條件的時(shí)候,才會(huì)添加到進(jìn)來(lái)
:Discovery status = Discovered //當(dāng)狀態(tài)是發(fā)現(xiàn)的時(shí)候,才會(huì)添加
:Discovery rule = linux_in_localhost //這個(gè)條件是discovery中定義的
operation:
Addhost
Link tooard templates :test server/test template
//在monitoring--dashboard上,可以看到有沒(méi)有主機(jī)發(fā)現(xiàn)
果:能夠發(fā)現(xiàn)主機(jī),但是不能夠檢測(cè)其狀態(tài)
5.//創(chuàng)建tom,加入CTO組,tom可以接受,任何類(lèi)別的郵件
Send to:tom@localhost //server有tom這個(gè)系統(tǒng)用戶(hù)
創(chuàng)建media:administrator--media types-->創(chuàng)建新的media types
創(chuàng)建user group:administrator-users-create users groups
創(chuàng)建user:
user:加入剛創(chuàng)建的組
media:
type:local media find
send to:tom@localhost
//在server上useradd tom,添加用戶(hù)tom
排錯(cuò):主要基于,configuration{hosts,actions,discovery}
注意:一定要查看是否configuration-hosts有自定義的item和riggers等
//問(wèn)題,只能在dashboard上看到有主機(jī)存活,但是不能添加到host
//最終新開(kāi)啟了一臺(tái)主機(jī)后,自動(dòng)發(fā)現(xiàn)成功
//解決方法:把a(bǔ)ction中的condition:Discovery status = Discovered刪除即可解決
//因?yàn)檫@個(gè)是已經(jīng)發(fā)現(xiàn)很久了,然后狀態(tài)已經(jīng)發(fā)生改變了,不是discovered的了
//重新啟動(dòng),
//錯(cuò)誤zabbix_get [43432]: Get value error: cannot connect to [[10.0.0.101]:10050]: [113] No route to host
[root@localhost ~]# zabbix_get -s 10.0.0.101 -k "memory.usage[MemFree]"
方法:iptable -F //關(guān)掉防火墻即可
6.定義另外一個(gè)action,auto_remove
createa actions:
name: remove host
conditions:host ip 10.0.0.100-102
:Discovery status = Lost
Operations:remove host
//在agent上systemctl zabbix-agent stop停止該服務(wù)即可
步驟小結(jié):
創(chuàng)建模板(item,trigger,graph)----創(chuàng)建discovery-----創(chuàng)建action
問(wèn)題:
自動(dòng)remove沒(méi)有
Agent自動(dòng)注冊(cè):
1.Zabbix支持active agent的自動(dòng)注冊(cè)(auto-resistration)功能,通常用于此前agent失效后的重新上線(xiàn)
2.也可基于active agent的自動(dòng)注冊(cè)機(jī)制添加被動(dòng)檢測(cè),這會(huì)通過(guò)active agent注冊(cè)時(shí)提供的“l(fā)isten IP”
和listen port進(jìn)行
3.Server端在收到自動(dòng)注冊(cè)請(qǐng)求以后以接受到的IP和Port為接口屬性
網(wǎng)絡(luò)發(fā)現(xiàn):配置active agent自動(dòng)注冊(cè)
Configuration--actions--Event source(atuo registration)--create action
Action:add host/link to template
Condition:
Operation:只用定義Operation,無(wú)需定義condition
此外:配置agent的工作屬性,并重啟agent
Zabbix-agentd..conf
ServerActive=172.16.100.15 //指向server
//以后
//然后在這里service agent stop,
Web監(jiān)控:
1.創(chuàng)建步驟的web監(jiān)控需要先定義一個(gè)web方案(scenarios)
Web方案包括一個(gè)或多個(gè)HTTP請(qǐng)求或“步驟{step}}”
步驟{step}的執(zhí)行過(guò)程按照預(yù)先定義的順序進(jìn)行執(zhí)行
2.通過(guò)web監(jiān)控可以獲取一下信息
整個(gè)web方案中,所有step的平均下載速度
失敗的step號(hào)
失敗的報(bào)錯(cuò)信息
3.在web方案的具體step中,可以按需使用如下信息
該step的下載速度
回應(yīng)時(shí)間
回應(yīng)狀態(tài)碼
4.zabbix可以檢測(cè) 獲取到的HTML頁(yè)面中是否包含預(yù)設(shè)的字符串,也可以實(shí)現(xiàn)登錄和頁(yè)面點(diǎn)擊
實(shí)現(xiàn):
1.創(chuàng)建兩個(gè)頁(yè)面 1.html,cp /var/log/message /var/log/www/html/2.html
chmod 644 /var/ww/html/*.html
2.創(chuàng)建一個(gè)新的application:name:web-test
Configuration---hosts--web:選中web
Scenario
Steps: //URL寫(xiě)對(duì),required codes:200即可
Authentication:
//在monitoring中可以看到
//Scenario自動(dòng)創(chuàng)建的item
web.test.in[Scenario,,bps],下載速度
web.test.fail[Scenario],失敗步數(shù)
web.test.error[Scenario],最后一次錯(cuò)誤碼
但是假如需要自定義的話(huà),調(diào)用的話(huà),需要替換Scenario為自己定義的web名字
例如:創(chuàng)建觸發(fā)器:
{host.web.test.fail[www.magedu.com].last(0)}#0 //最后一個(gè)錯(cuò)誤碼不為0:#不等于0,證明失敗了
{host:web.test.in[www.magedu.com].last(0)}<10000 //
//step 自動(dòng)創(chuàng)建的items
web.test.in[Scenario,Step,bps],下載速度
web.test.time[Scenario,Step] 響應(yīng)時(shí)間
web.test.error[Scenario,Step],返回碼,第幾個(gè)頁(yè)面的返回碼
{zabbix:web.test.time[www.magedu.com,Home].last(0)}>3
//在configuration-host--trigger自定義trigger的的時(shí)候:Expression中可以看到web自動(dòng)創(chuàng)建的item
舉例:
Item:10.0.0.101: Response code for step "1.html" of scenario "web-test
Function:Last(most recent)T value is > N
N:3//響應(yīng)的時(shí)間的閾值為3s
第四章:
Zabbix分布式監(jiān)控
上千臺(tái)主機(jī),多個(gè)proxy匯總消息,然后匯總到server上
Zabbix的三種架構(gòu)
Server--agent
Serer-node-agent //早期的了
Server-proxy--agent //zabbix1.8之后使用了proxy
Proxy or Node?
代理proxy用于本區(qū)域數(shù)據(jù)收集,并將數(shù)據(jù)發(fā)送給server//不分析,不監(jiān)控,也不展示
節(jié)點(diǎn)node提供完整的Zabbix server用以建立分布式監(jiān)控中的層級(jí)
//node是一個(gè)完整的監(jiān)控平臺(tái),可以直接在node上直接web
Maintenance:維護(hù)//centralised集中化,//embedded嵌入式
Proxy不提供GUI,但是node有
Node需要手動(dòng)創(chuàng)建DB,但是proxy是在server
//proxy的數(shù)據(jù)采集,是從server拿到以后自行創(chuàng)建的
Centralised configuration:集中化管理,proxy可以實(shí)現(xiàn),Node需要單獨(dú)配置每一個(gè)node需要單獨(dú)監(jiān)控的對(duì)象
Proxy 和node對(duì)比
1.node本身是一臺(tái)server,它有完整的web頁(yè)面,完整的數(shù)據(jù)庫(kù),它將數(shù)據(jù)源源不斷傳送給Master
2.Proxy只有一個(gè)proxy的daemon進(jìn)程,Proxy也有自己的數(shù)據(jù)庫(kù),但它的數(shù)據(jù)庫(kù)只會(huì)保存一定的時(shí)間的數(shù)據(jù),它與Master通信是將一批信息打包后發(fā)送到Master,Master講這些數(shù)據(jù)merge入Master數(shù)據(jù)庫(kù)
3.Mater-Proxy相比Master-Node的優(yōu)點(diǎn),
1.Proxy壓力小,數(shù)據(jù)庫(kù)之存儲(chǔ)一定時(shí)間的數(shù)據(jù)
2.Master壓力變小,數(shù)據(jù)不是源源不斷獲取,減小IO壓力
3.架構(gòu)更清晰,易維護(hù)
//DB,web,master壓力,發(fā)送數(shù)據(jù):{不斷發(fā)送|打包發(fā)送}
//proxy的話(huà):只需要導(dǎo)入schema.sq,而不需要導(dǎo)入data.sql,p_w_picpath.sql
:不需要自己配置,從server上復(fù)制配置,只負(fù)責(zé)保存一段時(shí)間的數(shù)據(jù),過(guò)一陣把數(shù)據(jù)打包發(fā)過(guò)去即可
//node的話(huà),三個(gè)數(shù)據(jù)庫(kù)都要導(dǎo)入,需要安裝web界面,還需要自己配置自己安裝哪些界面
Frontend:前端,用戶(hù)通過(guò)前段查看數(shù)據(jù)
Server-Proxy-CLient模型
//node:獨(dú)立配置,獨(dú)立DB,獨(dú)立frontend,master只負(fù)責(zé)把其匯總即可
Server:也需要收集node的配置信息,在node上修改的configuration必須要同步到server端
Server-Node-client特性:
1.解決host過(guò)多時(shí)單臺(tái)Server面臨性能瓶頸,使用多個(gè)instance(每個(gè)node),每個(gè)instance都是一個(gè)獨(dú)立的zabbix
2.支持熱插拔,node和server的連接可以隨時(shí)斷開(kāi),但不影響n(yōu)ode的正常運(yùn)行
3.Node定時(shí)給Server發(fā)送configuration,history,event
4.Server定時(shí)給Node發(fā)送configuration //Node和server需要定時(shí)同步配置等信息
5.所有配置變更只有在Node節(jié)點(diǎn)操作,不能再Server操作
6.支持樹(shù)狀結(jié)構(gòu),Node又可以是個(gè)Server
//6.意思是,node可以繼續(xù)分封,自己的子child,然后自己成為server,但是自己又是一個(gè)node
Server-Proxy-Client模型:輕量級(jí)
Proxy沒(méi)有獨(dú)立的配置文件,需要從server上,獲取server指定給自己監(jiān)控的host的item
周期性的定期發(fā)送給server,由server保存在server.DB中
Proxy不會(huì)向Server同步configuration,只會(huì)接受
Proxy的數(shù)據(jù)庫(kù)定時(shí)會(huì)將數(shù)據(jù)傳送給Server,Proxy本地?cái)?shù)據(jù)庫(kù)只保存最近沒(méi)有發(fā)送的數(shù)據(jù)
//已經(jīng)發(fā)送的數(shù)據(jù)不再保存
Zabbix Proxy的功能:
1.監(jiān)控遠(yuǎn)程區(qū)域
2.監(jiān)控那些具有非可靠通信的位置
3.減輕server的壓力
4.分布式維護(hù)
注意:
1.zabbix proxy必須使用一個(gè)單獨(dú)的數(shù)據(jù)庫(kù),就算是放在同一個(gè)主機(jī)上,也已定不能喝server使用同一個(gè)數(shù)據(jù)庫(kù)
2.proxy指向zabbix server的數(shù)據(jù)庫(kù)會(huì)破快配置信息
Zabbix的特性:
ProxyLocalBuffer和ProxyOfflineBuffer//負(fù)責(zé)配置數(shù)據(jù)保存多長(zhǎng)時(shí)間
Proxy僅僅是一個(gè)數(shù)據(jù)收集器,不分析,不處理事件,活著發(fā)送報(bào)警信息
實(shí)驗(yàn):zabbix-proxy實(shí)現(xiàn)
//ntpdate10.0.0.1時(shí)間一定要一致
Server:200,proxy:100,agent:141//讓53監(jiān)控141
Proxy:只需要安裝:zabbix-proxy,zabbix-proxy-MySQL,zabbix-agent,zabbix
1.Proxy::proxy暫時(shí)不安裝agent
安裝mysql,創(chuàng)建database:庫(kù)名,隨便起,例如:zabbix_proxy,
create database zabbix_proxy default character set utf8;
Grant all on zabbix_proxy.* to‘zbproxy’@’10.0.0.%’ identifide by‘zbproxy’
insert into mysql.user(host,password,user) value ('10.0.0.*',password('zbproxy'),'zbproxy');
mysql -uzbproxy -pzbproxy -h20.0.0.53 //測(cè)試結(jié)果
Flush privileges
//yum installhttp://mirrors.163.com/centos/7/extras/x86_64/Packages/epel-release-7-5.noarch.rpm
Yum install zabbix-proxy zabbix-proxy-mysql //安裝zabbix-proxy,會(huì)有依賴(lài),使用yum安裝
//rpm -ql zabbix-proxy-mysql,需要導(dǎo)入數(shù)據(jù)庫(kù)
Mysql :只需要導(dǎo)入schema.sql即可
mysql -uzbproxy -pzbproxy -h20.0.0.53 zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-2.4.8/create/schema.sql
//導(dǎo)入數(shù)據(jù)庫(kù)
2..proxy:vim /etc/zabbix/zabbix_proxy.conf
[root@localhost yum.repos.d]# grep -v "^#" /etc/zabbix/zabbix_proxy.conf | grep -v "^$"
Server=10.0.0.200,172.16.1.1 //允許來(lái)拉取數(shù)據(jù)的主機(jī)的IP地址
ServerActive=127.0.0.1,172.16.1.1
//主動(dòng)通知來(lái)拉取數(shù)據(jù)的主機(jī)的IP地址(只有server與agent在同一主機(jī)時(shí)才有127.0.0.1)
Hostname=server.zhou.com //需與主機(jī)名保持一致
這個(gè)配置和該機(jī)器實(shí)際的主機(jī)名沒(méi)有關(guān)系,但必須和zabbix server中添加該機(jī)器的時(shí)候的主機(jī)名一致,否則zabbix server獲取不到信息
Hostname=10.0.0.53 //這個(gè)將會(huì)被server識(shí)別
DBHost=10.0.0.53
DBName=zabbix_proxy
DBUser=zbproxy
DBPassword=zbproxy
ConfigFrequency=1 //zabbix proxy向服務(wù)器檢索配置數(shù)據(jù)信息的頻率,
DataSenderFrequency=60 //zabbix proxy發(fā)送收集的數(shù)據(jù)給zabbix server的頻率tart zabbix-proxy
netstat -tunlp | grep zabbix //它也監(jiān)控在server上,因?yàn)樗约阂蚕喈?dāng)于server端,在被動(dòng)模式下,該參數(shù)將來(lái)被忽略
3agent:.
Yum -y install zabbix-agent //安裝agent
vim /etc/zabbix/zabbix_agentd.conf
Server :指向proxy的ip,而不是server
ServerActive:指向proxy的ip,而不是server
Hostname:
UserParameter=test.Mem[*],/usr/bin/cat /proc/meminfo | awk '/$1:/{print $$2}' //提供測(cè)試用
systemctl enable zabbix-agent
systemctl start zabbix-agent
4.在server 上添加被監(jiān)控主機(jī),
首先得讓server知道有一個(gè)proxy,
Administration--proxy--create proxy
Proxy name: 盡量使用ip,除非能夠解析到主機(jī)
Proxy mode:
Active:proxy主動(dòng)到server拉取配置文件 ,一般使用
Passive:等到server想自己發(fā)發(fā)送配置文件
Host:不要添加其他主機(jī)
在proxy上測(cè)試agent錯(cuò)誤:
[root@localhost yum.repos.d]# zabbix_get -s 10.0.0.141 -k "test.if"
zabbix_get [21365]: Get value error: cannot connect to [[10.0.0.141]:10050]: [113] No route to host
解決方式: //很有可能是虛擬機(jī)的問(wèn)題
1.iptables -F;iptables-save
2.Setenforce 0
3.Shutdown -h now
4.Pkill zabbix-agent ;systemctl restart zabbix-agent
然后,添加被監(jiān)控主機(jī):create hosts
Host name:10.0.0.141
Visible name:agent-141
New group:proxy-discovery:1
Agent interfaces:10.0.0.141
Monitored by proxy:10.0.0.53 //由53代為監(jiān)控
//在monitoring--Dashboard上的Hosts tatus上看結(jié)果,就能發(fā)現(xiàn)已經(jīng)能夠檢測(cè)得到
創(chuàng)建一個(gè)item進(jìn)行測(cè)試:
注意事項(xiàng):
//tail /var/log/zabbix/zabbix_proxy.log //隨時(shí)查看日志
1.proxy的配置文件的Hostname= //必須和Administrator--proxy中定義的主機(jī)名一致
2.通過(guò)agent的server和server active都需要指定為proxy的ip
3.加快server和proxy的同步
zabbix-proxy.conf //配置文件
ConfigFrequency=1 //拉取配置文件,默認(rèn)是3600s
DataSenFrequency=1 //默認(rèn)是1s
ProxyLocalBuffer=0 //本地?cái)?shù)據(jù)保存多長(zhǎng)時(shí)間,0:不保存
ProxyOfflineBuffer=1 //proxy聯(lián)系不到server后數(shù)據(jù)保存多長(zhǎng)時(shí)間,1:1小時(shí)
//agent上有自定義監(jiān)控mysql的UserParameter
//在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
項(xiàng)目案例:
ConfigFrequency=300 DataSenderFrequency=60 //只需要在proxy上配置
Zabbix-server上需要的操作:添加proxy,添加host.proxy為主動(dòng)模式,
Agent上修改配置后,需要重啟agent服務(wù)
關(guān)鍵是在zabbix server的前端創(chuàng)建代理節(jié)點(diǎn)的名字時(shí),該名字應(yīng)和zabbix代理配置文件中指定的Hostname值相同.配置zabbixproxy的配置文件zabbix_proxy.conf,
該文件中有兩個(gè)重要的參數(shù):
ConfigFrequency=60 #zabbix proxy 向服務(wù)器檢索配置數(shù)據(jù)信息的頻率,在被動(dòng)模式下該參數(shù)將被忽略
DataSenderFrequency=60 #zabbix proxy發(fā)送收集的數(shù)據(jù)給zabbix server的頻率
配置完畢
現(xiàn)在server上,建立proxy,然后建立host.proxy
問(wèn)題:server從proxy上獲取不到agent的數(shù)據(jù)
1.server端與proxy端時(shí)間不同步 //ntpdate 120.25.108.11
2.server端分配的緩存不夠
3.server端分配的線(xiàn)程不夠
4.server端負(fù)載比較大{CPU,IO,MEM}
1.查看zabbix_server有沒(méi)有出現(xiàn) Zabbix poller processes more than 75% busy 告警
2.htop iotop iostat //查看服務(wù)器的負(fù)載情況
3. vim /usr/local/zabbix/etc/zabbix_server.conf
StartPollers=500
StartPollersUnreachable=50
StartTrappers=30
StartDiscoverers=6
CacheSize=1G
CacheUpdateFrequency=300
StartDBSyncers=20
HistoryCacheSize=512M
TrendCacheSize=256M
HistoryTextCacheSize=80M
ValueCacheSize=1G
4. crontab -e
*/3 */1 * * * /usr/sbin/ntpdate -u 202.120.2.101 &> /dev/null
重啟server端和proxy服務(wù)
兩個(gè)問(wèn)題:
1.Too many processes on Zabbix server
2.Server從proxy上獲取不到數(shù)據(jù) //agent上server指向proxy
3.報(bào)警機(jī)制的實(shí)現(xiàn)
4.Zabbix-node-agent實(shí)現(xiàn)
Proxy常見(jiàn)問(wèn)題:
1.proxy的Hostname和server的web里面配置的名稱(chēng)不一樣。這樣一定要注意了無(wú)論是proxy和server 還是agent和server Hostname都要相同的
附件:zabbix_proxy.conf文件詳解
1.ProxyMode=0 //0位默認(rèn),主動(dòng),1位被動(dòng)
2.Server=IP地址 #說(shuō)明:此參數(shù)用于設(shè)置zabbix Server端IP地址。在主動(dòng)模式下,二級(jí)代理將采集到的數(shù)據(jù)傳送到此IP所在服務(wù)端。#但被模式下,此參數(shù)被忽略
3.#說(shuō)明:system.hostname是ZABBIX內(nèi)置的一個(gè)自動(dòng)獲取主機(jī)名的方法,為了方便配置,建議打開(kāi)此參數(shù)而關(guān)閉Hostname參數(shù)#。
4. HostnameItem=system.hostname //system.hostname是ZABBIX內(nèi)置的一個(gè)自動(dòng)獲取主機(jī)名的方法,為了方便配置,建議打開(kāi)此參數(shù)而關(guān) 閉Hostname參數(shù)#。
5.LogFileSize=1 //當(dāng)日志文件達(dá)到多少M(fèi)時(shí)便輪轉(zhuǎn)并自動(dòng)覆蓋
6. StartPollersUnreachable=1 //說(shuō)明:用于設(shè)置諸如SNMP STRAPPER場(chǎng)景提交來(lái)的數(shù)據(jù)的接收進(jìn)程數(shù),若客戶(hù)機(jī)SNMP TRAPPER技術(shù)較多,建議加大此參數(shù)值
7.//http://www.bkjia.com/xtzh/926118.html 地址
//server從proxy上接受不到信息的解決
注:在server上添加proxy后,server才能收到配置信息
//tail /var/log/zabbix/zabbix_proxy.log 這樣才能收到 消息
然后會(huì)自動(dòng)建立一條
Agent:
Server:為proxy
Serveractive:為proxy
Proxy:server為zabbix.server
/etc/zabbix/proxy/zabbix_proxy.conf
Server:是zabbix-server的ip
/etc/zabbix/proxy/zabbix_agent.conf
Server
Server.active //都是zabbix--server的ip地址
//需要說(shuō)明的是,理論沒(méi)有問(wèn)題,只是虛擬機(jī)的問(wèn)題