You are on page 1of 20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

denniskanbier.nl

WeblogpessoaldeDennisKanbiersobrelinux,middlewareemais

Casa

RPMS

GitHub

Sobre

MonitoramentodiscoI/Ousando
Zabbix
Dennis/02defevereirode2014

ComoconfiguraromonitoramentodedisconoLinuxemZabbix.Omodelopadrodo
LinuxemZabbixoferecemonitoramentosobreopreenchimentodeseusdiscos,
masnomuitosobreautilizaoreal.Porexemplo,elenodizerquantas
gravaesporsegundoestosendomanipuladosporumdiscooupartio.
Noentanto,estetipodeinformaopodeservitalparaasadedeseusservidores.
Osdiscossoquasesempreumgargalo,entoeugostariademanterumolho
sobreeles.
AinspiraoparaesteblogpostealgumcdigodeweblogRenaldoMaclons'.
Meta:
MonitorarautilizaodosmeusdispositivosdediscoemservidoresLinux.Ser
preguiosocomoumsysadminsempreumacoisaboa,porissoestouindopara
implementardescobertadebaixonveldosmeusdispositivosdediscoecriarum
modeloparaircomele.
NsestaremosconfigurandooagenteZabbix,queestsendoexecutadoemminhas
caixasdeLinuxparaapoiaradescobertadebaixonveldosmeusdispositivosde
disco,eositensqueprecisamosmonitorarnohost.
Paraosrpidosstarters:
1.Faaodownloaddomodelo.
2.ImporteomodeloemsuainstnciaZabbix
3.AtiveoscriptdedescobertadebaixonvelsobreosagentesZabbix
4.EnriqueaoagenteZabbixcomestesuserParameters
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

1/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

5.Adicioneomodeloaumhosteteste
Paraorestodevocs,porfavor,continuealerparaentendercomoomodelofeito
equaisosscriptsderealmentefazer.
MeioAmbiente:
ZabbixServidor/Agentverso:2.2.1
VersoLinux:RHEL5/6
ScriptspersonalizadosZabbixcaminho:/opt/Zabbix/
ArquivospersonalizadosUserParameter:/etc/zabbix/zabbix_agentd.d/
Ativandoautodescobertadosdispositivos:
EucrieiumpequenoesimplesscriptPerlparafazeradescobertadebaixonvel
dosdispositivosemumservidor.ElapodeserencontradaemGitHub.Nos
servidoreslinuxondeoagenteestexecutandooZabbixprecisobaixaroscripte
dizeraoagenteparauslo:

$Mkdirp/opt/Zabbix/linux
$Cd/opt/Zabbix/linux
$Wgethttps://raw2.github.com/dkanbier/zabbixlinux/master/LLD/queryDisks.pl
$Chmod+xqueryDisks.pl
$ChownRZabbix:Zabbix/opt/Zabbix

Oscriptestagoranolugar.Vocpodeexecutlo,sequiser,embreveelevaiolhar
em/proc/diskstatsefiltrarosnomesdedispositivos.Emseguida,eleimprimelos
paraatelaemformatoJSON,porqueZabbixgostadefalaremJSON:

./queryDisks.pl
{
"Dados":[
{"{}#DISK":"Ram0"},
{"{}#DISK":"Ram1"},
{"{}#DISK":"Sda"},
{"{}#DISK":"Sda1"}
]
}

Iencurtadoasadaumpoucoparamantlolegvel,masessaaidia.Temos
umachave{}#DISKcomumvalordonomedodispositivo.Nosepreocupecomo
fatodequevocprovavelmenteverosdispositivosquevocnodesejamonitorar,
vamoslidarcomissoembreve,masnoaqui.
VamospermitirqueoagenteZabbixparaapoiaradescobertaautomticadediscos.
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

2/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

Abraoarquivozabbix_agentd.conf:

$Vi/etc/zabbix/zabbix_agentd.conf

Eadicioneaseguintelinhaaoqueinteressa:

UserParameter=custom.vfs.dev.discovery,/opt/zabbix/linux/queryDisks.pl

Depoisdeeditaraconfigurao,precisoretomaroagente:

$Sudoserviozabbixagentrestart

