Я хочу записать выходные сигналы с rsyslog на Сокет Домена Unix. Я хочу сделать это так, чтобы я мог прочитать сообщения из того сокета с помощью моего сценария и проанализировать сообщения журнала далее.
Я пытаюсь использовать omuxsock
но это не создавало сокета.
Действительно ли это возможно и если, как я настраиваю rsyslog правильно для записи в сокет?
Править:
Это - то, в чем я отредактировал /etc/rsyslog.conf
$ModLoad omuxsock
$OMUxSockSocket /tmp/sock
*.* :omuxsock:
Да, это возможно, и данная конфигурация уже корректна*, согласно rsyslog docs: http://www.rsyslog.com/doc/v8-stable/configuration/modules/omuxsock.html.
Существует ошибочное предположение, однако, в утверждении "omuxsock... не создавал сокета". omuxsock не предполагает создания сокета; он ожидает передачи на существующий сокет. Скорее всего, именно поэтому @HBruijn предложил включить конфигурацию, "используемую для попытки установки сокета".
Вот пример такой установки на Python:
import socket
sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
sock.bind('/tmp/sock')
print(sock.recv(4096))
Это работает с конфигурацией, указанной в вопросе, и будет блокироваться до тех пор, пока не получит сообщение через сокет.
Обратите внимание, что omuxsock поддерживает только SOCK_DGRAM, а не SOCK_STREAM (что было бы по умолчанию на Python в примере выше), и, таким образом, не имеет соединения (думайте UDP, а не TCP).
*Понимая, конечно, что некоторый механизм ввода также был определен и что желательно, чтобы все (ранее не исключалось) протоколировалось к данному сокету.