Регистрация в системе и учет системных ресурсов

Регистрация системных соsобщений, система syslog
Конфигурационный файл демона syslogd
Учет продолжительности соединений

Регистрация системных сообщений, система syslog

Система syslog в операционных системах семейства UNIX представляет собой полную систему регистрации и управления информацией, которую генерируют ядро системы и системные утилиты. Система syslog очень гибкая. С ее помощью можно сортировать сообщения по их источникам, степени важности, а так же направлять в файлы или на терминалы. Система syslog состоит из трех частей:

  1. демон syslogd и его конфигурационный файл /etc/syslog.conf
  2. библиотечные программы openlog, syslog, closelog, которые используются программистами для обмена данными с syslogd (в данном курсе они не рассматриваются)
  3. программа пользовательского уровня logger для записи сообщений

Демон 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

Действиями демона 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/

Назад | Содержание | Вперед