💾 Archived View for head.baselab.org › gemlog › 2021-10-30.gmi captured on 2022-04-28 at 17:19:41. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-03-01)

🚧 View Differences

-=-=-=-=-=-=-

Entrata

Indice

Raccolta metriche: collectd, graphite, grafana

Da un mesetto a questa parte sto provando la raccolta metriche con lo stack come da titolo.

Il tutto viene quasi da sé senza troppi sbatti.

Dal lato "monitorante", Graphite fornisce il "database" (time series db) su cui salviamo i dati. Invece Grafana permette la visualizzazione di questi dati via web ed eventualmente l'impostazione di allarmi.

Dal lato "monitorato" Collectd raccoglie le metriche e le spedisce, in questo caso a graphite.

Graphite + Grafana

Su Debian 11 ho installato:

graphite-carbon
graphite-api
grafana

Il primo è il vero e proprio TSDB, il secondo il layer che permette di interrogare il DB tramite una API. Esisterebbe anche lo storico "graphite-web" che fa lo stesso lavoro del secondo, ma per Debian 11 non è "pronto" (anche se lo è per Debian 10 e testing...).

Grafana è invece l'applicazione web che si interfaccia con graphite-api per recuperare e graficare le metriche.

Collectd

Collectd è ormai pacchettizzato per tutti le distribuzioni Linux e non.

Questa per esempio è la configurazione che uso per il notebook:

Hostname    "notebook"
Interval    60

LoadPlugin syslog
<Plugin syslog>
  LogLevel info
</Plugin>

LoadPlugin contextswitch
LoadPlugin cpu
LoadPlugin aggregation
LoadPlugin disk
LoadPlugin df
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin swap
LoadPlugin processes
LoadPlugin uptime
LoadPlugin users
LoadPlugin write_graphite
LoadPlugin exec

<Plugin exec>
  Exec "nobody" "/opt/collectd_plugins/top.sh" "-t 100"
</Plugin>

<Plugin write_graphite>
  <Node "monitor">
    Host "x.x.x.x"
    Port "2003"
    Protocol "tcp"
    ReconnectInterval 0
    LogSendErrors true
    Prefix "collectd."
    SeparateInstances false
    StoreRates true
    AlwaysAppendDS false
    EscapeCharacter "_"
    PreserveSeparator false
    DropDuplicateFields false
  </Node>
</Plugin>

<Plugin cpu>
  ValuesPercentage true
</Plugin>

<Plugin "aggregation">
  <Aggregation>
    Plugin "cpu"
    Type "percent"
    GroupBy "Host"
    GroupBy "TypeInstance"
    CalculateNum false
    CalculateSum true
    CalculateAverage true
    CalculateMinimum false
    CalculateMaximum false
    CalculateStddev false
  </Aggregation>
</Plugin>

<Plugin "df">
  ValuesPercentage true
  ReportInodes true
</Plugin>

In particolare il plugin "exec" esegue il mini script "top.sh" (che trovate nel repository Git) che fornisce una panoramica dei processi in base all'uso di CPU e RAM.

________________________________

argomenti

monitoring

torna a

Indice

Entrata

:: 5fdcf4b :: 2022-02-24T14:26:20 ::