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 з будь-яких хостів # (фільтр хоста скасовано, фільтр програми продовжує діяти) +*

# Правила застосовуються до всіх повідомлень (фільтр програми так само скасовано) !*