TUTOS.EU

Intaller logstash - à faire


Installation avec apt-get

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Lien vers le fichier : cliquez ici

Pour avoir un transport d'APT qui permet d'utiliser les dépôts auxquels on accède au moyen de HTTPS (protocole HTTP Secure)

apt-get install apt-transport-https
Lien vers le fichier : cliquez ici
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Lien vers le fichier : cliquez ici

Installation de filebeat

apt-get update && apt-get install filebeat
Lien vers le fichier : cliquez ici

enable de filebeat

systemctl enable filebeat
Lien vers le fichier : cliquez ici
Type Description Location
home Home of the Filebeat installation. /usr/share/filebeat
bin The location for the binary files. /usr/share/filebeat/bin
config The location for configuration files. /etc/filebeat
data The location for persistent data files. /var/lib/filebeat
logs The location for the logs created by Filebeat. /var/log/filebeat

Modification de la configuration

nano /etc/filebeat/filebeat.yml
Lien vers le fichier : cliquez ici

pour avoir en input les logs

Pour ne pas sortir sur elasticsearch

mais sur Kafka

# ---------------------------- Kafka Output ------------------------------------
output.kafka:
  #codec.format:
   #String: '%{[@timestamp]} %{[message]}'

  # initial brokers for reading cluster metadata
  hosts: ["votreserveurkafka:9092"]

  # message topic selection + partitioning
  topic: secure-log
  partition.round_robin:
    reachable_only: false

  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000
Lien vers le fichier : cliquez ici

Ajout du module system

cd /usr/share/filebeat/bin/
filebeat modules enable system
Lien vers le fichier : cliquez ici

Check de la configuration

more /etc/filebeat/filebeat.yml | grep -v "^#"
Lien vers le fichier : cliquez ici

Test de la configuration

cd /usr/share/filebeat/bin/
filebeat test config –e –c /etc/filebeat/filebeat.yml
Lien vers le fichier : cliquez ici

Lancement manuel

cd /usr/share/filebeat/bin/
filebeat -e -c /etc/filebeat/filebeat.yml
Lien vers le fichier : cliquez ici

Lancement automatique

systemctl enable Filebeat
systemctl start filebeat
Lien vers le fichier : cliquez ici

Edition du service

nano /usr/lib/systemd/system/filebeat.service
Lien vers le fichier : cliquez ici

Listage des modules

cd /usr/share/filebeat/bin
filebeat modules list
Lien vers le fichier : cliquez ici

Le fichier des paramètres est dans

C:\ProgramData\Elastic\Beats\winlogbeat
Lien vers le fichier : cliquez ici

Check de l'agent winlogbeat sous Windows

Cd C:\ProgramData\Elastic\Beats\winlogbeat
"C:\Program Files\Elastic\Beats\7.16.2\winlogbeat\winlogbeat.exe" test output
"C:\Program Files\Elastic\Beats\8.0.0\winlogbeat\winlogbeat.exe" test output
Lien vers le fichier : cliquez ici

On peut regarder les logs avec

Get-Content -Path C:\ProgramData\Elastic\Beats\winlogbeat\logs\winlogbeat
Get-Content -Path C:\ProgramData\Elastic\Beats\filebeat\logs\filebeat-20220217.ndjson
Lien vers le fichier : cliquez ici

Documentation sur https://kafka.apache.org/documentation/#quickstart

Ouvrir les ports 2181 et 9092
2181 est utilisé par Zookeeper et 9092 par le broker Kafka

En utilisant nftables à mon niveau je modifie nftables.rules avec

nano /etc/nftables.rules

et j'ajoute ces lignes

table ip myfilter {
        chain myinput {
                tcp dport {2181, 9092} accept

        }

        chain myoutput {
                tcp dport {2181, 9092} accept
        }

}
Lien vers le fichier : cliquez ici

Installation de java

sudo apt install default-jre
java -version
Lien vers le fichier : cliquez ici

Sur centos

yum install java
java -version
Lien vers le fichier : cliquez ici

Création d'un répertoire pour kafka

mkdir /opt/kafka
Lien vers le fichier : cliquez ici

Création d'un user pour kafka sans qu'il ait la possibilité de se logger

useradd -M --shell /usr/sbin/nologin kafka
Lien vers le fichier : cliquez ici

Télécharger kafka dans /opt/kafka depuis https://kafka.apache.org/downloads
(partie à recontrôler)

cd /opt/kafka
wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.13-2.8.1.tgz

tar -xvzf kafka_2.13-2.8.1.tgz --strip-components 1
Lien vers le fichier : cliquez ici

Modifier zookeeper.properties

mkdir /opt/kafka/zookeeper
nano /opt/kafka/config/zookeeper.properties
Lien vers le fichier : cliquez ici

Mettre
dataDir=/opt/kafka/zookeeper

Modifier le server.properties de kafka

nano /opt/kafka/config/server.properties
Lien vers le fichier : cliquez ici

Mettre
delete.topic.enable = true
log.dirs=/home/kafka/logs

Donner les droits au compte kafka

chown –R kafka.kafka /opt/kafka
Lien vers le fichier : cliquez ici

Création d'un service pour le démarrage automatique de zookeeper

nano /etc/systemd/system/zookeeper.service
Lien vers le fichier : cliquez ici

Y mettre ceci

[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target
Lien vers le fichier : cliquez ici

Activation du service zookeeper

systemctl enable zookeeper.service
systemctl start zookeeper.service
Lien vers le fichier : cliquez ici

Le service se test avec

systemctl status zookeeper.service
Lien vers le fichier : cliquez ici

Création d'un service pour le démarrage automatique de kafka

nano /etc/systemd/system/kafka.service
Lien vers le fichier : cliquez ici

Y mettre ceci

[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties > /opt/kafka/kafka.log 2>&1'
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target
Lien vers le fichier : cliquez ici

Activation du service kafka

systemctl enable kafka.service
systemctl start kafka.service
systemctl status kafka.service
Lien vers le fichier : cliquez ici

Création d'un topic secure-log

/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic secure-log
/kafka/bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic secure-log --bootstrap-server localhost:9092
Lien vers le fichier : cliquez ici

Afficher des informations sur le topic secure-log
Adaptez nomduserveur avec le nom de votre propre serveur

/opt/kafka/bin/kafka-topics.sh --describe --zookeeper nomduserveur --topic secure-log
Lien vers le fichier : cliquez ici

Lister les évènements reçus depuis la création du topic

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic secure-log --from-beginning
Lien vers le fichier : cliquez ici

Lister les évènements reçus en temps réel sur le topic secure-log

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic secure-log
/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic secure-log
Lien vers le fichier : cliquez ici

Création d'un évènement avec pour topic secure-log

echo "Testing Kafka" | /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic secure-log > /dev/null
Lien vers le fichier : cliquez ici

Check du service logstash

systemctl status logstash
Lien vers le fichier : cliquez ici

Test de logstash

cd /etc/logstash
/usr/share/logstash/bin/logstash -f logstash.conf --config.test_and_exit
Lien vers le fichier : cliquez ici