Бортжурнал юниксоида

Anton Karpov

Xakep, номер #063, стр. 063-108-1

(toxa@real.xakep.ru)

Система журналирования событий в подробностях

Залогинься в свою Unix-систему, набери ps waux, если это Linux или BSD, или ps –ef, если это Solaris либо другая реализация System V. Ты увидишь множество процессов, каждый из которых что-то делает. К примеру, это может быть crond, inetd, ntpd, sendmail, sshd и еще масса других демонов, а также процессы ядра системы. И что интересно - все они выводят на стандартные потоки данные, которые регистрируются системой журналирования. Для чего это нужно?

Это сделано для того, чтобы владелец хоста в любой момент времени мог узнать, что конкретно делает каждый из них, а если что-то не работает - выяснить, в чем причина. Логи - история жизни системы, и порой только долгое ковыряние в /var/log помогает выяснить, почему же вдруг провайдер выставил непомерный счет за трафик, и что за клоун всю ночь долбился на все 65535 портов сервера.

Краткая справка

Традиционно за ведение журналов событий отвечает демон syslogd, история которого корнями уходит в институт Беркли и тамошнюю BSD. Syslogd - нечто большее, чем просто демон. Он должен взаимодействовать со всеми демонами, которые запущены в системе, чтобы все они могли протоколировать события. Взаимодействие это происходит через специальный сокет /dev/log. Поэтому любой демон, желающий оставить память о себе в журнале событий, просто пишет в этот файл с определенными аргументами. Системный демон syslogd запускается из инициализационных скриптов при старте системы.

Как и у любого уважающего себя демона, у syslogd есть свой конфигурационный файл. По умолчанию это /etc/syslog.conf, однако ничто не мешает назвать его как угодно, а потом запускать syslogd с ключом -f /path/to/config.file. Именно на файл конфигурации мы обратим свое внимание, а о ключиках, с которыми можно пускать syslogd, можно узнать из man syslogd, благо их немного.

Конфигурирование демона

Каждая строчка syslog.conf состоит из двух записей - правила и действия. В правилах указывается, какая подсистема генерирует события, а также степень подробности, в действиях - что с этими событиями делать. На деле все просто. Основных подсистем всего двенадцать - auth, authpriv, cron, daemon, ke, lpr, mail, mark, news, syslog, user, uucp, однако на практике в основном используют следующие из них: auth - информация о регистрации пользователя в системе ("юзер вася зашел со второй консоли"), authpriv - информация о повышении привилегий в системе ("юзер вася сделал su на рута на второй консоли"), cron - информация о выполняющихся по расписанию заданиях ("в девять утра, как обычно, скрипт опустил firewall, и инет у юзеров кончился"), ke - сообщения ядра ("сетевой интерфейс перешел в promiscious mode"), lpr - сообщения системы печати, mail - сообщения почтовой системы, и т.д.

О назначении подсистемы говорит ее название. Хотя вся эта классификация по большому счету условность. Тут нет ftpd, httpd и т.д. - и не нужно, так как эти демоны сами заботятся о том, сколько и куда писать информации. В общем же случае, это дело программиста - к какому классу отнести своего демона и использовать при написании соответствующий аргумент для функции openlog(3).

Содержание  Вперед на стр. 063-108-2
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001