Shinken (programvara)
Originalförfattare | Jean Gabès |
---|---|
Initial release | 1 december 2009 |
Stabil frisättning | 2.4.3 / 10 mars 2016
|
Förvar | |
Skrivet i | Pytonorm |
Operativ system | Unix-liknande , Windows |
Typ | Nätverksövervakning |
Licens | Affero General Public License |
Hemsida |
Shinken är ett datorsystem med öppen källkod och programvara för nätverksövervakning som är kompatibelt med Nagios . Den bevakar värdar och tjänster, samlar in prestandadata och varnar användare när feltillstånd uppstår och igen när förhållandena löses.
Shinkens arkitektur syftar till att erbjuda enklare lastbalansering och hög tillgänglighet . Administratören hanterar en enda konfiguration, systemet "klipper" den automatiskt i delar och skickar den till arbetarnoder. Den har fått sitt namn från denna funktion: en Shinken är ett japanskt svärd.
Shinken skrevs av Jean Gabès som ett proof of concept för en ny Nagios-arkitektur. Han trodde att den nya implementeringen var snabbare och mer flexibel än den gamla C-koden och föreslog den som den nya utvecklingsgrenen av Nagios 4. Detta förslag avvisades av Nagios-författarna, så Shinken blev en oberoende programvara för nätverksövervakning kompatibel med Nagios .
Shinken är designad för att köras under alla operativsystem där Python körs. Utvecklingsmiljön är under Linux , men fungerar även bra på andra Unix- varianter och Windows . Reaktionsprocessen (ansvarig för att skicka aviseringar) kan också köras under Android OS. Det är fri programvara , licensierad under villkoren i Affero General Public License som publicerats av Free Software Foundation .
Översikt
- Design
- Övervakningssystem skrivet i Python
- Distribuerad arkitektur med Pyro fjärrobjekt
- Aktiva och passiva övervakningsmetoder
- Övervakning av nätverkstjänster ( SMTP , POP3 , HTTP , NNTP , ICMP , SNMP , FTP , SSH )
- Övervakning av värdresurser ( processorbelastning , diskanvändning , systemloggar) på de flesta nätverksoperativsystem , inklusive Microsoft Windows
- Använder agenter som NSClient++ , send_nsca, Check MK , Thrift TSCA
- Använda agenter som tillåter fjärrkörning av skript via Nagios Remote Plugin Executor (en inbäddad pure-Python-implementering ingår i Shinken)
- Använda agentlösa metoder som SNMP, WMI , skriptad SSH eller HTTP(SSL)
- Skicka kontrollresultat direkt från program som använder Apache Thrift (Java, Python, Ruby)
- Övervakning av system som har möjlighet att skicka insamlad data via ett nätverk till specifikt skrivna plugins (Ex. VMWare ESX3/4/5, Collectd)
- Fjärrövervakning stöds genom SSH- eller SSL- krypterade tunnlar.
- Enkel plugin-design som tillåter användare att enkelt utveckla sina egna tjänstekontroller beroende på behov, genom att använda valfria verktyg ( skalskript , C++ , Perl , Ruby , Python , PHP , C# , etc.)
- Möjlighet att beräkna KPI:er från tillstånds- och prestationsdata i Shinken-kärnan för att skapa nya tjänster och prestandadata
- Systemets externa gränssnitt
- Livestatus- kompatibelt API som visar tillstånd, konfiguration och prestandainformation
- Exporterar data till grafiska moduler ( PNP4Nagios , Graphite och andra tillgängliga)
- Stöd för inbyggt meddelande-API för Android
- Exportera händelsedata till loggningssystem med syslog och RabbitMQ
- Moduler kan kopplas till alla Shinken-processer för att utöka dess kapacitet på mycket effektiva sätt
- Prestanda
- Parallelliserade service- och värdkontroller tillgängliga
- Möjlighet att distribuera pollerprocesser på flera servrar
- Stöd för implementering av lätt redundanta och lastbalanserade övervakningsvärdar
- Stöd för flera redundanta externa gränssnitt
- Möjlighet att dirigera kontroller till dedikerade pollers (processer specialiserade på att köra plugins)
- Korrelation och business intelligence
- Förälder barn relationer
- Möjlighet att definiera nätverksvärdhierarki med hjälp av "förälder"-värdar, vilket möjliggör upptäckt av och särskiljning mellan värdar som är nere och de som inte går att nå
- 1 till 1, 1 till N
- Friformsberoendeträd mellan vilken tjänst och värd som helst
- 1 till 1, 1 till N
- Stöd för integrerade affärsregler
- Beräknade värdar eller tjänster som representerar tillståndet för en företagstjänst
- Stöd för att tilldela en affärseffekt till varje tjänst, värd eller affärsprocess
- Förmåga att visa endast rotproblem
- Ändrar automatiskt underordnade tillstånd till okänd när förälder är otillgänglig
- Förälder barn relationer
- Andra funktioner
- Kontaktaviseringar när service- eller värdproblem uppstår och blir lösta (via e-post , personsökare , SMS eller någon användardefinierad metod via plugin-system)
- Möjlighet att definiera händelsehanterare som ska köras under service eller värdhändelser för proaktiv problemlösning
- Möjlighet att omdefiniera allvarlighetsgraden av en varning baserat på regler för reguljära uttryck
- Stöd för UTF-8-objektnamn
- Stöd för övervakning av flera kunder med en administrationspunkt
- Stöd för återkommande driftstopp genom attributet maintenance_period
- Avancerat mallsystem med arv och överbelastning
Arkitektur
En Shinken-installation består av flera processer, var och en optimerad för en specifik uppgift.
- Skiljedomare
- Laddar konfigurationsfilerna och skickar värd- och tjänstobjekten till schemaläggaren(erna)
- Watchdog för alla andra processer och ansvarig för att initiera failovers om ett fel upptäcks
- Kan dirigera kontrollresultathändelser från en mottagare till dess tillhörande schemaläggare
- Arbiter-moduler
- Det finns en mängd olika moduler för att manipulera konfigurationsdata
- Schemaläggare
- Planerar nästa körning av värd- och servicekontroller
- Skickar kontroller till pollaren(erna)
- Beräknar tillstånd och beroenden
- Tillämpar KPI-utlösare
- Tar upp meddelanden och skickar dem till reaktionsdeltagarna
- Uppdaterar lagringsfilen (eller andra lagringsbackends)
- Skickar mäklare (interna händelser av alla slag) till mäklaren/mäklarna
- Poller
- Får kontroller från schemaläggaren, kör plugins eller integrerade pollermoduler och skickar resultaten till schemaläggaren
- Pollermoduler
- NRPE - Utför aktiv datainsamling för Nagios Remote Plugin Executor-agenter
- SNMP - Utför aktiv datainsamling för SNMP-aktiverade agenter (i betastadiet med PySNMP)
- CommandPipe - tar emot passiv status och prestandadata från check_mk-skriptet, kommer inte att bearbeta kommandon
- Reactionner
- Får meddelanden och händelsehanterare från schemaläggaren, kör plugins/skript och skickar resultaten till schemaläggaren
- Mäklare
- Har flera moduler (körs vanligtvis i sina egna processer)
- Hämtar broks från schemaläggaren och vidarebefordrar dem till mäklarmodulerna
- Moduler avgör om de hanterar en brok beroende på en broks typ (logg, initial tjänst/värdstatus, kontrollresultat, start/slut driftstopp, ...)
- Moduler bearbetar broks på många olika sätt. Några av modulerna är:
- webui - uppdaterar objekt i minnet och tillhandahåller en webbserver för det ursprungliga Shinken GUI
- livestatus - uppdaterar objekt i minnet som kan frågas med hjälp av ett API av GUI:er som Thruk eller Check_MK Multisite
- grafit - exporterar data till en grafitdatabas
- ndodb - uppdaterar en ndo-databas (MySQL eller Oracle)
- simple_log - centralisera loggarna för alla Shinken-processer
- status_dat - skriver till en status.dat-fil som kan läsas av den klassiska cgi-baserade GUI
- Mottagare (valfritt)
- Tar emot data passivt från lokala eller fjärranslutna protokoll
- Passiv datamottagning som buffras innan vidarebefordran till lämplig Scheduler (eller Arbiter för globala kommandon)
- Tillåter att skapa en "farm" av mottagare för att hantera en hög frekvens av inkommande händelser
- Moduler för mottagare
- NSCA - NSCA-protokollmottagare
- Collectd - Ta emot prestandadata från insamlade via nätverket
- CommandPipe - Ta emot kommandon, statusuppdateringar och prestandadata
- TSCA - Apache Thrift-gränssnitt för att skicka kontrollresultat med en höghastighetsbuffrad TCP-anslutning direkt från program
- Webbtjänst - En webbtjänst som accepterar http-inlägg med kontrollresultat (beta)
Det kan finnas flera instanser för varje typ av process, antingen på en enda värd eller spridda över många värdar. Att lägga till fler processer fördelar automatiskt belastningen.
Shinken WebUI är det inbyggda webbgränssnittet som ger nästan realtidsstatusinformation, konfiguration, interaktion, en instrumentpanel för att visualisera trenddata från Graphite-databaser och visualisering av beroendeträdsgrafer.
Shinken skonfUI är ett oberoende webbgränssnitt som används för att hantera upptäcktsprocessen och konfigurationsuppgifter.
CLI-skriptet shinken-admin används för att hantera aspekter av systemet på processnivå under körning, såsom att ändra loggningsnivåer och få hälsorapporter.
Install.sh CLI-skriptet är det huvudsakliga hanteringsskriptet för att installera, ta bort eller uppdatera Shinken och dess tillhörande programvara.
Utveckling
Shinken har ett öppet och testdrivet utvecklingssätt , där bidragsgivare till projektet tillhandahåller nya funktioner, kodrefaktorering, kodkvalitet och buggfixning.
Källkoden finns på GitHub . En integrationsserver kör tester vid varje commit och djupgående tester med jämna mellanrum.
Shinken -dokumentationen finns på en wiki.
Se även
externa länkar
- Officiell hemsida
- Monitoring Plugins hemmet för de officiella plugins
- (på tyska) Linux Magazin -artikel om Shinken i tyska Linux Magazin 04/2010