Glad it's Friday! Friends, today we continue the series of publications dedicated to the course , as classes in the new group for the course will begin at the end of next week. So, let's get started!

Monitoring is enkel. This is a well-known fact. Start Nagios, run NRPE on the remote system, configure Nagios on TCP port 5666 for NRPE and you have monitoring.
It's so easy that it's uninteresting. Now you have basic metrics for CPU time, disk subsystems, and RAM, which come configured by default in Nagios and NRPE. But this isn't really 'monitoring' as such. It's just the beginning.
(Typically, you install PNP4Nagios, RRDtool, and Thruk, set notifications in Slack, and head straight to nagiosexchange, but let's skip that for now).
Good monitoring is actually quite complex; you really need to know the ins and outs of the application you are monitoring.
Is monitoring complicated?
Any server, whether Linux or Windows, will, by definition, serve some purpose. Apache, Samba, Tomcat, file storage, LDAPâall these services are more or less unique in one or more ways. Each has its own function, its own features. There are different ways to obtain metrics, KPIs (key performance indicators), that interest you when the server is under load.

Photo by till
(I wish my dashboards were painted in neon blue colorsâdreamily sighingâ... hmm...)
Any software that provides services must have a mechanism for collecting metrics. Apache has the module mod-status, which displays the server status page. Nginx has stub_status. Tomcat has JMX or specialized web applications that show key metrics. MySQL has the command 'show global status' etc.
So why donât developers embed such mechanisms into the applications they create?
Is it only developers who do this?
A certain level of indifference to embedding metrics is not limited to developers. I've worked in companies where applications were developed using Tomcat without providing any of their metrics, no service activity logs except for the general Tomcat error logs. Some developers generate an abundance of logs that are meaningless to the system administrator unlucky enough to read them at 3:15 AM.

Photo by till
Systemingenjörer som möjliggör för dessa produkter att slÀppas mÄste ocksÄ bÀra ett visst ansvar för situationen. FÄ systemingenjörer har tid eller intresse att försöka fÄ meningsfulla mÄtt frÄn loggar, utan kontexten av dessa mÄtt och möjligheten att tolka dem i ljuset av applikationens aktivitet. Vissa förstÄr inte vilken nytta de kan fÄ av detta, utöver indikatorer som "nÄgot för nÀrvarande (eller snart) Àr fel".
Det finns ett behov av att förÀndra tÀnkesÀttet kring vikten av mÄtt, vilket mÄste ske inte bara bland utvecklare utan ocksÄ bland systemingenjörer.
För varje systemingenjör som behöver bÄde reagera pÄ kritiska hÀndelser och sÀkerstÀlla att de inte intrÀffar, Àr bristen pÄ mÄtt vanligtvis ett hinder för detta.
Men systemingenjörer grubblar oftast inte över koden, utan tjÀnar pengar för sitt företag. De behöver ledande utvecklare som förstÄr vikten av systemingenjörens ansvar i att upptÀcka problem, öka medvetenheten om prestandaproblem och liknande.
Den hÀr devops-grejen
Devops-mentaliteten beskriver synergin mellan utvecklare (dev) och drift (ops). Vilket företag som helst som hÀvdar att de "gör devops" mÄste:
- sĂ€ga nĂ„got som de förmodligen inte gör (en anspelning pĂ„ ett meme frĂ„n filmen "Prinsessan bruden" â "Jag tror inte att det betyder det du tror att det betyder!")
- uppmuntra en stÀllning för stÀndig produktförbÀttring.
Du kan inte förbÀttra en produkt och veta att den har förbÀttrats om du inte vet hur den fungerar just nu. Du kommer inte att kunna förstÄ hur produkten fungerar om du inte förstÄr hur dess komponenter, de tjÀnster den Àr beroende av, dess centrala smÀrtpunkter och flaskhalsar fungerar.
Om du inte övervakar potentiella flaskhalsar, kommer du inte att kunna följa tekniken "Fem varför" nÀr du skriver Postmortem. Du kommer inte att kunna samla allt pÄ en skÀrm för att se hur produkten fungerar eller ta reda pÄ hur den ser ut "normal och glad".
Vridning till vĂ€nster, TILL VĂNSTER, JAG SADE, VĂĂĂĂĂĂNTEâ
För mig Àr en av de centrala principerna inom Devops "Vridning till vÀnster" (shift left). Vridning till vÀnster i detta sammanhang betyder att flytta möjligheten (inte ansvaret, och bara möjligheterna) att göra det som systemingenjörer vanligtvis bryr sig om, till exempel att skapa prestandametrik, anvÀnda loggar mer effektivt osv., i början av programvaruleveransens livscykel (Software Delivery Life Cycle).

Photo by till
Programvaruutvecklare bör ha möjlighet att anvÀnda och förstÄ de övervakningsverktyg som företaget anvÀnder för att övervaka i alla dess former, metriker, loggning, övervakningsgrÀnssnitt och, viktigast av allt, övervaka hur deras produkt fungerar i produktion. Du kan inte tvinga utvecklare att investera tid och kraft i övervakning förrÀn de kan se metrikerna och pÄverka hur de ser ut, hur produktÀgaren presenterar dem för deras CTO vid nÀsta briefing, osv.
Kort sagt
- Led hÀsten till vattnet. Visa utvecklarna hur mÄnga problem de kan undvika för sig sjÀlva, hjÀlp dem att identifiera rÀtt KPI:er och metriker för sina applikationer, sÄ att det blir mindre skrik frÄn produktÀgaren som fÄr skÀll av teknikchefen (CTO). Dra dem fram i ljuset, mjukt och lugnt. Om det inte fungerar, köp, hota och övertala antingen dem eller produktÀgaren att snabbt genomföra insamlingen av dessa metriker frÄn applikationerna, och sedan rita diagram. Detta kommer att vara svÄrt, eftersom det inte kommer att betraktas som en prioritet, och produktens fÀrdplan kommer att ha mÄnga vÀntande projekt för genomförande som genererar intÀkter. SÄ du kommer att behöva en ekonomisk motivering för att rÀttfÀrdiga tid och resurser som investeras i att införa övervakning i produkten.
- HjĂ€lp systemingenjörerna att fĂ„ sin sömn. Visa dem att det Ă€r bra att anvĂ€nda checklistan "slĂ€pp en release" för alla produkter som slĂ€pps. Att sĂ€kerstĂ€lla att alla applikationer i produktion Ă€r tĂ€ckta med metrik kommer att bidra till en god natts sömn, vilket gör att utvecklarna kan se vad och var nĂ„got fungerar dĂ„ligt. ĂndĂ„ Ă€r det det rĂ€tta sĂ€ttet att irritera och frustrera varje utvecklare, produktĂ€gare och teknisk chef att ihĂ€rdigt sĂ€tta kĂ€ppar i hjulen och motstĂ„. Ett sĂ„dant beteende kommer att pĂ„verka releasedatumet för varje produkt, om man vĂ€ntar till sista minuten igen, sĂ„ gör om justeringen Ă„t vĂ€nster och integrera dessa frĂ„gor i projektplanen sĂ„ snart som möjligt. Om det Ă€r nödvĂ€ndigt, smyga dig in pĂ„ produktmöten. BĂ€r fejkade mustascher och hatt eller nĂ„got liknande, det misslyckas aldrig. Rapportera dina problem, visa tydliga fördelar och sprid budskapet.
- Se till att bÄde utvecklarna (dev) och driften (ops) förstÄr betydelsen och konsekvenserna av att produktmetrik gÄr in i "den röda zonen". LÄt inte driften vara den enda vakten som ser till att produkten fungerar, se till att utvecklarna ocksÄ Àr delaktiga i detta (#productsquads).
- Loggar Àr fantastiska, men metrik Àr det ocksÄ. Sammanfoga dem och lÄt inte dina loggar bli skrÀp i en enorm, brinnande boll av meningslöshet. Förklara och visa utvecklarna varför ingen annan Àn dem kommer att kunna förstÄ deras loggar, visa dem hur det Àr att titta pÄ meningslösa loggar klockan 3:15 pÄ morgonen.

Photo by till
Det var allt för nu. Nytt material lanseras nÀsta vecka. Om du vill veta mer om kursen, hÀlsar vi dig vÀlkommen till , som Àger rum redan pÄ mÄndag. Och just nu ser vi traditionsenligt fram emot dina kommentarer.
KĂ€lla: habr.com