Feito!
Oagenteagoracapazdedescobrirosdispositivosdedisco.Aprimeiraparte
(custom.vfs.dev.discovery)achavequeZabbixpodeusarparaadescoberta,a
segundaparteaimplementaodessachavenoservidorLinux.Vamosnotificaro
servidorZabbixsobreissocriandoumnovomodeloeusararegradedescoberta.
ConfigureZabbixparausarachavedescobertadebaixonvel
custom.vfs.dev.discovery:
Comeceporcriarumnovomodelo.Euestareinomeandomeu"TemplateLinuxDisk
IO".AbraainterfacewebZabbixevparaConfigurao>Modelosecliqueem
"Criartemplate".
Preenchaumnomeeadicionaronovomodeloparaogrupo"visita".Emseguida,
cliqueemSalvar.

http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

3/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

AgoravocestdevoltanavisogeralTemplates.Nalinhadomodeloque
acabamosdecriar,cliqueem"Discovery"e"Criarregradedescoberta".
Preencha:
Nome:Diskdescobertadispositivo
Key:custom.vfs.dev.discovery
Descrio:DescobertadedispositivosdedisconoLinux.

http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

4/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

Agora,necessrioparalimitarostiposdedispositivosquequeremosauto
descobrir.Lembresealistaquefoiapresentadaquandovocexecutouoscript
queryDisks.pl?Esevocsdesejaadicionarosdispositivos"SD",porexemplo?
Esteolugarondeosfiltroseregrasdeexpressesregularesentramemjogo.Eu
escreviumpostsobrecomouslos,porissonovoucobrilonovamenteem
detalhe.Euvoucriarumaexpressoregularquecorrespondeapenasdispositivos
"SD"econfigurararegradedescobertadeuslo:

http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

5/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

Autodescobertadedispositivos"SD"jestoperacional.
Porfavor,estejacientedequevoctemquehabilitarachave
custom.vfs.dev.discoveryemcadahostquevocquiserusloem,colocandoo
scriptqueryDisks.plemodificaraconfiguraodoagenteZabbix.
DadescobertadeitensemZabbix:
Agora,oquesoboasregrasdedescoberta,seelesnofazemnenhumitem.Claro
quepodemosdizerZabbixtemosumdispositivosda,sda1esdb,masoqueo
ponto,senocontrolarnadacomele.
Oarquivo/proc/diskstatscontminformaesvaliosassobreseusdispositivosde
disco.Adocumentaooficialpodeserencontradoaqui.
EucoloqueiumarquivocontendoUserParameterlgicaparaextrairestainformao
noGitHub.Sevoccolocarestearquivonodiretrio"Incluir"doagenteZabbixnos
hostsquedesejamonitorarseusdiscosemquevaipermitiromonitoramento
dessasinformaescomasteclaspersonalizadas.
NascaixasdeLinuxcliente:

$Wgethttps://raw2.github.com/dkanbier/zabbixlinux/master/UserParameters/userparameter_li
$Sudomvuserparameter_linux_disks.conf/etc/zabbix/zabbix_agentd.d/
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

6/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

$Sudoserviozabbixagentrestart

Agora,oagentecapazdeextrairdadosde/proc/diskstatserelatloparaZabbix
usandoasteclasdefinidasnouserparameter_linux_disks.conf.
Vamoscriarprottiposdeitensparaqueositensparaestadadossocriados
automaticamentequandoadescobertadebaixonveliniciada.Precisamoscriar
umprottipodeitemparacadateclapersonalizadansadicionamosusandoo
arquivoparameter_linux_disks.confuser(8nototal).Euvoumostraroprocessode
criaodeum,orestoestdisponvelatravsdodownloaddomodelo
personalizadoprconfigurado.
NoZabbixinterfacedeclique"Configurao>Modelos.Nalinhadonossonovo
modelode"TemplateLinuxDiskIO"cliqueDiscovery>prottiposdoartigo>Criar
prottipoitem.
Preencha:

Nome:Disk:{}#DISK:leiturasconcluda<{}#DISKserpreenchidocomumvalorporLLD

