{"id":19,"date":"2016-09-05T20:18:10","date_gmt":"2016-09-05T20:18:10","guid":{"rendered":"http:\/\/demos.famethemes.com\/screenr\/?page_id=19"},"modified":"2023-04-06T15:08:44","modified_gmt":"2023-04-06T13:08:44","slug":"automatisation_script_bash","status":"publish","type":"page","link":"https:\/\/www.haveltech.fr\/?page_id=19","title":{"rendered":"Automatisation de l&rsquo;installation de Grafana Loki et Promtail pour la surveillance des logs SSH"},"content":{"rendered":"<p>Bonjour \u00e0 tous ! Je suis ravi de vous pr\u00e9senter l&rsquo;un de mes projets r\u00e9cents, o\u00f9 j&rsquo;ai d\u00e9velopp\u00e9 un script Bash pour automatiser l&rsquo;installation de Grafana Loki et Promtail sur un serveur. Ce projet vise \u00e0 faciliter la mise en place et la gestion des logs SSH pour les administrateurs syst\u00e8me, en offrant une solution cl\u00e9 en main pour surveiller et analyser les journaux de connexion SSH.<\/p>\n<p>Description du projet :<\/p>\n<p>Grafana Loki est un syst\u00e8me de gestion de logs horizontal et hautement \u00e9volutif, tandis que Promtail est un agent de collecte de logs qui permet de r\u00e9cup\u00e9rer les journaux et de les envoyer \u00e0 Loki. Ensemble, ils offrent une solution compl\u00e8te pour la surveillance et l&rsquo;analyse des logs.<\/p>\n<p>Dans ce projet, j&rsquo;ai cr\u00e9\u00e9 un script Bash automatis\u00e9 qui simplifie l&rsquo;installation et la configuration de Grafana Loki et Promtail sur un serveur. Ce script permet aux administrateurs syst\u00e8me de d\u00e9ployer rapidement et efficacement cette solution de surveillance des logs SSH, sans avoir \u00e0 suivre de longues proc\u00e9dures manuelles.<\/p>\n<p>Fonctionnalit\u00e9s du script :<\/p>\n<ol>\n<li>Installation automatique des paquets n\u00e9cessaires pour Grafana Loki et Promtail.<\/li>\n<li>Configuration automatique des fichiers de configuration pour Loki et Promtail, en prenant en compte les param\u00e8tres sp\u00e9cifiques du serveur.<\/li>\n<li>Mise en place des services systemd pour Loki et Promtail, permettant un d\u00e9marrage automatique et une gestion simplifi\u00e9e des services.<\/li>\n<li>Cr\u00e9ation d&rsquo;un tableau de bord Grafana personnalis\u00e9 pour visualiser et analyser les logs SSH.<\/li>\n<\/ol>\n<p>Conclusion :<\/p>\n<p>Gr\u00e2ce \u00e0 ce script Bash, les administrateurs syst\u00e8me peuvent d\u00e9sormais d\u00e9ployer rapidement et efficacement Grafana Loki et Promtail pour surveiller et analyser les logs SSH de leurs serveurs. Ce projet d\u00e9montre mon expertise en automatisation et en gestion de logs, ainsi que ma capacit\u00e9 \u00e0 d\u00e9velopper des solutions personnalis\u00e9es pour r\u00e9pondre aux besoins sp\u00e9cifiques de mes clients. N&rsquo;h\u00e9sitez pas \u00e0 explorer mon portfolio pour d\u00e9couvrir d&rsquo;autres projets int\u00e9ressants et \u00e0 me contacter si vous avez des questions ou souhaitez discuter de vos besoins en mati\u00e8re d&rsquo;infrastructure et d&rsquo;automatisation.<\/p>\n\n<h2 class=\"wp-block-post-title\">Automatisation de l&rsquo;installation de Grafana Loki et Promtail pour la surveillance des logs SSH<\/h2>\n\n\n<pre class=\"wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background has-small-font-size\"><code>#!\/bin\/bash\n\n#Auteur : Havelange Guillaume\n#Date   : Mars 2023\n#Detail : Ce script permet l'installation automatis\u00e9e de Grafana, Loki et Promtail.\n\n\n#Installer les paquets requis\nsudo dnf install -y epel-release\nsudo dnf install -y vim wget curl jq policycoreutils-python-utils\n\n#Installer Grafana\nsudo dnf install -y grafana\nsudo firewall-cmd --add-port=3000\/tcp --permanent # port Grafana\nsudo firewall-cmd --reload\nsudo systemctl daemon-reload\nsudo systemctl enable --now grafana-server\n\nsleep 5\n\n#Installer Loki\nLOKI_VERSION=\"2.7.4\"\nsudo mkdir \/opt\/loki\/\nsudo wget https:\/\/github.com\/grafana\/loki\/releases\/download\/v${LOKI_VERSION}\/loki-linux-amd64.zip\nsudo unzip loki-linux-amd64.zip\nsudo mv loki-linux-amd64 \/opt\/loki\/loki-linux-amd64\ncd \/opt\/loki\/\nsudo mv loki-linux-amd64 loki\ncd ~\nsudo useradd -s \/bin\/bash -d \/opt\/loki\/ loki\nsudo chown loki:loki \/opt\/loki\/loki\nsudo chmod 755 \/opt\/loki\/loki\nsudo mkdir \/etc\/loki\/\n\n#Installer le fichier de configuration de Loki\nsudo wget https:\/\/raw.githubusercontent.com\/grafana\/loki\/v${LOKI_VERSION}\/cmd\/loki\/loki-local-config.yaml\nsudo mv loki-local-config.yaml \/etc\/loki\/loki-local-config.yaml\ncd \/etc\/loki\/\nsudo mv loki-local-config.yaml config.yml\ncd ~\nsudo chmod 644 \/etc\/loki\/config.yml\n\n#Cr\u00e9er le service de Loki\nsudo cat &lt;&lt;EOF >\/etc\/systemd\/system\/loki.service\n&#91;Unit]\nDescription=Loki Service\nWants=network-online.target\nAfter=network-online.target\n\n&#91;Service]\nType=simple\nUser=loki\nGroup=loki\nExecStart=\/opt\/loki\/loki -config.file=\/etc\/loki\/config.yml\nSyslogIdentifier=loki\nRestart=always\n\n&#91;Install]\nWantedBy=multi-user.target\nEOF\n\nsudo chmod 644 \/etc\/systemd\/system\/loki.service\n\n#Autoriser l'execution du binaire\nsudo semanage fcontext -a -t bin_t \"\/opt\/loki\/loki\"\nsudo restorecon -v \/opt\/loki\/loki\n\n#Ouvrir le firewall pour loki\nsudo firewall-cmd --add-port=3100\/tcp --permanent # port 3100 Loki\nsudo firewall-cmd --reload\n\n#Recharger la configuration\nsudo systemctl daemon-reload\n\n#d\u00e9marrer le servicer &amp; le lancer au d\u00e9marrage\nsudo systemctl start loki.service\nsudo systemctl enable --now loki.service\n\nsleep 5\n\n#Installer Promtail\nPROMTAIL_VERSION=\"2.7.4\"\nsudo mkdir \/opt\/promtail\/\nsudo wget https:\/\/github.com\/grafana\/loki\/releases\/download\/v${PROMTAIL_VERSION}\/promtail-linux-amd64.zip\nsudo unzip promtail-linux-amd64.zip\nsudo mv promtail-linux-amd64 \/opt\/promtail\/promtail-linux-amd64\ncd \/opt\/promtail\/\nsudo mv promtail-linux-amd64 promtail\ncd ~\nsudo useradd -s \/bin\/bash -d \/opt\/promtail\/ promtail\nsudo chown  promtail:promtail \/opt\/promtail\/promtail\nsudo chmod 755 \/opt\/promtail\/promtail\nsudo mkdir \/etc\/promtail\/\n#Installer le fichier de configuration de promtail\nsudo wget https:\/\/raw.githubusercontent.com\/grafana\/loki\/v${PROMTAIL_VERSION}\/clients\/cmd\/promtail\/promtail-local-config.yaml\nsudo mv promtail-local-config.yaml \/etc\/promtail\/promtail-local-config.yaml\ncd \/etc\/promtail\/\nsudo mv promtail-local-config.yaml config.yml\ncd ~\nsudo chmod 644 \/etc\/promtail\/config.yml\n\n\n#Cr\u00e9er le service promtail\nsudo cat &lt;&lt;EOF >\/etc\/systemd\/system\/promtail.service\n&#91;Unit]\nDescription=Promtail Service\nWants=network-online.target\nAfter=network-online.target\n\n&#91;Service]\nType=simple\nUser=promtail\nGroup=promtail\nExecStart=\/opt\/promtail\/promtail -config.file=\/etc\/promtail\/config.yml\nSyslogIdentifier=promtail\nRestart=always\n\n&#91;Install]\nWantedBy=multi-user.target\nEOF\n\nsudo chmod 644 \/etc\/systemd\/system\/promtail.service\n\n#Cr\u00e9er le fichier positions de promtail\nsudo touch \/tmp\/positions.yaml\nsudo chown -R promtail:promtail \/tmp\/positions.yaml\nsudo chmod 600 \/tmp\/positions.yaml\n\n#Autoriser l'execution du binaire\nsudo semanage fcontext -a -t bin_t \"\/opt\/promtail\/promtail\"\nsudo restorecon -v \/opt\/promtail\/promtail\n\n#Autoriser Promtail \u00e0 lire dans les fichiers log\nsudo setfacl -m u:promtail:r-x,g:promtail:r-x \/var\/log\n\n#Ouvrir le firewall pour promtail\nsudo firewall-cmd --add-port=9080\/tcp --permanent # port 9080 Promtail\nsudo firewall-cmd --reload\n\n#Recharger la configuration\nsudo systemctl daemon-reload\n\n#d\u00e9marrer le servicer &amp; le lancer au d\u00e9marrage\nsudo systemctl start promtail.service\nsudo systemctl enable --now promtail.service\n\nsleep 5\n\n#Controler les status Grafana, Loki et Promtail\nsudo systemctl status grafana-server loki.service promtail.service\n\necho \"Installation termin\u00e9e. Acc\u00e9dez \u00e0 Grafana \u00e0 l'adresse http:\/\/localhost:3000\"\necho \"Les identifiants de connexion \u00e0 Grafana sont admin admin\"\necho \"Une fois dans Grafana, configurez Loki comme source de donn\u00e9es avec l'adresse \"http:\/\/localhost:3100\".\"<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Automatisation de l&rsquo;installation de Grafana Loki et Promtail pour la surveillance des logs SSH<\/p>\n","protected":false},"author":2,"featured_media":1432,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-19","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.haveltech.fr\/index.php?rest_route=\/wp\/v2\/pages\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.haveltech.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.haveltech.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.haveltech.fr\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.haveltech.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19"}],"version-history":[{"count":6,"href":"https:\/\/www.haveltech.fr\/index.php?rest_route=\/wp\/v2\/pages\/19\/revisions"}],"predecessor-version":[{"id":1435,"href":"https:\/\/www.haveltech.fr\/index.php?rest_route=\/wp\/v2\/pages\/19\/revisions\/1435"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.haveltech.fr\/index.php?rest_route=\/wp\/v2\/media\/1432"}],"wp:attachment":[{"href":"https:\/\/www.haveltech.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}