Войти

Показать полную графическую версию : [решено] Linux - настройка rsyslog для сбора логов с удаленных устройств


snake-as
18-09-2013, 10:10
Добрый день. В Unix системах я достаточно неопытен, поэтому сам не могу пока понять в чем проблема.
Ситуация такая:
Необходимо настроить syslog сервер на получение логов с удаленных устройств.
В качестве сервера используется машина с debian 6 с установленным rsyslog и web мордой log analyzer.
Установка происходила по данной инструкции:
http://www.howtoforge.com/centralized-rsyslog-server-monitoring
Всё установилось, веб морда работает. И там отображаются логи от данного сервера (на котором настроен сам сервер).
Потом я включил отправку логов на двух устройствах:
Машине на базе FreeBsd и шлюзе ZyWall 1050.
Но почему-то в loganalyzer отображаются логи только localhost.
Подскажите, пожалуйста, где ошибся и как это понять? Может как-то слушать 514 порт или где-то можно посмотреть ошибки rsyslog (в интернете ничего не нашел).
Файл rsyslog на сервере debian:

root@srv-syslog:~# cat /etc/rsyslog.conf
# /etc/rsyslog.conf Configuration file for rsyslog.
#
# For more information see
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html

$AllowedSender UDP, 127.0.0.1, 192.168.20.0/22
$AllowedSender TCP, 127.0.0.1, 192.168.20.0/22
$ModLoad MySQL
*.* >127.0.0.1,rsyslog,rsyslog,123

#################
#### MODULES ####
#################

$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability

# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
$WorkDirectory /etc/rsyslog/work # default location for work (spool) files
$ActionQueueType LinkedList # use asynchronous processing
$ActionQueueFileName srvrfwd # set file name, also enables disk mode
$ActionResumeRetryCount -1 # infinite retries on insert failure
$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down
*.* @@192.168.20.15

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

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

#
# Set the default permissions for all log files.
#
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf


###############
#### RULES ####
###############

#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log

#
# Logging for the mail system. Split it up so that
# it is easy to write scripts to parse these files.
#
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err

#
# Logging for INN news system.
#
news.crit /var/log/news/news.crit
news.err /var/log/news/news.err
news.notice -/var/log/news/news.notice

#
# Some "catch-all" log files.
#
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
*.emerg *

#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
# news.=crit;news.=err;news.=notice;\
# *.=debug;*.=info;\
# *.=notice;*.=warn /dev/tty8

# The named pipe /dev/xconsole is for the `xconsole' utility. To use it,
# you must invoke `xconsole' with the `-file' option:
#
# $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
# busy site..
#
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole



Заранее спасибо

ruslandh
18-09-2013, 15:35
А rsyslog умеет отсылать логи на другие машины, как syslog-ng?

snake-as
18-09-2013, 15:40
Да, умеет. Но здесь в качестве клиентской выступает машина на FreeBsd, на которой syslog установлен а не rsyslog.
И ещё шлюз ZyWall 1050, так что вряд ли проблема в том, что данные не отправляются, хотя я не исключаю этого.

MakaBooka
18-09-2013, 18:51
скорее всего отправляется, что можно выяснить с помощью tcpdump как на отправляющей, так и на принимающей машине.

скорее всего проблема в том, что syslog на FreeBSD настроен неверно. То, что syslogd будет слушать сеть, указывается в rc.conf. Если не указать порт (в примере ниже :*) запись принимается и отбрасывается нулевым правилом.

# fgrep syslog /etc/rc.conf

syslogd_flags=" -4 -n -a 192.168.x.x:\*"

где 192.168.x.x - IP, с которого вы присылаете логи. -a ключиков можеть быть много, т.е.


# fgrep syslog /etc/rc.conf

syslogd_flags=" -4 -n -a 192.168.x.x:\* -a 172.16.0.88:\*"

snake-as
19-09-2013, 03:48
В серверной части у меня rsyslog на debian. А FreeBsd только отправляет. rc.conf на FreeBsd у меня следующий:
hostname="server-proxy"
ifconfig_de0=" inet 192.168.20.253 netmask 255.255.252.0"
defaultrouter="192.168.20.254"
sshd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
fsck_y_enable="YES"
background_fsck="NO"
mysql_enable="YES"
apache22_enable="YES"
zabbix_server_enable="YES"
zabbix_agentd_enable="YES"
webmin_enable="YES"
proftpd_enable="YES"
squid_enable="YES"
samba_enable="YES"
sams_enable="YES"
syslogd_enable="YES"
syslogd_flags="-s -v -v"

snake-as
19-09-2013, 05:04
Я вроде нашёл проблему на принимающей сторону, не установил эти параметры:
$UDPServerAddress192.168.20.253
$UDPServerRun 514

snake-as
19-09-2013, 08:25
Первую проблему можно считать решенной, данные принимаются отлично.

snake-as
20-09-2013, 05:57
C freebsd тоже ошибся в одном месте. Если подитожить - всё настраивается отлично по тем инструкциям, только в /etc/rsyslog.conf обязательно добавить
$UDPServerAddress 192.168.x.x
$UDPServerRun 514




© OSzone.net 2001-2012