#必须先安装java环境。可以从es的安装目录找java版本。es7之后直接将jdk打包到了es的安装包中。
1、yum安装,或者下载rpm包安装
2、配置/etc/logastsh/下:
2.1配置logstash.yml:
grep -vE '^#|^$' logstash.yml
path.data: /var/lib/logstash
config.reload.automatic: true
config.reload.interval: 60s
queue.type: persisted
dead_letter_queue.enable: true
path.logs: /var/log/logstash
2.2配置jvm.options:堆初始内存和最大内存。
-Xms512m
-Xmx512m
2.3配置pipelines.yml:
- pipeline.id: test
path.config: "/etc/logstash/conf.d/test/*.conf" #配置文件的具体路径
2.4下载jdbc input插件(用于同步mysq数据到es,若不需要,则跳过此步骤):
下载 mysql-connector-java-8.0.18.jar 到路径:/usr/share/logstash/logstash-core/lib/jars/
3、systemd配置和启动,先进行命令行启动调试,启动成功后转为systemd管理,要注意文件权限问题,这是很多时候systemd启动失败的原因。
运行脚本:
/usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd
3.1先验证单个配置文件启动成功
/usr/share/logstash/bin/logstash --path.settings "/etc/logstash" -f 配置文件路径。
3.2再验证pipelines.yml中配置的所有文件启动成功
/usr/share/logstash/bin/logstash --path.settings "/etc/logstash"
--------
问题汇总:
1、控制台命令启动正常,但是用systemd启动失败,用systemctl status logstash和journalctl -u logstash查不到明显的报错,
然后查看日志/var/log/messages,发现报错原因:logstash: could not find java; set JAVA_HOME or ensure java is in PATH
解决方法:
cat /etc/sysconfig/logstash
JAVA_HOME=/usr/share/elasticsearch/jdk