diff --git a/HowtoGraylog.md b/HowtoGraylog.md new file mode 100644 index 00000000..790d1814 --- /dev/null +++ b/HowtoGraylog.md @@ -0,0 +1,187 @@ +--- +categories: sysadmin +title: Howto Graylog +... + +- Documentation : [https://docs.graylog.org/](https://docs.graylog.org/) +- Code : [https://github.com/Graylog2](https://github.com/Graylog2) +- Licence : [Serveur Side Public License](https://github.com/Graylog2/graylog2-server/blob/master/LICENSE) (non-libre) +- Language : Java +- Rôle Ansible : (à venir) + +**Graylog Open** est un gestionnaire de journaux (*logs*). Écrit en Java, il s'appuit sur MongoDB et Elasticsearch (ou OpenSearch) pour la collecte, le stockage, et l'analyse des événements enregistrés dans les journaux des serveurs. + +# Requis + +Les [requis](https://docs.graylog.org/docs/architecture) du système selon la documentation officielle : + +- Le noeud Graylog doit avoir beaucoup de puissance côté des processeurs +- Le noeud Elasticsearch (ou OpenSearch) doit avoir beaucoup de mémoire vive et des disques rapides +- Le noeud MongoDB a besoin de peu de ressources relativement aux deux autres +- Important : il faut obligatoirement un stratégie de sauvegardes pour les données (et les indices) d'Elasticsearch + +Il est possible, pour le développement, le test et les petites installations de tout mettre sur un seul serveur. Cependant, règle générale, un [environnement de production multi-noeud](https://docs.graylog.org/v1/docs/multinode-setup) consistera (par exemple) en une première grappe (de trois serveurs ou plus) pour Graylog + MongoDB et une seconde grappe (de trois serveurs ou plus également) pour Elasticsearch. Les deux grappes réponderont aux requêtes derrière un système de répartition de charge. + +# Installation + +La [procédure](https://docs.graylog.org/v1/docs/debian) d'installation pour Debian 10 (Buster) et 11 (Bullseye) tirée de la documentation officielle suppose qu'on installe tout à neuf sur un seul serveur. En résumé, on installe les dépendances (openjdk, mongodb, elasticsearch) et ensuite on installe graylog (avec en option des plugins et des intégrations). + +On installe les dépendances disponibles à même la distribution Debian : + +~~~ +# apt update && apt upgrade +# apt install apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen dirmngr gnupg wget +~~~ + +Puis MongoDB à partir du dépôt du développeur : + +~~~ +# wget -qO - https://www.mongodb.org/static/pgp/server-4.3.asc | apt-key add - +# echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.3 main" | tee /etc/apt/sources.list.d/mongodb-org-4.3.list +# apt-get update +# apt-get install -y mongodb-org +~~~ + +On s'assure que MongoDB fonctionne et démarre en même temps que le système : + +~~~ +# systemctl daemon-reload +# systemctl enable mongod.service +# systemctl restart mongod.service +# systemctl status mongod.service +~~~ + +MongoDB installé et testé, on passe à Elasticsearch, qu'on installe aussi à partir du dépôt du développeur : + +~~~ +# wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - +# echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list +# apt update && sudo apt install elasticsearch-oss +~~~ + +On configure Elasticsearch pour les besoins de Graylog : + +~~~ +# tee -a /etc/elasticsearch/elasticsearch.yml > /dev/null << EOT +# cluster.name: graylog +# action.auto_create_index: false +# EOT +~~~ + +On s'assure que Elasticsearch fonctionne et démarre en même temps que le système : + +~~~ +# systemctl daemon-reload +# systemctl enable elasticsearch.service +# systemctl restart elasticsearch.service +# systemctl status elasticsearch.service +~~~ + +Nous voilà prêts à installer l'application Graylog elle-même : + +~~~ +# wget https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.deb +# dpkg -i graylog-4.3-repository_latest.deb +# apt-get update && apt-get install graylog-server graylog-enterprise-plugins graylog-integrations-plugins graylog-enterprise-integrations-plugins +~~~ + +On remplacera naturellement `4.3` par la version qui convient. + +Graylog refusera de démarrer sans un minimum de configuration (notamment les paramètres `password_secret` et `root_password_sha2`du fichier `/etc/graylog/server/server.conf`). Pour `password_secret`, on peut exécuter la commande suivante : + +~~~ +# pwgen -N 1 -s 96 +~~~ + +Pour `root_password_sha2`, celle-ci : + +~~~ +# echo -n "Enter Password: " && head -1