使用 systemctl start logstash.service方式啓動Logstash,尋找Logstash配置文件的過程,如下:
- 使用systemctl start logstash.service啓動Logstash時,
- 先去尋找/etc/systemd/system/logstash.service;
- 再去尋找/etc/default/logstash
- 最後去這裏查找配置文件 /etc/logstash
感覺上面分析的很對,但是我直接systemctl start logstash.service能啓動Logstash,但是數據無法發送到ElasticSearch,提示無法尋找配置文件。Fuck!!!
[qingyuan@centos bin]$ systemctl status logstash.service
● logstash.service - logstash
Loaded: loaded (/etc/systemd/system/logstash.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2019-12-12 15:00:18 CST; 9s ago
Main PID: 31291 (java)
Tasks: 17
CGroup: /system.slice/logstash.service
└─31291 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true -Dfile.encoding=UTF-8...
/etc/systemd/system/logstash.service
[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=/usr/share/logstash/bin/logstash "--path.settings" "/etc/logstash"
Restart=always
WorkingDirectory=/
Nice=19
LimitNOFILE=16384
[Install]
WantedBy=multi-user.target
/etc/default/logstash
[root@centos default]# cat logstash
LS_HOME="/usr/share/logstash"
LS_SETTINGS_DIR="/etc/logstash"
LS_PIDFILE="/var/run/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"
我只好如下操作
使用./logstash -f /etc/logstash/logstash.conf 可以啓動,可以發送到elasticsearch;但是缺少未指定的配置文件:
WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults
Could not find log4j2 configuration at path /usr/share/logstash/config/log4j2.properties. Using default config which logs errors to the console
ERROR: Failed to read pipelines yaml file. Location: /usr/share/logstash/config/pipelines.yml