Назад | Перейти на главную страницу

Rsyslogd не прослушивает порт

Я установил rsyslogd на сервер ubuntu, запустил его, и все выглядит нормально, но порт, который сервер должен слушать, не открывается.

ubuntu@node7:~$ sudo service rsyslog restart
rsyslog stop/waiting
rsyslog start/running, process 14114

Netstat показывает, что он не слушает:

ubuntu@node7:~$ netstat -tlan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0    320 172.22.0.17:22          10.8.8.38:61335         ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::2776                 :::*                    LISTEN     
tcp6       0      0 :::2777                 :::*                    LISTEN     
tcp6       0      0 172.22.0.17:2777        172.22.0.11:56554       ESTABLISHED
tcp6       0      0 172.22.0.17:2776        172.22.0.11:39780       ESTABLISHED

Вот как выглядит /etc/rsyslog.conf (большинство комментариев опущено):

ubuntu@node7:~$ cat /etc/rsyslog.conf     
#################
#### MODULES ####
#################

$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)

$ModLoad imtcp
$InputTCPServerRun 514

###########################
#### GLOBAL DIRECTIVES ####
###########################

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$RepeatedMsgReduction on
$WorkDirectory /var/spool/rsyslog

$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup adm

$IncludeConfig /etc/rsyslog.d/*.conf

В /etc/rsyslog.d/35-server-per-host.conf У меня есть следующие строки, и я подозреваю, что это может быть причиной. Что это означает?

# Stop processing of all non-local messages. You can process remote messages
# on levels less than 35.
:fromhost-ip,!isequal,"127.0.0.1" ~

и если это так, как я могу изменить его, чтобы сервер слушал, получал и регистрировал сообщения?

ОБНОВИТЬ:

Я закомментировал подозреваемую строку, но она все еще не прослушивает порт 514

AppArmor возможно, блокирует прослушивание этого порта rsyslogd. Вы можете убедиться в этом, посмотрев в системный журнал:

grep apparmor /var/log/syslog

Если вы видите строки, в которых упоминается rsyslog, вероятно, причина в этом. редактировать /etc/apparmor.d/local/usr.sbin.rsyslogd (или /etc/apparmor.d/usr.sbin.rsyslogd если его не существует) и добавьте это между фигурными скобками:

network inet dgram,
network inet6 dgram,
network inet stream,
network inet6 stream,

Тогда беги service apparmor reload и service rsyslog restart.

По умолчанию rsyslod прослушивает сокет unix, а не TCP. Раскомментируйте или добавьте эти две строки:

module(load="imtcp")
input(type="imtcp" port="514")

Вот и все, получайте удовольствие!

Арно

Решение (или обходной путь) заключалось в том, чтобы установить для порта большое значение. Работает на порту 10514.

rsyslog запускается как пользовательский syslog: решение для меня, чтобы остановить это и позволить ему работать как root. Затем он прослушивает порт 514

Прокомментируйте это в /etc/ryslogd.conf

Системный журнал $ PrivDropToUser