Attuor: Scalable monitoring

Attuor: Scalable monitoring

Monitoring is een essentieel onderdeel van onze bedrijfstak. Wij leveren als branche hoogwaardige producten aan onze klanten, die het altijd moeten doen. En als er eens iets dienst weigert, willen we dat weten, en pronto!

Er zijn altijd wel een paar producten die we kunnen vinden om monitoring van onze services te doen. We hebben monit, Nagios, Zabbix, Sensu, netdata, Icinga, PRTG. Keuze genoeg, maar nooit echt precies wat we zoeken.

Sensu

Begin 2017 heeft Tuxis gekozen voor Sensu als monitoring-oplossing. Sensu doet alles wat we wilden. Er was een client die contact maakte met een server, daar zijn config ophaalde, en de resultaten weer terugstuurde. We konden op de client overrides configureren als we wilden en aan de serverkant konden we koppelen met onze eigen https://admin.tuxis.nl/ code voor authenticatie.

Helaas heeft Sensu besloten een nieuwe versie te gaan bouwen, die aanzienlijk minder aantrekkelijk is. Een compleet nieuwe versie, waardoor de oude EndOfLife is en dus onbruikbaar.

Enter Attuor

We moesten dus iets, nieuwe keuzes maken. Nagios en afgeleiden daarvan hebben we niet bekeken. We wisten dat we iets in de categorie van Sensu wilden hebben. Sensu hebben we destijds gekozen omdat het (vrijwel) precies deed wat we zelf ook hadden bedacht dat we wilden en ook wilden gaan bouwen. Het bouwen was door de aanwezigheid van Sensu niet nodig, maar nu dus wel.

En dus zijn we daarmee aan de slag gegaan, project Attuor. Attuor is latijn voor ‘observeer’. En dat is wat Attuor doet. Het concept is dat de basis heel simpel blijft en gebruik maakt van ‘industry standards’. Het Proof Of Concept laat dat heel goed zien:

  • Volledig Python gebaseerd
    Python is een taal die op vrijwel ieder device kan draaien
  • Voor checks gebruiken we de Nagios logica
    Het lijkt erop dat Nagios een standaard voor checks heeft neergezet. Qua exitcodes, output, performance output. Door dit over te nemen zijn alle Nagios checks direct bruikbaar voor Attuor
  • Client en Server communiceren via HTTP(s). Client pusht resultaten naar de server.
    We hoeven dus geen gaten in firewalls te prikken voor vreemde poorten. Virusscanners zien ‘gewoon’ JSON over de verbinding gaan. Het zal dus vrijwel overal werken
  • De client maakt van zo min mogelijk libraries gebruik. Hierdoor is het heel portable over de verschillende OS’en.
  • De server publiceert berichten naar een message-broker (Redis). We komen dus niet snel in de situatie dat de server het niet bijhoudt. Subscribers op de Redis-channel kunnen alle logica uitvoeren en status bijhouden

We weten dat veel andere bedrijven dezelfde uitdagingen als wij zien. Open source software is steeds vaker een middel naar omzet, in plaats van een oplossing voor je eigen probleem dat je graag deelt met anderen. Wij zullen niet ontkennen er trots op te willen zijn de drijvende kracht achter Attuor te zijn. Maar Attuor zal altijd open source en gratis blijven. Attuor zal ook geen ‘enterprise’ versie krijgen.

Help jij mee?

Ik heb nu een PoC gebouwd. Die start en doet wat dingen. Maar Attuor is ver van af. Wij gaan er in de komende weken hard mee aan de slag en we hopen dat er mensen zijn die willen helpen het te verbeteren en uit te breiden. Op https://gitlab.tuxis.nl/oss_public/attuor kun je meehelpen.