gpt4 book ai didi

linux - centos 7 的 logstash filebeat 服务帐户

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:10:02 27 4
gpt4 key购买 nike

我正在尝试在 CentOS 7 环境中获取 filebeat(用于 logstash 转发)以在我创建的用户帐户下运行:filebeat 而不是 root。我尝试将 /etc/rc.d/init.d/filebeat 文件编辑为以下内容,但无济于事。我可能做错了什么,但对 BASH 脚本编写还是有点陌生​​,我可能把它放在了错误的地方?我试图按照位于 here 的建议实现说明进行操作

为简洁起见,我只展示上述文件的第一部分,因为后面的部分没有变化:

#!/bin/bash
#
# filebeat filebeat shipper
#
# chkconfig: 2345 98 02
#

### BEGIN INIT INFO
# Provides: filebeat
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Sends log files to Logstash or directly to Elasticsearch.
# Description: filebeat is a shipper part of the Elastic Beats
# family. Please see: https://www.elastic.co/products/beats
### END INIT INFO



PATH=/usr/bin:/sbin:/bin:/usr/sbin
export PATH

[ -f /etc/sysconfig/filebeat ] && . /etc/sysconfig/filebeat
pidfile=${PIDFILE-/var/run/filebeat.pid}
agent=${PB_AGENT-/usr/bin/filebeat}
args="-c /etc/filebeat/filebeat.yml"
test_args="-e -configtest"
wrapper="filebeat-god"
wrapperopts="-r / -n -p $pidfile"
RETVAL=0
service_user="filebeat"
# Source function library.
. /etc/rc.d/init.d/functions

# Determine if we can use the -p option to daemon, killproc, and status.
# RHEL < 5 can't.
if status | grep -q -- '-p' 2>/dev/null; then
daemonopts="--user $service_user --group $service_group --pidfile $pidfile"
**chown -R $service_user /etc/filebeat || return 1
chown $service_user $pidfile || return 1
chmod g+w $pidfile || return 1**
pidopts="-p $pidfile"
touch
fi

之前我使用类似于以下内容创建了一个用户帐户 filebeat:

useradd filebeat -u 5044 -c "Filebeat Service Account" -d /dev/null -s /sbin/nologin

但是,当我在启动后尝试查看进程时,它仍然显示为 root 拥有:

[root@testvm ~]# ps -aef | grep filebeat
root 26030 1 0 13:16 ? 00:00:00 /usr/bin/filebeat -c /etc/filebeat/filebeat.yml

最佳答案

在 RHEL/CentOS 7 上,systemd 管理服务,因此不使用 init.d 文件。您应该修改 Filebeat 的单元文件,以便以不同的用户身份运行该服务。单元文件安装在 /lib/systemd/system/filebeat.service

您需要在 Service 部分添加一个 User 选项。

[Service]
User=<username>

用户必须对日志文件具有读取权限,并且必须对包含日志文件的目录具有搜索权限(执行位)。 Filebeat 使用 stat 收集文件的 inode ,stat 根据其 man page 需要目录的执行权限。 .

关于linux - centos 7 的 logstash filebeat 服务帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38944786/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com