Weekend Prosjekt: Overvåk Server med StatusNet Updates

Sommeren er nesten her; vil du virkelig ønsker å bruke den sitter innendørs og overvåke helsen til en som kjører server eller nissen? Snarere enn å trekke seg selv til at skjebnen, hvorfor ikke sette opp systemet til å poste viktige meldinger, fra vanlige statusoppdateringer å nødmeldinger, gjennom en mikrobloggingtjeneste som Identi.ca? Det er enklere enn du kanskje tror.


Det er flere forskjellige måter du kan gjøre bruk av en mikrobloggingtjeneste å holde et øye på serveren din (eller, for den saks skyld, stasjonær maskin), avhengig av hva slags melding du ønsker å motta. Du kan hale loggfiler og gjenta produksjonen i en feed, kjøre en periodisk cron jobb å samle inn statistikk og sende ut resultatene som en form for " hjerterytme monitor, " eller har batchprosesser sende meldinger når de fullfører. Du kan også konfigurere eksisterende åpen kildekode overvåking tjenester for å bruke tjenesten direkte, eller via e-post- eller SMS-gatewayer. Systemadministratorer har brukt Twitter offentlige API for å gjøre denne typen ting i år, selvfølgelig. Søke på nettet returnerer score til treff for de fleste kombinasjoner av " twitter, " " skjerm, " og en bestemt tjeneste navn. StatusNet er en gratis programvare tjeneste som kan gjøre hva Twitter gjør og mer. Identi.ca er den mest populære offentlige StatusNet eksempel, men programvaren er også tilgjengelig for nedlasting som en rask-installere alternativ på felles web hosting-tjenester, og som en kommersiell tjeneste for bedrifter og store organisasjoner. Twitter og StatusNet APIer For kompatibilitet, implementerer StatusNet Twitter API, inkludert noen udokumenterte funksjoner. I nesten alle tilfeller, for å tilpasse en Twitter overvåking script legge oppdateringsmeldinger til Identi.ca eller din personlige Myserver.status.net eksempel er en grei operasjon, fordi det er sannsynlig å bruke bare de grunnleggende konteringsmetoder. Men før du kommer i gang, er det en god idé å se på noen av de andre forskjeller. Først lar Twitter enhver bruker å kjøre en " privat " statusoppdatering feed, hvor innleggene er ikke synlige for allmennheten, og alle abonnements forespørsler må godkjennes av kontoinnehaveren. Identi.ca tilbyr ikke dette alternativet i dag, det er heller ikke gitt i de frie StatusNet sky alternativer; en av de veiledende prinsippene for Identi.ca var å gjøre alt innhold tilgjengelig under åpen, Creative Commons lisensvilkårene. Derfor bør du ikke fyre av sensitiv informasjon selskapet til en Identi.ca fôr, fordi det vil
være offentlig. På den annen side, kan du kjøre din egen instans av StatusNet på din egen web server, og holde det så privat som du vil, inkludert å gjøre oppdateringen tidslinje bare synlig for innloggede brukere, og selskaper som er interessert i server avlytting kan finne en av den private, betalt StatusNet offer som er egnet for den samme grunn. I tillegg, for de med sikkerhet bekymringer, merk at StatusNet gjør
støtter SSL-autentisering, akkurat som Twitter. Distinkte StatusNet tilfeller kan passere meldinger back-og-tilbake til hverandre, noe som gir deg mer fleksibilitet. Du kan sette opp en feed for din server monitor på en StatusNet forekomst og abonnere på den med normal Identi.ca konto. En grunn kan det være lurt å gjøre det på er at StatusNet ikke er begrenset til 140 tegn per melding begrensning brukes av Twitter, slik at du kan velge en lengre fra eksisterende offentlige instanser (for eksempel 280.status.net, eller ubegrenset .status.net), eller sette opp en privat forekomst og fikse din egen melding lengde grenser. Du trenger heller ikke å bekymre deg for en privat StatusNet eksempel går ned plutselig om Ashton Kutcher blir arrestert, og i praksis de offentlige tjenester som Identi.ca ikke har lidd av " mislykkes hval " brudd som herjer Twitter på en jevnlig basis. StatusNet gir også mer interoperabilitet med andre meldingsformater enn Twitter gjør. Twitter kan du koble en mobiltelefon til en konto slik at du kan sende og motta statusoppdateringer SMS. Identi.ca støtter SMS i tillegg, pluss sende og motta meldinger med XMPP instant messaging (som Jabber eller Google Talk-kontoer), og via e-post. Andre StatusNet tjenester kan eller ikke kan støtte alle disse metodene; de er valgfrie plugins som kan aktiveres av administrator. Twitter gir ganske komplett dokumentasjon av det opprinnelige API på sitt nettsted. Men StatusNet har også en side på sin dokumentasjon wiki dedikert til å spore sin egen gjennomføring av API, slik at det er det beste stedet å lete hvis du får problemer. Basic oppdatering, er imidlertid en del av kaken. Sende din første oppdateringer via API Den enkleste måten å komme i gang er med curl, slik at du kan sende API-forespørsler direkte fra kommandolinjen. For å sende en statusoppdatering forespørsel om Identi.ca, kjøre curl -u theUsername: thePassword http://identi.ca/api/statuses/update.xml -d status = 'Her går Nuthin', erstatte brukernavn og passord. Identi.ca vil svare med en XML-respons, inkludert statusoppdateringen selv og bruker kontoinformasjon. Bryte ned denne forespørselen, brukernavn: er passord parametre fulgt av kallet til API metoden selv, som bygger på API roten av StatusNet server. For Identi.ca, dette er http://identi.ca/api.
For en annen StatusNet eksempel, det kan være forskjellig, avhengig av hvor du installerte StatusNet. Den offisielle dokumentasjonen anbefaler at du i stedet bruke kontoen ID-nummer i stedet for brukernavnet; konto-ID er inkludert i XML svar på statusoppdateringen, og på Identi.ca er også synlig på hver brukers offentlig side. For rask testing, men vil brukernavnet være nok. Du kan merke statusoppdateringen med stedsinformasjon ved behov, enten gjennom -d lat = 'LATITUDE' -d lange = 'LONGITUDE'
parametere, eller -d place_id = "sted"
parameter. Automat: Flere metoder du kan bruke cURL enkelt sende ut statusrapporter fra shell skript, som gjør det mulig å overvåke partiprosesser eller kjøre periodiske cron jobber som rapporterer tilbake gjennom StatusNet. ! For eksempel # /bin /bash # # samle info OPPETID = `oppetid | kutte -d " " -f4,5,6` hvis ps ax | grep -v grep | grep stjerne > /dev /null deretter statusupdate = " $ {OPPETID} - Asterisk kjører " annet statusupdate = " $ {OPPETID} - Asterisk ikke kjører !! " fi # rapporten det curl -u minserver: http://identi.ca/api/statuses/update.xml -d status = '$ {statusupdate}' > /dev /null 2 ​​> & 1 ... henter bare systemet oppetid, og sjekker om det er en prosess som heter stjerne
løping, deretter sender ut en statusoppdatering med resultatene. Du kan kjøre dette skriptet regelmessig ved å plassere den i crontab fil. Kjør sudo crontab -e for å åpne det, og deretter legge til en linje som 01 * * * * /usr/local/bin/my_denting_asterisk.sh å planlegge når det skal kjøres (i dette eksempelet, ett minutt over hel time, hver time) . Åpenbart kan du samle mye mer detaljert informasjon, og i mange tilfeller trenger du ikke vil at cron jobb rapporterer jevnlig at ingenting har skjedd
, slik at du kanskje ville hoppe sende ut oppdateringen med mindre prosessen har dødd. Men det er enda enklere alternativer, inkludert StatusNet evne til å ta imot innkommende e-postmeldinger som statusoppdateringer. Først, for å slå på denne funksjonen på Identi.ca, gå til e-postinnstillingene for kontoen din (http://identi.ca/settings/email). Den øverste boksen merket " Adresse " er den eksterne e-postadressen tilknyttet din profil, som du bruker til å bekrefte eierskapet av kontoen din. Den nederste boksen merket " Innkommende e-post " kan du generere en hemmelig e-postadresse som du kan bruke til å legge ut oppdateringer. Ordlyden i boksen er forvirrende, men ikke bekymre deg: klikk på " ny " og en adresse som består av en lang alfanumerisk streng i @ identi.ca domenet vil bli automatisk opprettet. Nå kan du kopiere den e-postadressen til /root/.forward fil på din Linux-maskin. Enhver script som sender et varsel melding til root vil automatisk få den videresendt til status feed på Identi.ca. Selvfølgelig bør du igjen bruke forsiktighet her for sikkerhetssensitive servere; det er trolig klokeste å bruke denne funksjonen på private StatusNet distribusjoner. Selvfølgelig kan du også aktivere SMS og XMPP levering av statusoppdateringer hvis du vil; i virkeligheten, disse alternativene ikke gjøre det enklere å få statusoppdateringer ut av maskinen, men de gir deg flere baner for å sørge for at de blir levert. Direktemeldinger Ett annet alternativ å vurdere er å sende en direktemelding i stedet for en offentlig statusoppdatering. Hvis du ikke vil at verden lese om CPU og prosess belastning, men du ønsker ikke belastningen av å administrere din egen private StatusNet server, gir dette en mellomløsning: mer privat, men uten strenge garantier. Syntaksen for en direktemelding er lik som for en statusoppdatering, med tillegg av en mottaker parameter som heter bruker, etter og ringe meldingsteksten tekst
. For eksempel: curl -u theUsername: thePassword http://identi.ca/api/direct_messages/new.xml -d user = "< em > SomeOtherUsername < /em > -d text = 'Jeg tror vi trenger å snakke om Asterisk server, fort.' En annen viktig forskjell er at direkte meldinger på Identi.ca er kun tillatt mellom to kontoer som er både abonnerer på hverandre. Så theUsername og SomeOtherUsername må være gjensidig " følgere " for kommandoen over for å fungere. Dobbeltsjekk før du begynner å stole på dette systemet for viktige varsler. Videre arbeid: Overvåking Solutions, vedlegg og Output parsing Individuelle overvåkings skript er greit for en liten tjeneste, for eksempel et hjemmekontor eller personlig webserver, men for de fleste fagfolk, har de ikke skalere. Heldigvis mange brukere som distribuerer nettverk overvåking løsninger har allerede integrert grunnleggende Twitter-utgang, som du enkelt kan tilpasse seg en StatusNet eksempel som vist ovenfor, og dra nytte av den lengre meldinger lengder for å få bedre rapporter og innebygde e-tilkobling. For eksempel har Zenoss et fellesskap skapte script for å sende ut varsler med Twitter. Fordi den bruker den grunnleggende statusene /oppdatering API metoden, er det kjapt tilpasses StatusNet. Nagios kan gjøre det samme. Monit, på den annen side, har innebygd e-postvarsler, slik at den kan brukes direkte med Identi.ca e-oppdatering system. Gjør det samme med Twitter krever å gå gjennom en egen tjeneste. Hvis du virkelig ønsker å utforske rapportering server status med StatusNet, kan du finne en god bruk for StatsuNet innebygd støtte for vedlegg via media
parameter. Bare legge et filnavn til din API-kall som -d medie = '/tmp /daily_use.png ", og det er lagt ut sammen med statusoppdatering. Apache kunne generere og etter trafikk grafer hver kveld. Her igjen, for å kopiere denne funksjonaliteten i Twitter krever bruk av en ekstern tjeneste bilde-innlegg. Til slutt, selv om alle de gitte her eksempler hovedsak ignorere utgang returneres av StatusNet server, kan det være lurt å prøve og analysere det og sørge for at ingenting har gått galt. Selv om eksemplene brukes XML-utgang, kan serveren også tilbake sitt svar i JSON format; bare ringe update.json stedet for update.xml. Hvem visste å få serveren til å snakke var så enkelt? Bare sørg for å ta det med ro i starten; du kan finne at serverne starter chatte så mye om sin status som du begynner å stille dem ut ...