接收到的随机UDP消息需要通过rsyslog omprog解析为python文件

2024-06-24 12:58:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在设置一个python脚本,它将解析通过UDP从另一个服务器接收的输入。由于消息或消息数量可以随机接收,所以我尝试rsyslog omprog来解析输入。但是,我无法在UDP上读取消息,也无法使用omprog将接收到的作为参数的输入发送到python

从特定服务器接收syslog消息将存储在/var/log/pcrf中_通知.log因此,我配置了rsyslog.conf文件如下所示:

         [root@PORSG1NT101A]# vi /etc/rsyslog.conf
         $ModLoad imudp
         $UDPServerRun 514

         $template RemoteLogs,"/var/log/%HOSTNAME%/pcrf_notification.log"
         *.* ?RemoteLogs

pcrf的内容_通知.log将是:

^{pr2}$

现在,我需要在接收到python脚本时发送每一行。这是我失败的地方。在

例如,我需要发送

 "Mar 15 16:27:52 PORPF0MP1 Policy Syslog: 5540149665,123,5000001,2019-03-15T16:27:52.895" 

一个python脚本。在

我创建了一个pcrf_脚本.confrsyslog.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")

我需要用每一行替换--param1a--param2 b。在


Tags: 文件服务器脚本log消息varconfetc
1条回答
网友
1楼 · 发布于 2024-06-24 12:58:21

这个最小的例子对我很有用(rsyslogd版本8.30.0)。在/etc/rsyslog.conf中我们有

$ModLoad imudp # UDP listener
$UDPServerRun 514
$ModLoad omprog
:inputname, isequal, "imudp"  action(type="omprog"
  binary="/tmp/prog.py" template="RSYSLOG_TraditionalFileFormat")

/tmp/prog.py中我们有

^{pr2}$

当udp包到达时,它被传递到python程序,该程序将其打印到文件/tmp/output。确保chmod a+rx /tmp/prog.py。在

相关问题 更多 >