Installation service Logstash
Logstash
a été installé depuis les binaires. Le déploiement a été réalisé dans le répertoire /var/opt/logstash
.
Cet article présente la mise en place d'un service avec systemd, en s'inspirant du paquet Debian
disponible.
Votre avis
Nobody voted on this yet
|
|
Exécution
Logstash
nécessite la mise en place de configurations pour les sources de données. En cas d'absence de configuration, le service mis en place démarre mais s'arrête automatiquement, n'ayant aucune source de données à exploiter.
De plus, la déclaration du service contient l'intruction suivante Restart=always
. Donc, l'instance systemd
relance l'instance Logstash
suite à son arrêt, donnant l'impression que le service est disponible, alors qu'elle ne fait que s'arrêter / démarrer.
Création service
Contrairement à ElasticSearch
et Kibana
, il n'exite pas de configuration prète à l'emploi pour la mise en place d'un service. Cependant, le paquet Debian
contient le script postinst
qui déclenche l'exécution du script system-install
, cf https://github.com/elastic/logstash/blob/master/bin/system-install.
Ce script est exécuté en fournissant l'emplacement du fichier de configuration de démarrage, ie startup.options
, pour générer l'ensemble des fichiers nécessaires pour la mise en place du service.
#sudo /var/opt/logstash/install/bin/system-install /var/opt/logstash/common/config/startup.options Using provided startup.options file: /var/opt/logstash/common/config/startup.options Successfully created system startup script for Logstash
La déclaration du service est générée dans le fichier /etc/systemd/system/logstash.service
avec le contenu suivant.
[Unit]
Description=logstash
[Service]
Type=simple
User=logstash
Group=logstash
# Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.
# Prefixing the path with '-' makes it try to load, but if the file doesn't
# exist, it continues onward.
EnvironmentFile=-/etc/default/logstash
EnvironmentFile=-/etc/sysconfig/logstash
ExecStart=/var/opt/logstash/installed/bin/logstash "--path.settings" "/var/opt/logstash/common/config"
Restart=always
WorkingDirectory=/
Nice=19
LimitNOFILE=16384
[Install]
WantedBy=multi-user.target
A noter, deux fichiers logstash
sont référencés depuis les répertoire /etc/default
et /etc/sysconfig
. Seul celui dans /etc/default
est également créé avec le contenu suivant.
JAVACMD="/usr/bin/java"
LS_HOME="/var/opt/logstash/installed"
LS_SETTINGS_DIR="/var/opt/logstash/common/config"
LS_PIDFILE="/var/run/logstash/logstash.pid"
LS_USER="logstash"
LS_GROUP="logstash"
LS_GC_LOG_FILE="/var/log/logstash/gc.log"
LS_OPEN_FILES="16384"
LS_NICE="19"
SERVICE_NAME="logstash"
SERVICE_DESCRIPTION="logstash"
En cas de modification, il est recommandé de placer les extensions dans le fichier /etc/sysconfig/logstash
.
Création service
Attention, le fichier a été créé à l'emplacement /etc/systemd/system/logstash.service
. Afin d'harmoniser les installations sur une machine Ubuntu
, ce fichier est déplacé dans le répertoire /lib/systemd/system
.
#sudo mv /etc/systemd/system/logstash.service /lib/systemd/system
La déclaration du service s'effectue via la commande systemctl enable
en fournissant l'emplacement du fichier, créant tous les liens nécessaires.
#sudo systemctl enable /lib/systemd/system/logstash.service Created symlink /etc/systemd/system/multi-user.target.wants/logstash.service → /lib/systemd/system/logstash.service.
Pour le démarrer il suffit alors d'exécuter la commande systemctl
avec l'argument start
.
#sudo systemctl start logstash
Voir aussi
Sources installation service : https://github.com/elastic/logstash/blob/master/bin/system-install