我想从rsyslog输出消息写入到一个Unix域套接字。 我想这样做,以便我可以使用我的脚本从该套接字读取消息,并进一步parsing日志消息。
我尝试使用omuxsock但它没有创build任何套接字。
这是可能的,如果,我如何正确configurationrsyslog写入套接字?
编辑:
这是我在/etc/rsyslog.conf编辑的
$ModLoad omuxsock $OMUxSockSocket /tmp/sock *.* :omuxsock:
是的,这是可能的,并且给定的configuration已经是正确的*,根据rsyslog文档: http ://www.rsyslog.com/doc/v8-stable/configuration/modules/omuxsock.html。
然而,在“omuxsock …没有创build任何套接字”的说法中有一个错误的假设。 omuxsock不会创build套接字; 它期望传输到现有的套接字。 这可能是为什么@HBruijnbuild议包括“用于尝试设置套接字”的configuration。
以下是Python中这样一个设置的例子:
import socket sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) sock.bind('/tmp/sock') print(sock.recv(4096))
这与问题中给出的configuration一起工作,并将阻塞,直到它通过套接字收到一条消息。
请注意,omuxsock只支持SOCK_DGRAM,而不支持SOCK_STREAM(这在上例中是Python的默认设置),因此是无连接的(认为UDP不是TCP)。
*当然假设一些input机制也已经被定义,并且希望所有的东西(以前没有被排除)都被logging到给定的套接字中。