Elasticsearch 8.x : Serveur de flotte + Sortie Logstash

Publié le 31/12/2023

« Voir toutes les conférences Contactez-nous
Elasticsearch 8.x: Fleet Server + Logstash Output

Introduction

Nous allons configurer le serveur de flotte pour utiliser #logstash comme sortie.

Cette documentation suppose que vous avez déjà configuré Elasticsearch et Kibana. Sinon, vous pouvez va ici pour Certificats signés publiquement configuration. Si vous souhaitez utiliser Certificats auto-signés, va ici À déterminer.

Cette documentation suppose que vous avez regardé des vidéos précédentes sur les agents élastiques, les stratégies d'agent et Fleet Server.

Exigences

Serveur de sortie Logstash [05:40]

Accédez au terminal du serveur Elasticsearch. Créez un fichier avec la commande :

cd /usr/share/elasticsearch/bin vi make-certs.sh

et ajoutez la commande ci-dessous, remplacez le DNS variable avec le nom de domaine du serveur :

./elasticsearch-certutil cert \ --name logstash \ --ca-cert /etc/elasticsearch/certs/ca/ca.crt \ --ca-key /etc/elasticsearch/certs/ca/ca.key \ --dns <your.host.name.here> \ --pem

Enregistrez le fichier et exécutez la commande ci-dessous :

chmod 755 make-certs.sh ./make-certs.sh

alt text

Générer un certificat SSL pour Logstash

Appuyez sur Entrée si vous y êtes invité pour saisir le résultat souhaité. Accédez maintenant au répertoire où le certificat a été compressé et décompressez-le :

cd .. unzip certificate-bundle.zip

alt text

Décompresser le certificat pour Logstash

Accédez au terminal du serveur Logstash et exécutez les commandes ci-dessous :

mkdir -p /etc/certs/logstash cd /etc/certs/logstash/

puis copiez le contenu du serveur elasticsearch avec la commande ci-dessous :

