Monitoring

Grafana Server installieren:

Offizielle Dokumentation: https://grafana.com/docs/grafana/latest/installation/debian/

sudo adduser grafana
sudo usermod -aG sudo grafana
sudo su grafana
cd ~
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/enterprise/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana-enterprise
sudo systemctl enable grafana-server
sudo systemctl start grafana-server

Grafana MQTT Datasource builden

Offizielle Dokumentation: https://github.com/grafana/mqtt-datasource/issues/15#issuecomment-894477802

Go installieren:

wget -O -https://raw.githubusercontent.com/mauleyzaola/scripts/master/go/go.install.sh | sh
source ~/.bashrc

Mage installieren:

sudo apt install git
git clone https://github.com/magefile/mage
cd mage
go run bootstrap.go

NodeJS 16 installieren:

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

Yarn in NodeJS aktivieren:

sudo corepack enable

Konfiguration von Grafana anpassen:

sudo nano /etc/grafana/grafana.ini

In der Konfigurationsdatei bei folgenden Einträgen den Kommentar entfernen und die Werte anpassen:

plugins = /var/lib/grafana/plugins
allow_loading_unsigned_plugins = grafana-mqtt-datasource

Plugins Ordner für Grafana erstellen:

mkdir /var/lib/grafana/plugins

In den Ordner navigieren, das Plugin clonen und builden:

mkdir /var/lib/grafana/plugins
cd /var/lib/grafana/plugins
git clone https://github.com/grafana/mqtt-datasource.git
cd mqtt-datasource
yarn add @grafana/toolkit
yarn build
yarn install
sudo systemctl restart grafana-server

Mosquitto installieren und konfigurieren:

Dienstkonto anlegen & Mosquitto installieren:

sudo adduser mosquitto
sudo usermod -aG sudo mosquitto
sudo su mosquitto
cd ~
sudo apt install mosquitto
sudo systemctl enable mosquitto
sudo systemctl start mosquitto

Die Konfigurationsdatei erstellen:

sudo nano /etc/mosquitto/conf.d/mosquitto.conf

Folgenden Inhalt einfügen:

listener 1883 0.0.0.0
log_dest syslog
log_dest stdout
log_dest topic
log_type error
log_type warning
log_type notice
log_type information
connection_messages true
log_timestamp true
allow_anonymous false
password_file /etc/mosquitto/pwfile

Password-Datei erstellen:

sudo nano /etc/mosquitto/pwfile

Benutzername und Passwort einfügen:

username:password

Password hashen und Mosquitto neustarten:

sudo mosquitto_passwd -U /etc/mosquitto/pwfile
sudo systemctl restart mosquitto

Prometheus Server installieren, konfigurieren und eine Node hinzufügen:

Dienstkonto anlegen & Prometheus installieren:

sudo adduser prometheus
sudo usermod -aG sudo prometheus
sudo su prometheus
cd ~
wget https://github.com/prometheus/prometheus/releases/download/v2.36.0/prometheus-2.36.0.linux-amd64.tar.gz
tar -xzvf prometheus-2.36.0.linux-amd64.tar.gz
mv prometheus-2.36.0.linux-amd64/ prometheus/

Prometheus Service erstellen:

sudo nano /etc/systemd/system/prometheus.service

Dienstkonfiguration einfügen:

[Unit]
Description=Prometheus Server
After=network-online.target

[Service]
User=prometheus
Restart=on-failure
ExecStart=/home/prometheus/prometheus/prometheus \
--config.file=/home/prometheus/prometheus/prometheus.yml \
--storage.tsdb.path=/home/prometheus/prometheus/data

[Install]
WantedBy=multi-user.target

Systemd reloaden, damit der neue Dienst erkannt wird:

sudo systemctl daemon-reload
sudo systemctl enable prometheus
Node Exporter für Prometheus:

Dienstkonto anlegen, nur wenn es noch nicht existiert:

sudo usermod -aG sudo prometheus 
sudo adduser prometheus
sudo su prometheus

Node Exporter für Prometheus installieren:

cd ~
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar -xzvf node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64/ node_exporter/

Service für den Node Exporter erstellen:

sudo nano /etc/systemd/system/node_exporter.service

Service-Konfiguration einfügen:

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter

[Install]
WantedBy=default.target

Systemd reloaden und den Service enablen:

sudo systemctl daemon-reload
sudo systemctl enable node_exporter

Prometheus Server konfigurieren:

sudo su prometheus
cd ~
nano ./prometheus/prometheus.yml

Konfiguration am Ende einfügen:

- job_name: 'node_exporter'
  static_configs:
   - targets: ['localhost:9100']

Prometheus neu starten:

sudo systemctl restart prometheus

Die Konfiguration von Grafana zeige ich in dem am Anfang eingebetteten Video.

Fertig! Du hast nun ein funktionstüchtiges Open-Source Monitoring für deine Server u. a.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert