FreeBSD syslog вибираємо, що писати, Виконую установку, налаштування, супровід серверів
Після довгого юзанія ОС виникає такий момент, коли хочеться все контролювати, тобто писати події у файл. Для цього призначений демонsyslog. І так все по порядку.
Справа в тому, що повної документації щодоsyslogd взагалі немає. Є тільки загальна, що найбільш використовується. Тому потроху з різних форумів, з гугла назбирав все до купи. 🙂
Всі зміни будуть виконані у файлі/etc/syslog.conf. Після будь-яких змін потрібно перевантажувати конфігурацію демонаsyslog :
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
якщо потрібно приймати журналування з віддаленого сервера, то застосовуємо таку конструкцію (для того, щоб це запрацювало,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 +*
поєднання+* означає кінець прив'язки до хоста, з якого забираємо логи.
- логування тільки на локальну машину:+@
Це поєднання ставиться на початку зони логування та означає, що все, щологуватись на локальну машину буде лише те, що розташоване нижче.
- логування на віддалену машину.
— альтернативне логування (якщо ви не хочете використовувати syslog для логування, а використовуватимете іншу програму)
— надсилання повідомлення в логі з консолі
#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) Виключаємо з логування.
- Виняток за ключовим словом. Для виключення застосовуємо таку констукцію.
!-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 *.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 з будь-яких хостів # (фільтр хоста скасовано, фільтр програми продовжує діяти) +*
# Правила застосовуються до всіх повідомлень (фільтр програми так само скасовано) !*