Bonjour à tous ! Je suis ravi de vous présenter l’un de mes projets récents, où j’ai développé un script Bash pour automatiser l’installation de Grafana Loki et Promtail sur un serveur. Ce projet vise à faciliter la mise en place et la gestion des logs SSH pour les administrateurs système, en offrant une solution clé en main pour surveiller et analyser les journaux de connexion SSH.

Description du projet :

Grafana Loki est un système de gestion de logs horizontal et hautement évolutif, tandis que Promtail est un agent de collecte de logs qui permet de récupérer les journaux et de les envoyer à Loki. Ensemble, ils offrent une solution complète pour la surveillance et l’analyse des logs.

Dans ce projet, j’ai créé un script Bash automatisé qui simplifie l’installation et la configuration de Grafana Loki et Promtail sur un serveur. Ce script permet aux administrateurs système de déployer rapidement et efficacement cette solution de surveillance des logs SSH, sans avoir à suivre de longues procédures manuelles.

Fonctionnalités du script :

  1. Installation automatique des paquets nécessaires pour Grafana Loki et Promtail.
  2. Configuration automatique des fichiers de configuration pour Loki et Promtail, en prenant en compte les paramètres spécifiques du serveur.
  3. Mise en place des services systemd pour Loki et Promtail, permettant un démarrage automatique et une gestion simplifiée des services.
  4. Création d’un tableau de bord Grafana personnalisé pour visualiser et analyser les logs SSH.

Conclusion :

Grâce à ce script Bash, les administrateurs système peuvent désormais déployer rapidement et efficacement Grafana Loki et Promtail pour surveiller et analyser les logs SSH de leurs serveurs. Ce projet démontre mon expertise en automatisation et en gestion de logs, ainsi que ma capacité à développer des solutions personnalisées pour répondre aux besoins spécifiques de mes clients. N’hésitez pas à explorer mon portfolio pour découvrir d’autres projets intéressants et à me contacter si vous avez des questions ou souhaitez discuter de vos besoins en matière d’infrastructure et d’automatisation.

Automatisation de l’installation de Grafana Loki et Promtail pour la surveillance des logs SSH

#!/bin/bash

#Auteur : Havelange Guillaume
#Date   : Mars 2023
#Detail : Ce script permet l'installation automatisée de Grafana, Loki et Promtail.


#Installer les paquets requis
sudo dnf install -y epel-release
sudo dnf install -y vim wget curl jq policycoreutils-python-utils

#Installer Grafana
sudo dnf install -y grafana
sudo firewall-cmd --add-port=3000/tcp --permanent # port Grafana
sudo firewall-cmd --reload
sudo systemctl daemon-reload
sudo systemctl enable --now grafana-server

sleep 5

#Installer Loki
LOKI_VERSION="2.7.4"
sudo mkdir /opt/loki/
sudo wget https://github.com/grafana/loki/releases/download/v${LOKI_VERSION}/loki-linux-amd64.zip
sudo unzip loki-linux-amd64.zip
sudo mv loki-linux-amd64 /opt/loki/loki-linux-amd64
cd /opt/loki/
sudo mv loki-linux-amd64 loki
cd ~
sudo useradd -s /bin/bash -d /opt/loki/ loki
sudo chown loki:loki /opt/loki/loki
sudo chmod 755 /opt/loki/loki
sudo mkdir /etc/loki/

#Installer le fichier de configuration de Loki
sudo wget https://raw.githubusercontent.com/grafana/loki/v${LOKI_VERSION}/cmd/loki/loki-local-config.yaml
sudo mv loki-local-config.yaml /etc/loki/loki-local-config.yaml
cd /etc/loki/
sudo mv loki-local-config.yaml config.yml
cd ~
sudo chmod 644 /etc/loki/config.yml

#Créer le service de Loki
sudo cat <<EOF >/etc/systemd/system/loki.service
[Unit]
Description=Loki Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=loki
Group=loki
ExecStart=/opt/loki/loki -config.file=/etc/loki/config.yml
SyslogIdentifier=loki
Restart=always

[Install]
WantedBy=multi-user.target
EOF

sudo chmod 644 /etc/systemd/system/loki.service

#Autoriser l'execution du binaire
sudo semanage fcontext -a -t bin_t "/opt/loki/loki"
sudo restorecon -v /opt/loki/loki

#Ouvrir le firewall pour loki
sudo firewall-cmd --add-port=3100/tcp --permanent # port 3100 Loki
sudo firewall-cmd --reload

#Recharger la configuration
sudo systemctl daemon-reload

#démarrer le servicer & le lancer au démarrage
sudo systemctl start loki.service
sudo systemctl enable --now loki.service

sleep 5

#Installer Promtail
PROMTAIL_VERSION="2.7.4"
sudo mkdir /opt/promtail/
sudo wget https://github.com/grafana/loki/releases/download/v${PROMTAIL_VERSION}/promtail-linux-amd64.zip
sudo unzip promtail-linux-amd64.zip
sudo mv promtail-linux-amd64 /opt/promtail/promtail-linux-amd64
cd /opt/promtail/
sudo mv promtail-linux-amd64 promtail
cd ~
sudo useradd -s /bin/bash -d /opt/promtail/ promtail
sudo chown  promtail:promtail /opt/promtail/promtail
sudo chmod 755 /opt/promtail/promtail
sudo mkdir /etc/promtail/
#Installer le fichier de configuration de promtail
sudo wget https://raw.githubusercontent.com/grafana/loki/v${PROMTAIL_VERSION}/clients/cmd/promtail/promtail-local-config.yaml
sudo mv promtail-local-config.yaml /etc/promtail/promtail-local-config.yaml
cd /etc/promtail/
sudo mv promtail-local-config.yaml config.yml
cd ~
sudo chmod 644 /etc/promtail/config.yml


#Créer le service promtail
sudo cat <<EOF >/etc/systemd/system/promtail.service
[Unit]
Description=Promtail Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=promtail
Group=promtail
ExecStart=/opt/promtail/promtail -config.file=/etc/promtail/config.yml
SyslogIdentifier=promtail
Restart=always

[Install]
WantedBy=multi-user.target
EOF

sudo chmod 644 /etc/systemd/system/promtail.service

#Créer le fichier positions de promtail
sudo touch /tmp/positions.yaml
sudo chown -R promtail:promtail /tmp/positions.yaml
sudo chmod 600 /tmp/positions.yaml

#Autoriser l'execution du binaire
sudo semanage fcontext -a -t bin_t "/opt/promtail/promtail"
sudo restorecon -v /opt/promtail/promtail

#Autoriser Promtail à lire dans les fichiers log
sudo setfacl -m u:promtail:r-x,g:promtail:r-x /var/log

#Ouvrir le firewall pour promtail
sudo firewall-cmd --add-port=9080/tcp --permanent # port 9080 Promtail
sudo firewall-cmd --reload

#Recharger la configuration
sudo systemctl daemon-reload

#démarrer le servicer & le lancer au démarrage
sudo systemctl start promtail.service
sudo systemctl enable --now promtail.service

sleep 5

#Controler les status Grafana, Loki et Promtail
sudo systemctl status grafana-server loki.service promtail.service

echo "Installation terminée. Accédez à Grafana à l'adresse http://localhost:3000"
echo "Les identifiants de connexion à Grafana sont admin admin"
echo "Une fois dans Grafana, configurez Loki comme source de données avec l'adresse "http://localhost:3100"."

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *