私は、サービスとしてelastalertを起動する起動スクリプトを作成しようとしています。 elastalertのpythonを使用し、次のように起動します:ElastAlert BashスタートアップスクリプトCentOS 7
python -m elastalert --verbose --rule rules_folder/frequency.yaml --config config.yaml
私はそれが次のように動作するようにしようとしてきた:
#!/bin/bash
# elastalert startup script for elastalert
# pidfile: /var/run/elastalert.pid
# chkconfig: 2345 99 01
NAME=elastalert
PIDFILE=/var/run/$NAME.pid
ELASTALERT_DIR=/elastalert/elastalert
ELASTALERT_USER=elastalert
CONFIG_FILE=$ELASTALERT_DIR/config.yaml
ELASTALERT=$ELASTALERT_DIR/$NAME
. /etc/rc.d/init.d/functions
case $1 in
start)
echo -n $"Starting $NAME: "
cd $ELASTALERT_DIR
daemon --pidfile="$PIDFILE" "$ELASTALERT --rule rules_folder/frequency.yaml --config $CONFIG_FILE &"
RETVAL=$?
pid=`ps -ef | grep python | grep elastalert | awk '{print $2}'`
if [ -n "$pid" ]; then
echo $pid > "$PIDFILE"
fi
;;
stop)
echo -n $"Stopping $NAME: "
killproc -p "$PIDFILE" -d 10 "$ELASTALERT"
RETVAL="$?"
echo
[ $RETVAL = 0 ] && rm -f "$PIDFILE"
;;
*)
echo "Usage: /etc/init.d/elastalert {start|stop}" ;;
esac
exit 0
私は、スクリプトを実行しようとすると、私は次のエラーを取得する:
virtualenvelastalert) [[email protected] scripts]# elastalert Traceback (most recent call last): File "/virtualenvelastalert/bin/elastalert", line 11, in load_entry_point('elastalert==0.0.95', 'console_scripts', 'elastalert')() File "/virtualenvelastalert/lib/python2.7/site-packages/elastalert-0.0.95-py2.7.egg/elastalert/elastalert.py", line 1426, in main client = ElastAlerter(args) File "/virtualenvelastalert/lib/python2.7/site-packages/elastalert-0.0.95-py2.7.egg/elastalert/elastalert.py", line 94, in init self.conf = load_rules(self.args) File "/virtualenvelastalert/lib/python2.7/site-packages/elastalert-0.0.95-py2.7.egg/elastalert/config.py", line 373, in load_rules conf = yaml_loader(filename) File "/virtualenvelastalert/lib/python2.7/site-packages/staticconf/loader.py", line 161, in yaml_loader with open(filename) as fh: IOError: [Errno 2] No such file or directory: 'config.yaml'