Назад | Перейти на главную страницу

Syslog-ng не запускает скрипт Python

В настоящее время я пытаюсь настроить приложение Syslog для запуска определенного сценария python при обнаружении определенного сообщения, однако у меня возникают проблемы с вызовом сценария python. Ниже представлен текущий файл конфигурации.

Чтобы подтвердить, я вижу журналы в месте назначения журнала, однако место назначения программы по какой-то причине не работает.

Для информации я использовал https://syslog-ng.com/documents/html/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/reference-filters.html#filter-message

а также https://syslog-ng.com/documents/html/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/patterndb-actions-external.html

для справки, конфигурация немного запутана, но это потому, что я все еще на начальных этапах.

@version: 3.5
@include "scl.conf"
@include "`scl-root`/system/tty10.conf"

# Syslog-ng configuration file, compatible with default Debian syslogd
# installation.

# First, set some global options.
options { chain_hostnames(off); flush_lines(1); use_dns(no); use_fqdn(no);
          owner("root"); group("adm"); perm(0640); stats_freq(0); keep-        
hostname(yes);
};


#destination dest_triggers{ program("/bin/echo 'haha' >> /tmp/test");};
destination dest_triggers{ program("python             
/home/jonathan/PycharmProjects/FYP/syslog.py >> /tmp/testfile");};
filter int_down_trigger {
        message(".*changed state to down");
};
source s_net { syslog(transport("udp"));};
destination d_network_local { file("/var/log/messages_${HOST}"); };
log{source(s_net); destination(d_network_local); };

#log{source(s_net); filter(int_down_trigger); destination(dest_triggers); };
log{source(s_net);  destination(dest_triggers); };

@include "/etc/syslog-ng/conf.d/*.conf"

Скрипт Python:

import time
    with open('downlog', 'a+') as f:
        f.write(time.strftime("%A, %d %B - %X" )+"A link went down\n")
        f.close()