Monitorizare servere cu collectd

Postat la Sat 25 August 2018 in proiecte

De multe ori intampinam probleme ori incetiniri ale aplicatiior ce ruleaza pe servere si ceea ce ne poate da informatii utile pentru diagnosticare e metrica culeasa prin diverse aplicatii (collectd, telegraf, datadog, Zabbix).

O scula relativ simplu de instalat si configurat e collectd ce are o multime de plug-inuri pentru o multime de aplicatii de la care sa culeaga metrica. Aplicatia poate rula in 3 moduri:

  • local - culege si stocheaza datele local
  • client - culege si trimite datele culese spre o alta instanta din retea
  • server - culege datele local, preia datele culese de alte instante si le stocheaza local

Salvarea datelor se face local in fisiere rrd sau se pot trimite spre alte sisteme - Graphite spre exemplu.

Instalarea pe Debian/Ubuntu se face printr-un singur pachet:

apt install collectd

pe cand pe CentOS aplicatia este impartita in mai multe pachete (multe plug-unri in pachete separate):

yum install collectd

Configurarea se face simplu in fisierul /bin/collectd.conf sau /etc/collectd/collectd.conf.

Hostname    "FE-1"
FQDNLookup   true
#BaseDir     "/usr/var/lib/collectd"
#PIDFile     "/usr/var/run/collectd.pid"
#PluginDir   "/usr/lib/collectd"
#TypesDB     "/usr/share/collectd/types.db"
#Interval     10
#Timeout      2
#ReadThreads  5

LoadPlugin syslog

<Plugin syslog>
    LogLevel notice
</Plugin>

LoadPlugin cpu
LoadPlugin df
LoadPlugin disk
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin network
LoadPlugin rrdtool
LoadPlugin vmem

##############################################################################
# Plugin configuration                                                       #
##############################################################################

<Plugin df>
        Device "/dev/sda3"
</Plugin>

<Plugin disk>
        Disk "/^[hs]d[a-f][0-9]?$/"
        IgnoreSelected false
</Plugin>

<Plugin network>
    # client setup:
    #Server "10.36.23.6" "25826"
    # server setup:
    #Listen "10.36.23.2" "25826"
</Plugin>

<Plugin rrdtool>
    DataDir "/var/lib/collectd"
    CacheTimeout 120
    CacheFlush   900
</Plugin>

Fisierul default e mult mai amplu si intuitiv, iar pe site-ul oficial sunt indicatii cum se activeaza diferite plug-inuri. De asemenea daca cautati gasiti si alte plug-unri scrise in diverse limbaje - perl, python..

Plugin-ul Srrdtool indica aplicatiei stocarea metricii culese in folderul /var/lib/collectd unde se stocheaza in fisiere impartite pe foldere cu numele masinii si serviciului.

Din fiserele rrd salvate se pot genera diagrame prin diverse interfete:

CGP este o aplicatie scrisa in PHP si ruleaza printr-un webserver. Graficele se pot vizualiza pe mai multe intervale in urma (2,8 ore, o zi, o saptamana, luna, an).

Din graficele generate si din log-urile de sistem/aplicatii putem cauta sursele problemelor ce apar.