What kind of init script support will we get?


(David Reagan) #1

One of the biggest issues I have with LSF is getting "service logstash-forwarder " to work on all my servers. Ubuntu is easy, but CentOS and OES/SLES were painful. On OES/SLES I ended up just using monit to make it work.

The problem was that LSF didn't supply an init script compatible with OES/SLES. If I hadn't used the monit solution, I would have had to write one from scratch.

So, what OS's will have "service filebeat " support from the official .deb and .rpm packages?


(Tudor Golubenco) #2

We test each release on CentOS 6 and 7, so that should work without issues. OpenSuse was reported not to work in this ticket, but it should be easy to adjust the init script, we'll try to do it soon.

I'm not very familiar with OES/SLES, so I have some questions: if we add tests for OpenSuse can we expect the packages to work well on OES/SLES? Which versions do you suggest we should test with to cover most of the user base?


(David Reagan) #3

Here's what my co-worker who understands Novell said:

SLES and OpenSUSE have diverged quite a bit over the last few
years. The biggest difference is that OpenSUSE has switched to SystemD
and SLES still uses init. Other than that, SLES is a few years behind in
most of it's packages. You'd have to go through the requirements for
the new app and see if SLES can meet them. SLES
does have a 30 day download that Elastic can use for testing or Elastic
can contact Novell and become part of the PartnerNet which will give
them access to the Novell software for testing and certification
purposes.

As for version numbers:

SLES 11 Service Pack 3

OES 11 Service Pack 2


(Phil) #4

I am running Centos 7 in AWS and have been unable to get filebeat to start as a service no matter what I do.

if I execute "service filebeat start" it says "ok", but filebeat is not actually running, nor can I find a single log message anywhere indicating what the issue is.

if I execute /etc/init.d/filebeat start, it runs correctly. I tried converting to a systemd service, and similarly filebeat-god does not start, nor does it leave any log messages anywhere. There are no errors from selinux either saying something was denied.

Very frustrating.


(Tudor Golubenco) #5

Can you share the systemd unit file? The trick is that if you use systemd, you don't need filebeat-god. That's a simple supervisor that can be easily replaced by systemd.


(Patrick) #6

Hi, i have the same problem with SLES 11. The service just won't start :frowning:
I installed the RPM version and copied my working (on ubunto 14.03 LTS) filebeat.yml to the machine an restart the service:
linux-ncsm:/ # service filebeat restart
/etc/init.d/filebeat: line 34: /etc/rc.d/init.d/functions: No such file or directory
/etc/init.d/filebeat: line 38: status: command not found
Stopping filebeat:
Starting filebeat: /etc/init.d/filebeat: line 54: daemon: command not found

i had a look in the /etc/init.d/filebeat file and uncommented some things but it won't work either... Can you help me? i just have no clue what to change to make the service run... i think it's a init vs. systemd issue. thank you very much for your answer and developing such a great sw!


#7

Hi Patrick,
I had the same problem when I installed filebeat today. One problem that "daemon" is not available on SLES so the script have to be modified.

Here's my version I changed to use startproc instead of daemon.

#!/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="/usr/bin/filebeat-god"
wrapperopts="-r / -n -p $pidfile"
RETVAL=0

# Source function library.
. /etc/rc.status
#. /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="-p $pidfile"
    pidopts="-p $pidfile"
fi

test() {
        $agent $args $test_args
}

start() {
    echo -n $"Starting filebeat: "
        test
        if [ $? -ne 0 ]; then
                echo
                exit 1
        fi
    startproc $daemonopts $wrapper $wrapperopts -- $agent $args
    RETVAL=$?
    echo
    return $RETVAL
}

stop() {
    echo -n $"Stopping filebeat: "
    killproc $pidopts $wrapper
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f ${pidfile}
}

restart() {
        test
        if [ $? -ne 0 ]; then
                return 1
        fi
    stop
    start
}

rh_status() {
    status $pidopts $wrapper
    RETVAL=$?
    return $RETVAL
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        restart
    ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        restart
    ;;
    status)
        rh_status
    ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart}"
        exit 1
esac

exit $RETVAL

Because startproc parameters are a bit different I had to modiy the daemonopts parameter and enter the full path to the filebeat-god binary. In also had to replace /etc/rc.d/init.d/functions with /etc/rc.status but now the script is working.

Hope that will help.


(Patrick) #8

hi @lutzm, thank you very much!!!! it worked :slight_smile: (i needed to uncomment line 37-41 (the status function), too and add filebeat via yast to autostart)


(system) #9