yum安装logstash 不生效


问题描述

根据logstash的配置方法写了一个配置文件,并放入/etc/logstash/conf.d/目录下,然后我们运行logstash

# service logstash start
Logstash started.
# service logstash status Redirecting to
/bin/systemctl status logstash.service ● logstash.service - logstash Loaded: loaded (/etc/systemd/system/logstash.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2018-04-19 16:51:23 CST; 22h ago Main PID: 2772 (java)
 

程序已经启动,启动后,ES并没有收集到预期的日志信息,
查看/var/log/logstash/logstash.log只有Logstash启动信息,没有日志相关的信息。 


然后停止logstash使用,logstash -f /etc/logstash/conf.d 方式再次启动logstash进行测试,
结果ES可以收到相关的日志 
也就是说以服务的方式启动logstash,/etc/logstash/conf.d下的配置文件不生效,使用-f参数指定配置文件是生效的!!

 

问题分析过程

1. 首先查看了使用服务方式启动时的进程参数

通过与手动启动的方式对比并没有什么区别,但结果却不同,于是我们追溯使用服务方式启动时的具体环境参数和命令

2. 分析/etc/init.d/logstash的启动过程

通过第1点的分析,我们追溯到服务的启动环境可能是导致结果不一样的原因,
而在CentOS7中的启动是由/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

 

我们使用手动命令直接在bash中以root用户执行上述命令同样是有效的,Logstash正确工作,
所以我们几乎确认是由于logstash的默认执行用户(logstash)权限不足导致的。

 

3. 修改文件属主和权限方法

1.将配置文件权限修改为777
# chmod 777 /etc/logstash/conf.d/logstash.conf

2.将修改属主为logstash

1、2测试结果  都失败

 

4. 修改启动文件——直接以root用户运行(成功)

logstash是以logstash用户启动的

 

我们将其修改为root,

修改前

[Unit]
Description=logstash

[Service]
Type=simple
User=logstash Group=logstash
# Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.

修改后

[Unit]
Description=logstash

[Service]
Type=simple
User=root
Group=root
# Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.

 

 重新加载 systemctl 服务

# systemctl daemon-reload

重启 logstash

# service logstash restart 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM