Monitoring
- Grafana Server installieren
- Grafana MQTT Datasource builden
- Mosquitto installieren und konfigurieren
- Prometheus installieren und konfigurieren
- Node Exporter installieren
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.