Com­pu­ter­mo­ni­to­ring met Check_MK

De Rasp­ber­ry Pi mo­ni­tort ser­vers en net­werk­dien­sten met Check_MK

C’t Magazine - - Inhoud 11/2018 - Pe­ter Sie­ring

Om de wer­king van al­le func­ties van een ser­ver in de ga­ten te hou­den en de be­las­ting bij te hou­den, kun je de soft­wa­re Check_MK ge­brui­ken. Op een Rasp­ber­ry Pi werkt dat zon­der al te­veel ex­tra ener­gie te ver­brui­ken, maar bo­ven­al on­af­han­ke­lijk van de ge­mo­ni­t­or­de sys­te­men.

Ach­ter Check_MK zit meer dan een en­kel pro­gram­ma, het is een he­le soft­wa­re-stack. Daar kun je net­werk­dien­sten re­gel­ma­tig mee con­tro­le­ren, bij­voor­beeld de be­reik­baar­heid van een web­ser­ver. Als er een fout op­treedt, wordt de ad­mi­ni­stra­tor ge­a­lar­meerd. Daar­naast ver­za­melt Check_MK vi­ta­le da­ta zo­als de be­las­ting van pro­ces­sors en hoe vol de schij­ven zijn, zo­dat je dit ook ach­ter­af kunt be­kij­ken.

Het in­stel­len van het mo­ni­to­ren van af­zon­der­lij­ke ser­vi­ces is dank­zij een au­to­ma­ti­sche her­ken­ning re­de­lijk mak­ke­lijk. Check_MK is als Raw Edi­ti­on gra­tis voor po­pu­lai­re x64-Li­nux-dis­tri­bu­ties. Voor het in­stal­le­ren van de soft­wa­re vol­staat een en­kel pak­ket. Voor het fi­ne­tu­nen moet je wel een beet­je met de com­mand­line van Li­nux aan de slag. De rest van het con­fi­gu­re­ren en het be­he­ren kan dan in de ei­gen we­bin­ter­fa­ce van Check_MK.

De Raw Edi­ti­on van Check_MK wordt door Ma­thi­as Ket­ter Gm­bH als opens­our­ce ont­wik­keld en be­schik­baar ge­steld voor x86-sys­te­men. Chris­ti­an Ho­fer heeft de Raw Edi­ti­on van Check_MK sinds de­cem­ber 2017 ge­com­pi­leerd voor de Rasp­ber­ry Pi, of­te­wel ARM, en stelt die als in­stal­la­tie­pak­ket be­schik­baar op GitHub. Hij heeft het een beet­je ge­mo­di­fi­ceerd door de SSL-he­a­der aan te pas­sen, een paar ti­me-outs wat ho­ger te zet­ten en een pro­gram­ma weg te la­ten dat voor ARM niet be­schik­baar is. De­len van zijn pat­ches zijn op zich weer in de Check_MK-co­de te­rug te vin­den. Ho­fer maakt de pak­ket­ten voor zijn ei­gen ge­bruik en laat an­de­ren daar­in deel­ne­men.

De kant-en-kla­re bi­nai­re pak­ket­ten voor ARM hin­ken in­mid­dels wat ach­ter de ac­tu­e­le re­lea­se aan. Op het mo­ment van schrij­ven is de laat­ste re­lea­se 1.4-Re­lea­se p35. Chris­ti­an Ho­fer werkt op dit mo­ment nog aan de door de ma­kers van Check_MK als sta­bie­le va­ri­ant vrij­ge­ge­ven ver­sie 1.5. Dat le­vert op zich geen ech­te be­per­king op bij het mo­ni­to­ren van klei­ne­re in­stal­la­ties om­dat de Check_MK-ma­kers op dit mo­ment voor­al op het ge­bied van de cloud aan de soft­wa­re sleu­te­len.

Voor­be­rei­dend werk

Om Check_MK een beet­je fat­soen­lijk te kun­nen ge­brui­ken, is min­stens een Rasp­ber­ry Pi 2 no­dig, een Pi 1 of Ze­ro is af te ra­den. Als ba­sis­ima­ge vol­staat Rasp­bi­an Stretch Li­te, waar we bij de vol­gen­de stap­pen dan ook van­uit gaan. De GUI-ver­sie van Rasp­bi­an zou al­leen on­no­di­ge re­sour­ces kos­ten, het groot­ste deel van de be­die­ning van Check_MK ge­beurt so­wie­so la­ter via de brow­ser van­af een client­sys­teem. Na de eerste start van de Rasp­ber­ry Pi moet je hem een vast ip-adres ge­ven en de SSH­ser­ver in­stal­le­ren:

su­do apt-get up­da­te su­do apt-get in­stall open-ssh­ser­ver

Daar­na kun je met een SSH-client ver­bin­ding ma­ken met de Rasp­ber­ry Pi. Down­load het in­stal­la­tie­pak­ket van Check_MK van GitHub, de link daar­voor vind je via de link aan het eind van dit ar­ti­kel. Op het mo­ment van schrij­ven vol­stond het om het com­man­do

wget htt­ps://github.com/ chrisss404/check-mk-arm/re­lea­ses/ down­load/1.4.0p35/check-mk-raw-

1.4.0p35_0.stretch_armhf.deb

uit te voe­ren. In­stal­leer het ge­down­lo­a­de pak­ket dan met

su­do dpkg -i check-mk-raw-1.4.0p35_0.

stretch_armhf.deb

Rasp­bi­an zal dan gaan stei­ge­ren dat het be­paal­de af­han­ke­lijk­he­den niet kan op­los­sen, maar met

su­do apt-get in­stall -f

is dat op een af­doen­de ma­nier weer op te los­sen.

Als laat­ste moet je dan nog Null­mai­ler of een al­ter­na­tief als Ssmtp in­stal­le­ren [1]. Dat pro­gram­ma wordt door Check_MK ge­bruikt om je bij ge­von­den pro­ble­men via e-mail te in­for­me­ren. Voor een Gmail­ac­count be­werk je na het in­stal­le­ren van Null­mai­ler met

su­do apt-get in­stall null­mai­ler

recht­streeks de bij­be­ho­ren­de con­fi­gu­ra­tie­be­stan­den. Bij de vra­gen naar de op­ties tij­dens het in­stal­le­ren van het pak­ket kun je tel­kens vol­staan met een druk op En­ter.

Zet in het be­stand /etc/null­mai­ler/ ad­mi­nad­dr het com­ple­te e-mail­adres waar mails naar­toe moe­ten wor­den ge­stuurd waar­voor je Rasp­ber­ry Pi geen an­de­re ont­van­gers kent. Voeg in het be­stand /etc/ null­mai­ler/re­mo­tes de vol­gen­de re­gels toe, en pas ze aan je ei­gen toe­gangs­ge­ge­vens aan voor Gmail:

smtp.gmail.com smtp --port=465 --auth-lo­gin --user=user123

--pass=ge­heim --ssl

Bij de eerste con­fi­gu­ra­tie­stap moet je op de com­mand­line een zo­ge­he­ten si­te in­stel­len. Daar ko­men de op­drach­ten voor het mo­ni­to­ren te staan. Bo­ven­dien is dat la­ter han­dig voor up­da­tes en om te ex­pe­ri­men­te­ren. Si­tes zijn na­me­lijk te ko­pi­ë­ren en bij wij­ze van test te up­da­ten naar nieu­we ver­sies – dat is heel han­dig om de ge­vol­gen van een up­da­te op een staps­ge­wij­ze ma­nier in te kun­nen schat­ten. Het aan­ma­ken van een si­te is op de com­mand­line met twee com­man­do's voor el­kaar:

su­do omd cre­a­te test­si­te su­do omd start test­si­te

Het eerst com­man­do le­vert de ge­ge­vens voor toe­gang via een brow­ser op: een ge­ge­ne­reerd wacht­woord, de stan­daard ge­brui­kers­naam 'cmk­ad­min' en een url voor de we­bin­ter­fa­ce. De host­naam moet je ver­van­gen door het ip-adres van de Rasp­ber­ry Pi als dat bin­nen je net­werk no­dig is. Het pad daar­ach­ter komt over­een met de naam die je voor de si­te hebt op­ge­ge­ven. Volg de aan­wij­zing dat je het wacht­woord moet ver­an­de­ren met­een op. De he­le tekst­brij ach­ter Check_MK kun je af­bre­ken met Ctrl+D.

Dan res­teert er nog één ac­tie op de com­mand­line. Die dient er­voor om op de Rasp­ber­ry Pi zelf een Check_ML-agent te in­stal­le­ren, die door de mo­ni­to­ringsoft­wa­re re­gel­ma­tig be­vraagd zal wor­den. Het daar­voor be­no­dig­de pak­ket is bij het in­stal­le­ren al op de Rasp­ber­ry Pi te­recht ge­ko­men en is via de we­bin­ter­fa­ce te down­lo­a­den. Via de con­so­le is het ech­ter veel een­vou­di­ger te in­stal­le­ren:

su­do dpkg -i /opt/omd/ver­si­ons/ 1.4.0p35.cre/sha­re/check_mk/agents/

check-mk-agent_1.4.0p35-1_all.deb

Het pad en de be­stands­naam moet je daar­bij aan­pas­sen aan de ge­ïn­stal­leer­de ver­sie.

Voor­de­len

Van­af nu kun je in de brow­ser ver­der: meld je aan bij je si­te. Voeg als eerste de Rasp­ber­ry Pi zelf toe als te mo­ni­to­ren sys­teem. Klik daar­voor on­der 'WATO Con­fi­gu­ra­ti­on' in de lin­ker ko­lom op 'Hosts' en dan rechts op 'Cre­a­te new host'. Geef als host­na­me 'lo­cal­host' op en klik op 'Sa­ve & go to Ser­vi­ces'. Dan be­gint de au­to­ma­ti­sche ser­vi­ce­her­ken­ning – een van de ster­ke pun­ten van Check_MK. In de bo­ven­ste rij knop­pen klik je op 'Fix all mis­sing/va­nis­hed' om de ge­von­den ser­vi­ces te mo­ni­to­ren. Der­ge­lij­ke wij­zi­gin­gen gaan bij Check_MK niet met­een wer­ken, maar die wor­den ver­za­meld en pas ge­ac­ti­veerd als je daar op­dracht voor geeft. Dat doe je met twee muis­klik­ken: de eerste op de oran­je '2 chan­ges' en de twee­de op 'Ac­ti­va­te af­fec­ted' (ook oran­je ge­kleurd).

Als je ver­vol­gens bij 'Views' bij het deel 'Hosts' op het sub­me­nu 'All Hosts' klikt, laat Check_MK een lijst zien van de sys­te­men die op dat mo­ment ge­con­fi­gu­reerd zijn om te mo­ni­to­ren – daar staat in eerste in­stan­tie dan al­leen het item 'lo­cal­host' voor je Rasp­ber­ry Pi. Als je na een paar mi­nu­ten op 'lo­cal­host' klikt, zie je wel­ke dien­sten Check_MK op het sys­teem her­kent heeft en au­to­ma­tisch in de mo­ni­to­ring heeft op­ge­no­men. Kijk in al­le rust uit­ge­breid naar de ge­de­tail­leer­de in­for­ma­tie, zo­als de au­to­ma­tisch ge­maak­te gra­fie­ken voor de cpu-be­las­ting en der­ge­lij­ke.

Elk ge­mo­ni­t­ord de­tail heet 'Ser­vi­ce'. Voor de gang­ba­re dien­sten stelt Check_MK au­to­ma­tisch alarm­gren­zen in, bij­voor­beeld voor hoe vol de be­stands­sys­te­men mo­gen zijn. Er zijn al­tijd twee drem­pel­waar­den: bij de eerste wordt een waar­schu­wing ge­stuurd, bij de twee­de een fout­mel­ding. Via re­gels, die met­een voor meer­de­re hosts kun­nen gel­den, zijn die in­ge­stel­de stan­daar­den te over­ru­len. Voor een in­ten­sief ge­bruik van Check_MK moet je er­voor zor­gen dat je goed be­kend bent met de re­gels, groe­pen en tags en de wis­sel­wer­kin­gen daar­tus­sen. Een in­lei­dend ar­ti­kel staat in de vo­ri­ge c't [2], meer de­tails over Check_MK kun je vin­den bij de uit­voe­ri­ge do­cu­men­ta­tie er­van (zie de link on­der­aan dit ar­ti­kel). Die in­for­ma­tie heb je bij de vol­gen­de stap­pen ech­ter niet no­dig.

