2016-09-06 3 views
0

서비스로 elastalert를 시작하는 시작 스크립트를 작성하려고합니다. elastalert 파이썬을 사용하여 다음과 같이 시작 : 내가 만들려고 노력했습니다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'

답변

0

잘못된 디렉토리에서 ElastAlert를 시작하려고하면 오류 메시지가 나타납니다. 기본 위치에있는 한 config.yaml의 위치를 ​​전달할 필요가 없습니다. 정의한 디렉토리가 정확하다고 가정하면 config 플래그 및 config 경로를 사용하지 않고 실행 해보십시오.

0

서비스 단위로 시도해 볼 수 있습니까? 실행하려는 명령과 함께 Exec 섹션을 작성해야합니다.