Я устанавливаю скрипт на python, который будет анализировать входные данные, полученные через UDP от другого сервера. Поскольку сообщение или количество сообщений могут быть получены случайным образом, я пытаюсь rsyslog omprog для анализа входных данных. Однако я не могу прочитать сообщение по UDP и не могу отправить входные данные, полученные в качестве параметра, в python, используя omprog
Получение сообщения системного журнала от определенного сервера будет храниться в /var/log/pcrf_notification.log. Поэтому я настроил rsyslog.conf, как показано ниже:
[root@PORSG1NT101A]# vi /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$template RemoteLogs,"/var/log/%HOSTNAME%/pcrf_notification.log"
*.* ?RemoteLogs
Содержимое внутри pcrf_notification.log будет:
Mar 15 16:27:30 PORPF0MP1 Policy Syslog: 5540149665,123,5000001,2019-03-15T16:27:30.290
Mar 15 16:27:52 PORPF0MP1 Policy Syslog: 5540149665,123,5000001,2019-03-15T16:27:52.895
Теперь мне нужно отправить каждую строку при получении скрипту Python. Это я не могу.
Например, мне нужно отправить
"Mar 15 16:27:52 PORPF0MP1 Policy Syslog: 5540149665,123,5000001,2019-03-15T16:27:52.895"
к скрипту Python.
Я создал файл pcrf_scripting.conf в папке rsyslog.d
[root@PORSG1NT101A rsyslog.d]# vi /etc/rsyslog.d/pcrf_scripting.conf
$ModLoad omprog
:inputname, isequal, "imudp" action(type="omprog"
binary="/tmp/hello.py --param1 a --param2 b"
template="RSYSLOG_TraditionalFileFormat")
Мне нужно заменить --param1 a --param2 b на каждую строку.