Om er­voor te zor­gen dat Check_MK je via e-mail kan in­for­me­ren, moet je twee din­gen doen: ten eerste moet je voor de ge­brui­ker cmk­ad­min een e-mail­adres in­stel­len en ten twee­de moet je Check_MK toe­stem­ming ge­ven om al­le ge­brui­kers met e-mail­adres­sen be­rich­ten te mo­gen stu­ren. De e-mail­adres­sen kun je in­stel­len bij 'WATO' bij het sub­me­nu 'Users' door op het pot­lood­pic­to­gram voor cmk­ad­min te klik­ken en het veld 'Email ad­dress' in te vul­len. De op­tie die Check_MK naar al­le ge­brui­kers e-mails laat stu­ren, vind je bij 'WATO' on­der 'No­ti­fi­ca­ti­ons' in het deel 'Con­tact Se­lec­ti­on' als ' All users with an email ad­dress'. Ook die ac­ties moet je eerst ac­ti­ve­ren voor­dat ze daad­wer­ke­lijk werk­zaam zijn.

Om an­de­re hosts met Check_MK te mo­ni­to­ren, moet je daar­op ook een Check_ MK-agent in­stal­le­ren. Die kun je van­uit de we­bin­ter­fa­ce bij 'WATO Con­fi­gu­ra­ti­on' in het deel 'Mo­ni­to­ring Agents' down­lo­a­den voor veel plat­for­men. De agents zijn er als DEB- en RPM-pak­ket­ten voor het in­stal­le­ren op de gang­ba­re Li­nux-dis­tri­bu­ties

en als MSI-be­stand voor Win­dows. Daar­bij be­vat­ten de Li­nux-pak­ket­ten be­vat­ten pro­ces­soron­af­han­ke­lij­ke shell-co­de. Het in­stal­le­ren daar­van vol­staat om de agents in het lo­ka­le net­werk aan de praat te krij­gen.

Veel agents zijn scripts, bij­voor­beeld voor macOS. Be­waar die als be­stand op het doel­sys­teem (bij­voor­beeld in /usr/ lo­cal/bin), maak ze uit­voer­baar en zorg er­voor dat aan­roe­pen van bui­ten­af met die scripts ver­bon­den wor­den. Bij Li­nux ge­bruikt Check_MK daar in­mid­dels Sy­s­temd voor, vroe­ger was dat xi­net. Op een Mac zou je de launch-dae­mon en een daar­op af­ge­stemd plist-be­stand kun­nen ge­brui­ken. Met SSH gaat het vaak een stuk mak­ke­lij­ker. Hoe dat con­creet gaat, staat in [2].

Een van een agent voor­zien sys­teem voeg je net als de Rasp­ber­ry Pi zelf als Host toe met WATO en ver­vol­gens laat je de au­to­ma­ti­sche ser­vi­ce­her­ken­ning draai­en. Net als al­le con­fi­gu­ra­tie­ver­an­de­rin­gen moet je dit eerst ex­pli­ciet ac­ti­ve­ren. Als je ex­tra dien­sten op een host wilt mo­ni­to­ren, moet je eerst con­tro­le­ren of er geen bij­pas­sen­de hulp­jes op de WATO-pa­gi­na bij de 'Mo­ni­to­ring Agents' staan. Er zit­ten in­mid­dels al veel ta­ken stan­daard in.

Een Check_MK-agent kan daar­naast scripts als zo­ge­he­ten plug-ins ge­brui­ken. Die wor­den op de te mo­ni­to­ren host in een spe­ci­a­le di­rec­to­ry ge­zet, bij Li­nux nor­maal ge­spro­ken /usr/lib/chech_m­k_a­gent/ plu­gins. Als je een der­ge­lij­ke plug-in toe­voegt door hem in die di­rec­to­ry te zet­ten, moet je hem wel met chmod +x uit­voer­baar ma­ken. Daar­na moet je de we­bin­ter­fa­ce van Check_MK een nieu­we zoek­tocht naar ser­vi­ces la­ten uit­voe­ren. De plug-ins ver­schij­nen even­eens on­der WATO in het deel 'Mo­ni­to­ring Agents'.