Chave:custom.vfs.dev.read.ops[{#DISK}]<custom.vfs.dev.read.opsvemdeuserparameter_l
Unidades:L
NovoAplicativo:I/OStats

http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

7/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

CliqueemSalvar.
SevocimplantaressemodeloagoranoseuLinuxhospedaelevaiautodescobrir
seusdispositivosdedisco,apenasacrescentardispositivos"SD"comoitensde
acolhimentoeacompanhamentodototalconcludolsobreeles:

Fazerosentidodetudoisso:
Sedermosumaolhadamaisdepertocomasestatsticasqueestamosusandopara
sercolocadoemZabbix,humamaneiradetornlosaindamaisvaliosoemais
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

8/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

fcildeinterpet.
Eugostariadeterumolharmaisatentoparaosseguintesitens:

UserParametercustom.vfs.dev.read.ops=[*]#lcompletadosuccessfullly
UserParameter=custom.vfs.dev.read.sectors[*]#setoresler
UserParameter=custom.vfs.dev.write.ops[*]#escreveconcluda
UserParameter=custom.vfs.dev.write.sectors[*]#setoresescritas

Osdadosdestesitensvemdo/proc/diskstats,eosdadoslacumulativo.Por
exemplo,quandoumsetorestescritoonmerodewrite.sectorsvaisubirem1.
Ento,sensiriacolocaressesvaloresnoZabbix,sterumgrficocrescente.
Claroqueissonototalmenteintil,vocaindapodeverastendnciasem
setorescomorpido(oulento)estosendoescritosaolongodotempo.Mas,para
mim,muitomaisinteressanteonmerodesetoresgravadosporsegundo.
FelizmenteZabbixvemcomumrecursoembutidoparacalcularexatamenteisso.
Enquantoaconfiguraodeumitem,vocpodeconfigurlodovalordalojapara
"Delta(velocidadeporsegundo)".
Istoiravaliarosdadoscomo(valorprev_value)/(tempoprev_time),ondeo
valorvaloratualvalue_prevvalorrecebidoanteriormentetempoumtimestamp
prev_timetimestampdovaloranterior

Usandoestaopovaimedaronmerodesetoresgravadosporsegundo,emvez
deumvaloracumuladodetodosossetoresjescritos:

http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

9/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

Modeloeconfiguraoconcluda:
Sevocestiverinteressado,eucompleteieexportouomodeloIconstruirneste
postparaquevocpodeconfigurloemseuprprioambiente.Parafazerisso:
1.Faaodownloaddomodelo.
2.ImporteomodeloemsuainstnciaZabbix
3.CertifiquesedepermitirqueseusagentesZabbixparafazeradescoberta
automticaeteclaspersonalizadas(verpostanterior)
4.Adicioneomodeloaumhosteteste
Comosempre,sevocprecisardealgumaajudaporfavormeavise).
Monitoramentofeliz!

Compartilheisso:

Facebook

LinkedIn

Chilro

Assim:

Like
Bethefirsttolikethis.

http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

10/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

02defevereirode2014emMonitoring.

Relatedposts
InstalandooZabbixusandoDockereVagrant

AtivarSSLemconexesdecomunicaoremotaJMXparaJBossEAP6
eZabbix

JBossEAP6monitoramentoutilizandoacomunicaoremotaJMXe
Zabbix

ConstruindoumRPMpersonalizadopara

Fedora20emumMacbook8,2

ZabbixJavagateway

14pensamentossobre"discoMonitoramentoI/O
usandoZabbix"

RenaldoMaclons 02defevereirode2014s11:26
HeyDennis,
Tenhoorgulhodetersidoalmdopostdetalhadoquevocfez
aqui.certamentealgoqueeuqueriadaravoltaafazer,masos
estudosforamficandoomelhordemimultimamente.
Devodizerqueeuaprecioofatodequevocescreveuonovolume
queestaqui.
Boasorte,eobrigadoRenaldo.
Responder

qk4l 17defevereirode2014s11:45
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

11/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

Euestourecomendandoparaanalisar/proc/partiesparao
scriptdedescoberta.Nestecaso,vocdevefiltrarapenassr0.
Tambmvaiserexcelenteparamostrarsimpticonomede
partiesnoitem"nomedeexibio"
Responder

Dennis 17defevereirode2014em00:31
Obrigadopelofeedback!Euachoquevocestcerto
sobreo/proc/parties..osdispositivosdememria
RAMeloopprovavelmentenosodemuitointeresse
paraningum,maspossvelcontrollossequiser.
Eunoestoumuitocertooquevocquerdizercom
nomesamigveis,talvezvocpodedarumexemplo?
Responder

Steve 21defevereirode2014em21:48
timopost!
Depoisdeimportaroxmltemplatenohaviaelementosougrficos
associadosaomodelo.esteoesperado?Oprximopassoseria
acriaodealgunsgrficospersonalizados?
Responder

Dennis 23defevereiro,2014s12:21
Obrigado!
Omoldedestinaseaserutilizadoemcombinaocomo
scriptdedetecoautomtica.Asnicascoisasno
modelosoosdedescobertaautomticaderegrasede
itensprottipos.
Ento,sevocativaroscriptdedescobertaautomtica
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

12/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

emseusclienteseadicionaresseshostsclientesparao
meumodelonoZabbix,eleirdetectarautomaticamente
osdispositivosdediscosobreessesclienteseadicionar
itensparaeles.
Deixemesabersevocprecisadeajuda
Responder

Luca 2deabrilde2014em9:13
GrandePost!
EuestounoZabbix2.2.2(servidoreagente),masdizerqueoitem
criadopelaregradescobertanososuportadosapartirdoagente.
EstoutentandomonitorarodiscodoservidorZabbixi/oprprio.
Algumaidia?
Responder

Dennis 2deabrilde2014s09:55
Obrigado!
Temcertezaqueoarquivo
userparameter_linux_disks.confcaptadopeloagente
Zabbix?Estearquivocontmalgicaparaositens,
talvezvoctemqueincluirodiretriomanualmenteem
zabbix_agentd.conf.
Depoisdecolocaremcheque
userparameter_linux_disks.conf
/etc/zabbix/zabbix_agentd.d/paraestalinhaem
zabbix_agentd.confeseestiverfaltandoadicionlo:
Incluir=/etc/Zabbix/zabbix_agentd.d/
Seoarquivojestnolugarquevocpoderiatentar
depuraroagenteZabbix(marqueaopodedepurao
nozabbix_agentd.confeconfigurloparaDebugLevel=
4)everseoscomandossorealmenteexecutadoou
no.Seelesestoafalharporalgummotivovocdeve
vlol.
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

13/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

Deixemesabersevocpoderiafazlofuncionar,seno
euvousermaisdoquefelizemajudar!
Responder

Vicente 24deabrilde2014em14:51
Desculpemaminhapergunta...qualadiferenacom:

#Zabbix_agentdV
ZabbixAgent(daemon)v2.2.3(reviso44105)(7deAbrilde
2014)
otempodecompilao:08deabrilde201418:49:57
#Zabbix_agentdt[vfs.dev.write,operaes]
[vfs.dev.write,operaes][U|833571555]
#zabbix_agentdtvfs.dev.read[],operaes
vfs.dev.read[,][operaesu|1265275596]

Ou,porunidade:

#Zabbix_agentdtvfs.dev.write[/dev/sda,operaes]
vfs.dev.write[/dev/sda,operaes][u|58977406]
#zabbix_agentdtvfs.dev.write[/dev/sda,setores]
vfs.dev.write[/dev/sda,setores][u|1665554779]
#zabbix_agentdtvfs.dev.read[/dev/sda,operaes]
vfs.dev.read[/dev/sda,operaes][u|194753874]
#zabbix_agentdtvfs.dev.read[/dev/sda,setores]
vfs.dev.read[/dev/sda,setores][u|82136555896]

Aparte"descoberta"parecesermuitotil,mas,comooutro,eu
noseiseeuentenderoqueadiferenacomparmetrosde
agentepadro.
GraasDennis.
Responder

Dennis 24deabrilde2014em15:13
OiVicente,obrigadopeloseucomentrio.Euachoque
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

14/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

quandoeuescrevioroteiroeuspegueicadabitde
informaosensvelminhadisposiodo/proc/
diskstats,umavezquefornecemaisinformaesdoque
apenasasoperaesdeleitura/gravao.Euachoque
vocpoderiamuitobemusarositenspadropara
dev.writeedev.read,desdequepodemlidarcoma
entradadada(ouseja,"sda")queeuachoqueelesfazem.
Responder

Vicente 24deabrilde2014em15:29
Entendi!ObrigadoDennis.
Responder

ThiagoMZ 26demaiode2014em11:56
H,
EueracapazdecolocaraLLDatrabalharmuitobem..Obrigado!
Maseuestoucomumproblema..Eunoconsigousaros
dispositivosRegexpDiskparaadescoberta,
eumudloa...
1xvdf1[resultadoverdadeiro]
2^(XVD.*)$[resultadoverdadeiro]>>>DiskAmazon
3^(.sd*)$[resultadoverdadeiro]
Nofuncionou...
Entoeucoloqueixvdf1emRegexpdohospedeiro...efuncionou!
Algumaidia?
Responder

Vista 27dejunho,2014em10:12
H,
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

15/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

Euinstaleiomodeloeosscripts.Maszabbixmedumerro:
OvalordeveserumobjetoJSON.
EstouexecutandooZabbix2.2.3easadade./queryDisks.pl=
{
"dados":[
{
"{}#DISK":"ram0"
}
,
{
"{}#DISK":"ram1"
}
,
{
"{}#DISK":"ram2"
}
,
{
"{}#DISK":"ram3"
}
,
{
"{}#DISK":"ram4"
}
etc...
Vista
Responder

BlaineSchmidt 26dejulhode2014s10:09
OtextoresultanteumobjetoJSON.Iverificadapor
meiodecolarotextoemhttp://jsonlint.com.
Meutexto:
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

16/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

{
"dados":[
{
"{}#DISK":"ram0"
},
{
"{}#DISK":"ram1"
},
{
"{}#DISK":"ram2"
},
{
"{#DISK}":"ram3"
},
{
"{}#DISK":"ram4"
},
{
"{}#DISK":"ram5"
},
{
"{}#DISK":"ram6"
},
{
"{#DISK}":"ram7"
},
{
"{}#DISK":"ram8"
},
{
"{}#DISK":"ram9"
},
{
"{}#DISK":"ram10"
},
{
"{}#DISK":"ram11"
},
{
"{}#DISK":"ram12"
},
{
"{}#DISK":"ram13"
},
{
"{}#DISK":"ram14"
},
{
"{}#DISK":"ram15"
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

17/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

},
{
"{}#DISK":"loop0"
},
{
"{}#DISK":"loop1"
},
{
"{}#DISK":"Loop2"
},
{
"{}#DISK":"Loop3"
},
{
"{}#DISK":"Laco4"
},
{
"{}#DISK":"Loop5"
},
{
"{}#DISK":"loop6"
},
{
"{}#DISK":"loop7"
},
{
"{}#DISK":"sr0"
},
{
"{}#DISK":"fd0"
},
{
"{}#DISK":"sda"
},
{
"{}#DISK":"sda1"
},
{
"{}#DISK":"sda2"
},
{
"{}#DISK":"sda5"
}
]
}
Responder

http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

18/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

Tom 21dejulhode2014em20:17
Hey,
Excelentetrabalho.Estemodelomuitotil.
Vocpoderiameajudarcomfazerumgrficoondeeupossater
todososdriversioporsegundoemumgrfico?
Responder

Deixeumaresposta
Seuendereodeemailnoserpublicado.Camposobrigatriossomarcados*
Nome*

Email*

Site

Comentrio

VocpodeusarestasHTMLtagseatributos:<ahref=""title=""><abbrtitle
=""><titlesigla=""><b><blockquotecite=""><cite><code><del
datetime=""><em><i><qcite=""><strike><strong>

Publicarcomentrio

Notifiquemedeacompanhamentocomentriosporemail.
Notifiquemedenovospostsporemail.
http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

19/20

28/11/2014

MonitoramentodiscoI/OusandoZabbix|denniskanbier.nl

Search

Categorias
Nuvem
Fedora
Logging
Middleware
Monitorao
Redhat

SigamenoTwitter
Tweetsdedenniskanbier

Postsrecentes
InstalandooZabbixusandoDockereVagrant
InstalandoLogstashnoRHELeCentOS6
AtivarSSLemconexesdecomunicaoremotaJMXparaJBossEAP6eZabbix
Fedora20emumMacbook8,2
MonitoramentodiscoI/OusandoZabbix

PoweredbyWordPress|Tema:ExplicaporKonstantinKovshenin

http://www.denniskanbier.nl/blog/monitoring/monitoringdiskiousingzabbix/

20/20

You might also like