scp root@<IP ADDRESS OR SERVER DNS>:/usr/share/elasticsearch/logstash/* ./

ci-dessous un exemple de commande :

scp root@es.evermight.net:/usr/share/elasticsearch/logstash/* ./

puis copiez également l'autorité de certification sur le serveur logstash également :

scp root@es.evermight.net:/etc/elasticsearch/certs/ca/ca.crt ./

puis exécutez la commande ci-dessous pour convertir la clé logstash en pkcs8 :

openssl pkcs8 -inform PEM -in logstash.key -topk8 -nocrypt -outform PEM -out logstash.pkcs8.key

Installons maintenant logstash sur le serveur logstash :

apt-get update && apt dist-upgrade -y && apt-get install vim curl gnupg gpg; wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg; sudo apt-get install apt-transport-https; echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list; sudo apt-get update && sudo apt-get install logstash

ouvrir un fichier pour la configuration

vi fleet-output.conf

et collez le contenu ci-dessous dans le fichier :

input { elastic_agent { port => 5044 ssl_enabled => true ssl_certificate_authorities => ["/etc/certs/ca/ca.crt"] ssl_certificate => "/etc/certs/logstash/logstash.crt" ssl_key => "/etc/certs/logstash/logstash.pkcs8.key" ssl_client_authentication => "required" } } output { file { path => "fleet-output.txt" } }

et enregistrez. Exécutez maintenant la commande ci-dessous :

/usr/share/logstash/bin/logstash -f /root/fleet-output.conf

Créons maintenant une configuration de pipeline pour logstash :

mkdir config; cd config/; vi pipelines.yml

Et collez le contenu ci-dessous :

- pipeline.id: elastic-agent-pipeline path.config: "/root/fleet-output.conf"

et enregistrez. Exécutez-le à nouveau.

cd ~; /usr/share/logstash/bin/logstash

Activer la licence d'essai [19:40]

Connectez-vous à Kibana depuis votre navigateur. Accéder à Gestion de la pile > Gestion des licences, et cliquez sur Commencez un essai de 30 jours.

alt text Commencez votre essai gratuit de 30 jours

et cela devrait montrer un succès comme celui-ci :

alt text Essai gratuit de 30 jours Activé avec succès

Serveur de flotte : Remarques importantes [21:00]

Nous allons configurer deux sorties pour Fleet Server, qui sont :

Serveur de flotte : Sortie Elasticsearch [25:00]

Aller à Fleet > settings, et cliquez sur l'icône du stylo d'édition. Reportez-vous à l'image ci-dessous ;

alt text Modifier la sortie du serveur de flotte

Accédez maintenant au serveur Elasticsearch. Exécutez la commande ci-dessous pour obtenir l'empreinte du certificat.

cd /etc/elasticsearch/certs/ca openssl x509 -fingerprint -sha256 -noout -in ca.crt | awk -F"=" {' print $2 '} | sed s/://g

créer un script.

ca.sh

et ajoutez-y le contenu ci-dessous

echo 'ssl:'; echo ' certificate_authorities:'; echo ' - |'; cat ca.crt | sed 's/^/ /'

et enregistrez-le. Exécutez maintenant le fichier

chmod 755 ca.sh ./ca.sh

Cela devrait ressembler à la capture d’écran ci-dessous ;

alt text Certificate in YML style

Copiez les sorties et collez-les dans votre kibana sur le Espace de configuration YML avancé

Cela devrait ressembler à la capture d’écran ci-dessous :

alt text Configuration du serveur de flotte

puis cliquez sur Enregistrer et appliquer les paramètres, puis cliquez sur Enregistrer et déployer.

Serveur de flotte : sortie Logstash [27:43]

Cliquez sur Add Output dans le Flotte > Agent, pour ajouter une sortie pour Logstash. Donnez-lui un nom comme logstash, et pour le type sélectionnez logstash, saisissez l'adresse IP ou DNS du serveur Logstash, par exemple lg.evermight.net:5044, pour le Autorités de certification SSL du serveur coller dans le ca.crt le contenu du fichier une fois imprimé et vous pouvez utiliser une commande comme

cat ca.crt

Sur votre terminal serveur elastcsearch, créez un fichier et suivez les étapes ci-dessous pour obtenir le certificat SSL du client :

cd /usr/share/elasticsearch/bin vi client-cert.sh

et collez le contenu ci-dessous :

./elasticsearch-certutil cert \ --name client \ --ca-cert /etc/elasticsearch/ca/ca.crt \ --ca-key /etc/elasticsearch/ca/ca.key \ --pem

et exécutez la commande ci-dessous

chmod 755 client-cert.sh

Lorsque vous y êtes invité, donnez-lui un nom client.zipAccédez maintenant au répertoire où le certificat a été compressé et décompressez-le :

cd .. unzip client.zip

Allez maintenant dans le répertoire qui a été décompressé et copiez le contenu du client.crt déposer:

cd client cat client.crt

et collez-le dans le Certificat SSL client section. Pour le Clé de certificat SSL client, copiez le contenu du client.key et collez-le.

cat client.key

Then click on Enregistrer et appliquer les paramètresLes deux résultats enregistrés ressembleront à la capture d'écran ci-dessous :

alt text Sorties du serveur de flotte

Serveur de flotte : Installation [32:01]

Accédez au terminal du serveur de flotte et exécutez la commande ci-dessous :

apt-get update && apt dist-upgrade -y && apt-get install -y vim curl gnupg gpg;

et créer quelques répertoires :

cd /etc/; mkdir certs; cd certs/; mkdir ca; mkdir fl.evermight.net; cd ca

Exécutez maintenant cette commande sur le terminal du serveur de flotte pour copier les certificats du serveur élastique vers le serveur de flotte

scp root@es.evermight.net:/etc/elasticsearch/certs/ca/ca.crt ./

Revenez maintenant au serveur élastique et exécutez les commandes suivantes :

cd ~ vi fleet-cert.sh

collez le contenu ci-dessous dans le fichier

mkdir /root.ft.evermight.net/ /usr/share/elasticsearch/bin/elasicsearch-certutil cert \ --out /root/ft.evermight.net/fleet.zip \ --name fleet \ --ca-cert /etc/elasticsearch/certs/ca/ca.crt \ --ca-key /etc/elasticsearch/certs/ca/ca.key \ --dns ft.evermight.net \ --pem

et enregistrez le fichier, exécutez maintenant les commandes ci-dessous :

chmod +x fleet-cert.sh; ./fleet-cert.sh

Allez maintenant dans le répertoire où le certificat a été zippé et décompressez-le :

cd ft.evermight.net/; unzip fleet.zip;

Revenez maintenant au terminal du serveur de flotte et exécutez la commande suivante :

mv fl.evermight.net ft.evermight.net; cd ft.evermight.net

Exécutez maintenant cette commande sur le terminal du serveur de flotte pour copier les certificats du serveur élastique vers le serveur de flotte

scp root@es.evermight.net:/root/ft.evermight.net/fleet/* ./

Revenez maintenant à votre Kibana et créons la politique du serveur de flotte. Cliquez sur Ajouter un serveur de flotte comme indiqué dans la capture d'écran ci-dessous :

alt text Ajouter un serveur de flotte

Aller à Avancé, et cliquez sur Créer une politique comme le montre l'image ci-dessous :

alt text Créer une politique de serveur de flotte

Pour le Choisissez un mode de déploiement pour la sécurité, cliquez sur production.

Pour le Ajoutez votre hôte Fleet Server, dans la section nom, tapez fleet, et dans la section URL,https://ft.evermight.net:8220.

Then click on Ajouter un hôte. Cliquez ensuite sur Générer un jeton de service. Copiez les commandes sur le Installer Fleet Server sur un hôte centralisé section:

alt text Installer Fleet Server sur une commande hôte centralisée

et sur le terminal du serveur de flotte, créez un fichier :

cd ~ vi install.sh

et collez le contenu qui a été copié et apportez les modifications appropriées comme indiqué dans la capture d'écran ci-dessous :

alt text Modification de la commande Installer Fleet Server sur un hôte centralisé

Modifiez ensuite l'autorisation du fichier et exécutez-le.

chmod +x install.sh ./install.sh

Cliquez sur Oui lorsque vous y êtes invité.

Maintenant à Kibana, allez à Flotte > Agent, puis actualisez la page. Vous devriez obtenir un résultat similaire à la capture d'écran ci-dessous :

alt text Elastic Agent installé avec succès

Agent élastique : site Web sous Linux [40:33]

Accédez au terminal du serveur du site web. Installez-y Apache :

apt-get install -y apache-2

Accédez à l'adresse IP de l'ordinateur dans votre navigateur. Si vous l'avez oubliée, vous pouvez utiliser la commande ci-dessous pour la récupérer :

ip a

Sur Kibana, allez à Intégrations > Parcourir les intégrations, et recherchez Apache, et cliquez sur le résultat comme indiqué dans la capture d'écran ci-dessous :

alt text Recherche Apache

Cliquez sur Ajouter un serveur HTTP Apache par le coin supérieur droit.

alt text Ajouter Apache

Sur le Où ajouter cette intégration section, sous Nouveaux hôtes, cliquez sur Options avancées. Faites défiler vers le bas pour Sortie pour les intégrations et changer de défaut à logstash. Faites défiler vers le bas pour Sortie pour la surveillance des agents et changer de défaut à logstash.

Then click on save and continue, puis sélectionnez Ajoutez Elastic Agent à vos hôtes.

Copiez ensuite la commande pour qu'elle soit gérée par le serveur de flotte, comme indiqué dans la capture d'écran ci-dessous :

alt text Commande à gérer par flotte

Accédez au terminal du serveur du site Web et exécutez cette commande pour copier les certificats du serveur élastique vers le serveur du site Web.

mkdir -p /etc/certs/ca; cd /etc/certs/ca/; scp root@es.evermight.net:/etc/elasticsearch/certs/ca/ca.crt ./

Créer un fichier pour exécuter l'installation

cd ~ vi install-agent.sh

et collez le contenu qui a été copié et apportez les modifications appropriées comme indiqué dans la capture d'écran ci-dessous :

alt text Commande éditée

Modifiez ensuite l'autorisation du fichier et exécutez-le.

chmod 755 install-agent.sh ./install-agent.sh

Et entrez oui lorsque vous y êtes invité.

Agent élastique : journaux d'événements sous Windows [47:50]

Ouvrez un terminal de type bash sur la machine/serveur Windows et copiez le fichier de certificat

mkdir certs cd certs scp root@es.evermight.net:/etc/elasticsearch/certs/ca/ca.crt ./

Accédez à la barre de recherche de Windows et recherchez Observateur d'événements et exécutez-le en tant qu'administrateur comme indiqué dans la capture d'écran ci-dessous :

alt text Exécuter l'observateur d'événements en tant qu'administrateur

Lorsqu'il s'ouvre, allez à Journaux des applications et services > Microsoft > Activité WMI > Opérationnel.

Sur Kibana, allez à Intégrations > Parcourir les intégrations, et recherchez windows, et cliquez sur le résultat comme indiqué dans la capture d'écran ci-dessous :

alt text Recherche personnalisée dans le journal des événements Windows

Cliquez sur Ajouter un journal des événements Windows personnalisé par le coin supérieur droit.

alt text Ajouter un journal des événements Windows personnalisé

Revenez à l'application Observateur d'événements sur votre ordinateur Windows et copiez le Nom du journal comme indiqué dans la capture d'écran ci-dessous, et collez-le dans le Journaux d'événements Windows personnalisés section sur votre page Kibana.

alt text

Copier le nom du journal de l'observateur d'événements

Sur le Où ajouter cette intégration section, sous Nouveaux hôtes, cliquez sur Options avancées.

Faites défiler vers le bas pour Sortie pour les intégrations et changer de défaut à logstash. Faites défiler vers le bas pour Sortie pour la surveillance des agents et changer de défaut à logstash.

Then click on save and continue, puis sélectionnez Ajoutez Elastic Agent à vos hôtes.

Copiez ensuite la commande pour qu'elle soit gérée par le serveur de flotte, comme indiqué dans la capture d'écran ci-dessous :

alt text Commande pour que le journal des événements Windows soit géré par flotte

Accédez à un éditeur de texte sur votre machine Windows et modifiez la commande copiée comme indiqué dans la capture d'écran ci-dessous :

alt text Commande éditée

Ouvrir et exécuter Powershell En tant qu'administrateur, collez la commande et exécutez-la. Saisissez « oui » lorsque vous y êtes invité.