Toe­pas­sing

Ook hosts waar­op geen agent te in­stal­le­ren valt, bij­voor­beeld een switch, kun je met Check_MK mo­ni­to­ren. Daar­bij ko­men dan de 'Check Plu­gins' om de hoek kij­ken. Die ha­len da­ta op van het be­tref­fen­de ap­pa­raat. Af­han­ke­lijk van de mo­ge­lijk­he­den ge­brui­ken ze daar stan­daard­pro­to­col­len voor zo­als SNMP, maar ook prop­ri­ë­tai­re me­tho­den voor be­heer­pro­gram­ma's. Die moe­ten dan op de Check_MK-host draai­en. Daar­bij loop je met een Rasp­ber­ry Pi wel­licht te­gen de plat­form­gren­zen aan, als een der­ge­lijk Check Plu­gin bi­nai­re x86-co­de wil uit­voe­ren. Maar dat zul­len grens­ge­val­len zijn, waar­voor een Rasp­ber­ry Pi waar­schijn­lijk toch al het ver­keer­de plat­form is.

De ster­ke pun­ten van Check_MK zit­ten in het mo­ni­to­ren van meer sta­ti­sche sys­teem­ge­ge­vens. Als je met con­tai­ners werkt, kun je be­ter de daar­voor be­doel­de mo­ni­to­ring­op­los­sin­gen als Pro­me­theus, In­fluxdb of Gra­fa­na ge­brui­ken. Al moet ge­zegd wor­den dat Check_MK op dat ge­bied ook aar­dig aan het bij­le­ren is en bij de com­mer­ci­ë­le ver­sies de vi­ta­le ge­ge­vens aan In­fluxdb kan door­ge­ven. Dank­zij het au­to­ma­tisch her­ken­nen van de te mo­ni­to­ren dien­sten en het in­stel­len daar­van, ben je met Check_MK snel waar je zijn wil. Daar­mee on­der­scheidt het zich ook enorm van op­los­sin­gen op ba­sis van Na­gi­os of Icin­ga – daar lig­gen wel de roots van Check_MK, maar ze spe­len vol­gens de ont­wik­ke­laars geen be­lang­rij­ke rol meer.

We heb­ben Check_MK op een Rasp­ber­ry Pi bij wij­ze van test ge­du­ren­de een groot aan­tal we­ken en­ke­le tien­tal­len ser­vi­ces la­ten mo­ni­to­ren. Het sys­teem werk­te met een kwa­li­ta­tief goe­de sd-kaart op het mo­ment van schrij­ven nog steeds zon­der pro­ble­men. Bij eer­de­re po­gin­gen met min­der goe­de hard­wa­re gaf de sd-kaart er na een paar da­gen al de brui aan. Voor een con­ti­nu ge­bruik moet je in elk ge­val dan ook re­gel­ma­tig een back-up in­plan­nen om er­voor te zor­gen dat je de ge­log­de vi­ta­le ge­ge­vens niet ver­liest. Dat kan ook weer met een omd-com­man­do: omd bac­kup test­si­te /tmp/test­si­te.tar slaat al­le da­ta op in een be­stand, dat je met omd res­to­re la­ter weer in een nieu­we si­te kunt her­stel­len.

Het zou ech­ter ook een op­tie kun­nen zijn om de in­ten­sief be­schre­ven com­ple­te be­stands­boom /opt/omd ge­woon in zijn ge­heel op een via usb aan­ge­slo­ten ssd te be­wa­ren.

Check_MK ge­bruikt 'si­tes' om mo­ni­to­ring­op­drach­ten te bun­de­len. Het aan­ma­ken en be­he­ren wordt ge­daan met het omd-com­man­do op de com­mand­line.

De Rasp­ber­ry Pi mo­ni­tort zich­zelf en helpt je op die ma­nier bij de eerste stap­pen.

Newspapers in Dutch

Newspapers from Netherlands

© PressReader. All rights reserved.