FreeBSD syslog

Ответить
admin
Администратор
Сообщения: 198
Зарегистрирован: 05 янв 2011, 04:19

FreeBSD syslog

Сообщение admin »

Все изменения будут производится в файле /etc/syslog.conf. После любых изменений нужно перегружать конфигурацию демона syslog:

#/etc/rc.d/syslog reload

1) Выбираем, что нужно писать.

- писать по «ключевому слову». Наример, вы хотите писать все события связанные с ppp, tftpd, dhcpdили smbd_audit (аудит самбы). Для этого применяем такую конструкцию

!ppp
*.* /var/log/ppp.log
!tftpd
*.* /var/log/tftpd.log
!dhcpd
*.* /var/log/dhcpd.log
!smbd_audit
*.* /var/log/samba/audit/audit.log

- категория журналирования local0-local7. Для этого применяем такое

local7.* /var/log/local7.log

если нужно принимать журналирование с удалённого сервера, то применяем такую конструкцию (для того, что бы это заработало, syslogd должен стартовать с параметром «-a«):

#grep syslog /etc/rc.conf

syslogd_enable="YES"
syslogd_flags="-a 10.10.10.0/24 -a 10.11.11.0/24" # означает принимать логи для любых машин с подсети 10.10.10.0/24, 10.11.11.0/24

а это добавляем уже в /etc/syslog.conf

+10.10.10.10
local7.* /var/log/10.10.10.10.log
+*

сочетание +* означает конец привязки к хосту, с которого забираем логи.

- логгированние только на локальную машину: +@

Это сочетание ставится в начале зоны логгирования и означает, что всё, что логгироваться на локальную машину будет только то, что расположенно ниже.

- логгированние на удалённую машину.

*.info @domain.com.ua

- альтернативное логгирование (если вы не хотите использовать syslog для логгирование, а будете использовать другую программу)

mail.* | /usr/local/bin/mailstat.pl

- отправка сообщения в логи из консоли

#logger -sp [средство].[уровень] [-t имя_процесса] "текст"

Пример 1:
mycomp# logger 111111
после этой команды в файле /var/log/messages появится запись:
Feb 8 14:57:15 mycomp root: 111111

Пример 2:
mycomp# logger -p cron.debug this is test message 222222
после этой команды в файлах /var/log/cron и /var/log/debug.log появится запись:
Feb 8 15:07:02 msinhome root: this is test message 222222

Пример 3:
mycomp# logger -ps debug this is test message 333333
после этой команды в файлах /var/log/debug.log появится запись:
Feb 8 15:15:52 msinhome root: this is test message 333333, а также сообщение выведется на
консоль:
root: this is test message 3333333

2) Исключаем из логгирования.

- исключение по категориям (auth, authpriv,console,cron,daemon,ftp,kern,lpr,mail,mark,news,ntp,security,syslog,user,uucp,local0-local7).
Если ваши логи попадают под одну из этих категорий, добавляем уровень none

*.*;authpriv.none /var/log/all.log

либо так

*.*;authpriv.!=* /var/log/all.log

приведёт к тому, что записи из категории authpriv в общий лог писатся не будут.

- исключение по ключевому слову.
Для исключения применяем такую констукцию.

!ppp
*.* /var/log/ppp.log

!-ppp ### ОБРАТИТЕ ВНИМАНИЕ

...

!-ppp ### ОБРАТИТЕ ВНИМАНИЕ

где место под точки выделены те участки, куда пишется лог, если не «вырезать» его.
Мы как бы заключаем в своеобразные кавычки то, что не нужно включать. В данном примере всё упоминание про ppp логгируется в ppp.log и больше никуда не пишется.
Если нужно «вырезать» несколько ключей, тогда используем такую конструкцию

!dhcpd
*.* /var/log/dhcpd.log
!tftpd
*.* /var/log/tftpd.log
!smbd_audit
*.* /var/log/samba/audit/audit.log
!-dhcpd,tftpd,smbd_audit

… всё остальное, кудо не должно оно сыпаться.

Заключения

В качестве заключения приведу полный конфиг, в котором присутствует логгирования с удалённых машин, логирование по ключевому слову, альтернативное логирование и локальное логирование самого сервака. И каждый тип логов пишется только в отдельный файл.

#server1
+10.0.10.1
*.* /var/log/remote/server1/all.log
+*

#server2
+10.0.10.2
*.* /var/log/remote/server2/all.log
+*

# Выборка логов только локальной машины, +@ - только логи с текущей машины.
#Дальше будут идти только логи с локальной машины.

+@

!dhcpd
*.* /var/log/dhcpd.log

!-dhcpd
*.err;kern.warning;auth.notice;mail.crit /dev/console
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.*;auth.*;authpriv.* /var/log/security
auth.info;authpriv.info /var/log/auth.log
auth.info;authpriv.info | exec /usr/local/sbin/bruteblock -f /usr/local/etc/bruteblock/ssh.conf
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs

Приведу краткую памятку:

# Правила применяются ко всем сообщениям с my.host
+my.host

# Правила применяются к сообщениям от logger
# (фильтр хоста продолжает действовать)
!logger

# Правила применяются от su к my.host
!+su

# Правила применяются к сообщениям от su с любых хостов
# (фильтр хоста отменён, фильтр программы продолжает действовать)
+*

# Правила применяются ко всем сообщениям (фильтр программы так же отменён)
!*
Ответить