Soquete TCP e syslog do Python

1

Fico perplexo com o motivo pelo qual não consigo que o rsyslog registre os dados enviados via TCP sempre que envio os dados com um script Python, mas funciona perfeitamente se eu enviar a mesma string via netcat

O Rsyslog está configurado para receber dados do syslog no TCP / 514: /etc/rsyslog.conf

$ModLoad imtcp
$InputTCPServerRun 514

/etc/rsyslog.d/LogByIP.conf

$template LogByIP,"/tmp/%fromhost-ip%.log"

if ($fromhost-ip != '127.0.0.1') then ?LogByIP

rsyslog reiniciado. Executou este comando da máquina do cliente:

[root@localhost ~]# echo HELLO2 |nc logbox 514

Conteúdo do /tmp/.log

Nov 18 15:36:16 HELLO2

Então o rsyslog está funcionando como esperado. Agora, quando tento fazer a mesma coisa no Python, a mensagem nunca é gravada no arquivo.

#! /usr/bin/python

import socket

host='logbox'
port=514
message='hello world'

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
s.sendall(message)
s.close()

Rodando o tcpdump na logbox, posso ver a configuração da sessão, a string transmitida e a sessão encerrada no TCP, mas o "hello world" nunca aparece no arquivo de log. O que estou perdendo aqui?

    
por Sideshow Bob 18.11.2015 / 23:42

0 respostas