Главная > Программы FreeBSD syslog: выбираем, что писатьОбновлена 5.11.2009 После долгого юзания ОС возникает такой момент, когда хочется всё контроллировать, в смысле писать события в файл. Для этих целей предназначен демон syslog. И так, всё по порядку. Дело в том, что полной документации по syslogd вообще нет. Есть только общая, наиболее используемая. Поэтому по чуть-чуть с разных форумов, с гугла насобирал всё в кучу. Все изменения будут производится в файле /etc/syslog.conf. После любых изменений нужно перегружать конфигурацию демона syslog: # /etc/rc.d/syslog reload Выбираем, что нужно писать
!ppp
*.* /var/log/ppp.log
!tftpd
*.* /var/log/tftpd.log
!dhcpd
*.* /var/log/dhcpd.log
!smbd_audit
*.* /var/log/samba/audit/audit.log
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
mail.* | /usr/local/bin/mailstat.pl
logger -sp [средство].[уровень] [-t имя_процесса] "текст"
Пример 1:logger 111111
после этой команды в файле /var/log/messages появится запись:
Feb 8 14:57:15 mycomp root: 111111
Пример 2: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: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
Исключаем из логгирования
*.*;authpriv.none /var/log/all.log
либо так
*.*;authpriv.!=* /var/log/all.log
приведёт к тому, что записи из категории authpriv в общий лог писатся не будут. !ppp
*.* /var/log/ppp.log
!-ppp ### ОБРАТИТЕ ВНИМАНИЕ
...
!-ppp ### ОБРАТИТЕ ВНИМАНИЕ
где место под точки выделены те участки, куда пишется лог, если не «вырезать» его. !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 # Правила применяются к сообщениям от logger # Правила применяются от su к my.host # Правила применяются к сообщениям от su с любых хостов # Правила применяются ко всем сообщениям (фильтр программы так же отменён) Главная > Программы |