Регистрация системных соsобщений, система syslog
Конфигурационный файл демона syslogd
Учет продолжительности соединений
Система syslog в операционных системах семейства UNIX представляет собой полную систему регистрации и управления информацией, которую генерируют ядро системы и системные утилиты. Система syslog очень гибкая. С ее помощью можно сортировать сообщения по их источникам, степени важности, а так же направлять в файлы или на терминалы. Система syslog состоит из трех частей:
Демон syslogd запускается во время начальной загрузки и работает непрерывно. Если вы изменили конфигурационный файл /etc/syslog.conf, нужно перезапустить syslogd, послав ему сигнал HUP (или 1). Сделать это можно, узнав по команде ps -ax pid процесса syslogd, введя затем команду kill.
# ps -ax | grep syslogd # kill -1 <pid>
Можно поступить проще. В файле /var/run/syslog.pid записан pid процесса syslogd. Поэтому можно дать команду:
# kill -1 `cat /var/run/syslog.pid`(здесь используются обратные кавычки).
Демон syslogd по этой команде закроет все файлы регистрации, перечитает файл /etc/syslog.conf и запустит регистрацию снова.
Действиями демона syslogd управляет файл конфигурации /etc/syslog.conf. Это простой текстовый файл, в котором пустые строки и строки со знаком # в первой позиции игнорируются. Формат файла следующий:
<селектор> <действие>.
Например,
mail.err /var/log/mail.errors
Эта строка обеспечит запись всех ошибок, связанных с доставкой почты в файл /var/log/mail.errors.
Важно: В качестве разделителя между селектором и действием используйте только клавишу <Tab>. Использование пробелов будет ошибкой, которую не так-то легко обнаружить.
Как вы уже заметили, селектор записывается в составном виде. В общем виде это выглядит, как средство.уровень
К тому же в поле <селектор> может содержаться один или несколько селекторов, разделенных точкой с запятой. Селектор может содержать группу средств, разделенных запятыми. Селектор может содержать символы * и none, которые означают соответственно "все" и "ничего".
Примеры селекторов:
средство.уровень действие
средство1,средство2.уровень действие
средство1.уровень1;средство2.уровень2 действие
*.уровень действие
*.уровень;средство.none действие
Ниже в таблицах перечислены основные имена средств и уровней серьезности системы syslog.
Средство Программы, использующие его
kern Ядро системы
user Пользовательские процессы
mail Система электронной почты
daemon Системные демоны
auth Системы защиты и полномочий
lpr Система печати
news Система телеконференций
cron Демон cron
local0-7 Восемь уровней локального сообщения
syslog Внутренние сообщения системы syslog
ftp Демон ftpd
* Все вышеперечисленные средства
Уровень Значение уровня
emerg Экстренные ситуации
alert Срочные ситуации
crit Критические состояния
err Состояния ошибок
warning Предупреждения
notice Необычные состояния
info Информационные сообщения
debug Отладочная информация
Уровни перечислены в порядке убывания. Это значит, что уровни обозначают минимальную важность, которую должно иметь сообщение, чтобы быть зарегистрированным в системе syslog.
Действие Описание
имя_файла Записать сообщение в файл на локальной машине
@имя_машины Переслать сообщение демону syslogd на указанную машину
@IP_адрес То же, только указан IP-адрем машины
пользователь1, Вывести сообщение на экраны указанных пользователей ...
пользовательN
* Вывести сообщение на экраны всех пользователей
Пример:
*.emerg /dev/console
*.err;auth.notice /dev/console
*.err;auth,mail,user.info /var/log/messages
mail.err /var/log/mail.log
mail.info @192.168.0.1
Говоря о системе syslog, нужно упомянуть о команде logger, которая позволяет вносить записи в системный журнал из shell-сценариев.
Эту команду удобно использовать для проверки изменений, внесенных в файл /etc/syslog.conf.
Например, если вы добавили в файл /etc/syslog.conf строку
local5.warning /var/log/local.log
и хотите проверить, работает ли она, то введите команду
# logger -p local5.warning "Local test"
Посмотрите файл /var/log/local.log. Если строчки "Local test" в нем нет, значит вы скорее всего забыли послать демону syslogd сигнал HUP.
Для учета количества времени, которое пользователи проводят в системе, используется команда ac.
Эта команда обобщает информацию, которая записывается в файл /var/log/wtmp всякий раз, когда пользователь регистрируется в системе. В файл /var/log/wtmp записывается информация об имени пользователя, номере порта (терминала), времени входа в систему и выхода из нее.
Команда ac дает разбивку по пользователям (опция -p) и/или по датам (опция -d), показывает время, проведенное в системе, в часах.
# ac -p login connect-hrs bob 23.78 mark 14.24 andre 0.65 root 7.89 ... total 675.47
Можно после опции -p задать имена пользователей.
# ac -p bob root login connect-hrs bob 23.78 root 7.89 total 31.67
Результат выполнения команды ac -d
# ac -d date connect-hrs May 1 total 63.81 May 2 total 78.36 May 3 total 523.14 May 4 total 759.78 May 5 total 635.24
Видно, что 1 и 2 Мая - выходные J.
Опции можно объединить.
# ac -dp bob date connect-hrs May 2 total 2.67 May 4 total 6.72 May 5 total 4.29
С помощью команды last можно определить время входа пользователя в систему и выхода из нее. Информация выводится либо по конкретному пользователю, или же по порту (терминалу). Формат команды:
last bob (информация по пользователю bob)
last ttyv1 (информация по терминалу ttyv1).
Вывод этой команды очень понятен, не буду приводить его здесь, оставлю вам для самостоятельного ознакомления.
Сopyright © 2000. Андрей Фёдоров
http://www.anriintern.com/computer/freebsd/
Назад | Содержание | Вперед