Monitoritzant l’estat d’un sistema linux amb graphite

Ja vam veure en anteriors posts com instal·lar graphite. Ara haure’m d’enviar-li algunes dades perquè les emmagatzemi i les poguem consultar, per començar a jugar amb la webapp (si no, no ens serveix de res!). El graphite es pot fer servir per fer gràfiques de moltes coses, però començarem pel més bàsic que ens pot interessar: l’estat d’un servidor linux.

Per decidir si l’estat d’un servidor és correcte, ens fixarem en les coses típiques que es monitoritzen a un linux: memòria, espai en disc, CPU, iowait, i operacions read/write a disc. Hi ha moltes maneres de recollir aquestes dades. Jo he escollit un shell-script que executa comandes standard (free, sar i awk, bàsicament) i les envia al carbon via netcat. Podeu trobar el codi del script a github dintre del repositori graphite-monitoring , però també el poso aquí perquè es senzill i curtet:

Ara només hem de fer que això s’executi periòdicament, per exemple posant un cron al sistema. Jo ho executo amb monit (del que ja en parlaré en un altre moment), perquè em gestioni els errors en l’execució. Amb això ja disposarem de dades útils al graphite per començar a jugar.

  • Toni Comerma

    Hola,

    Molt interessant. Has provat d’utilitzar collectd [http://collectd.org/] per alimentar graphite. Hi ha un plugin de sortida que parla directament amb graphite. I collectd ja et proporciona totes les dades possibles de SO (cpu, memòria, disc, xarxa) i de moltes de les principals aplicacions servidores (httpd, nginx, haproxy, …..)

  • zadig

    crec que al sar li falta el paràmetre ‘count’: sar -b 3 1, o del contrari es queda en aquella instrucció ( com a minim en Ubuntu/Linaro 4.6.3-1ubuntu5 )

    • admin

      Tens rao, hi ha diferents versions del sar i algunes necessiten dos parametres. Ho haure de revisar i afegir-ho al post.

      Moltes gracies!