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 

 

posted @ 2018-04-20 17:40  乌托邦眺望  阅读(3936)  评论(1编辑  收藏  举报