Я пытаюсь получить filebeat (для пересылки журнала) в среде CentOS 7 для запуска под моей созданной учетной записью пользователя: filebeat вместо root. Я пробовал редактировать файл /etc/rc.d/init.d/filebeat
следующим образом, но безрезультатно. Возможно, я что-то делаю неправильно, но все же немного новичок в BASH-скриптах, что я могу помещать его в неправильное место? Я пытался следовать предложенным им инструкции по осуществлению, расположенные herelogstash filebeat учетная запись службы для centos 7
Для краткости я только показывая первую часть указанного файла, как последние части неизменны:
#!/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
Однако, когда я пытаюсь взглянуть на процесс после его запуска до сих пор показывает, как принадлежащие корню:
[[email protected] ~]# ps -aef | grep filebeat
root 26030 1 0 13:16 ? 00:00:00 /usr/bin/filebeat -c /etc/filebeat/filebeat.yml
Я не уверен, но из того, что я вижу в документе: https://www.elastic.co/guide/en/beats/filebeat/current/configuration-run-options.html - в Linux вы будете по крайней мере, один поток работает как root для сборщика мусора Go. Для других потоков привилегии должны быть удалены. Вы можете проверить все потоки, используя 'ps -eLf' – alexK
@alexK, я выделил вас для ссылки на документацию, но после тестирования параметра runoptions он просто не работал. – user3614014