Что означает такая строка конфигурационного файла etc syslog d mail warning var log mail
Управление типом и подробностью журналируемой информации
Хранение журнала rsyslog в СУБД MySQL
В Debian настройка хранения в базе данных мега простая (почти как в вендовозе ) ). В целом, достаточно установить пакет rsyslog-mysql. При этом, установщик кладет модуль ommysql.so в каталог /usr/lib/rsysloul/spang/ и запускает мастер настройки, который запрашивает пароль администратора MySQL, создает отдельного пользователя и просит указать для него пароль. Создает соответствующую базу из скрипта /usr/share/dbconfig-common/data/rsyslog-mysql/install/mysql. Получившиеся настройки кладет в /etc/rsyslog.d/mysql.conf. Конфиг получается из 2х строчек::
Cisco
rsyslog в картинках
После всего прочтенного хотелось бы все это лицезреть в понятном виде. Попробую ка я все это обрисовать.
Вот, собственно и вся схема.
rsyslog настройка
- Модули (Modules)
- Конфигурационные директивы (не знаю, как перевести более доступно) (Configuration Directives)
- Шаблоны (template)
- Правила сортировки (Rule line)
Давайте разберем каждый раздел.
Конфигурационный файл syslog.conf
Файл syslog.conf является главным конфигурационным файлом для демона syslogd. Конфигурационный файл syslog.conf представляет собой набор правил. Каждое правило есть — строка, состоящая из селектора и действия, разделенных пробелом или табуляцией. Селектор представляет собой запись в виде источник.приоритет. (источник иногда именуют — категорией) Селектор может состоять из нескольких записей источник.приоритет, разделенных символом «;» . Можно указывать несколько источников в одном селекторе (через запятую). Поле действие — устанавливает журналируемое действие для селектора.
Источник (он же категория) может быть следующим:
Обычный файл
Задается полным путем, начиная со слеша (/). Поставьте перед ним дефис (-), чтобы отменить синхронизацию файла после каждой записи. Это может привести к потере информации, но повысить производительность.
Именованные каналы
Терминал и консоль
Терминал, такой как /dev/console.
Удаленная машина
Список пользователей
Пример несложного syslog.conf:
Как и во многих конфигурационных файлах, синтаксис следующий:
В синтаксисе конфигурационного файла можно поставить перед приоритетом знак !, чтобы показать, что действие не должно применяться, начиная с этого уровня и выше. Подобным образом, перед приоритетом можно поставить знак =, чтобы показать, что правило применяется только к этому уровню, или !=, чтобы показать, что правило применяется ко всем уровням, кроме этого. Ниже показано несколько примеров (man syslog.conf можно найти множество других примеров):
Конфигурационный файл syslog.conf
Файл syslog.conf является главным конфигурационным файлом для демона syslogd. Конфигурационный файл syslog.conf представляет собой набор правил. Каждое правило есть - строка, состоящая из селектора и действия , разделенных пробелом или табуляцией. Селектор представляет собой запись в виде источник . приоритет . (источник иногда именуют - категорией) Селектор может состоять из нескольких записей источник.приоритет, разделенных символом ";" . Можно указывать несколько источников в одном селекторе (через запятую). Поле действие - устанавливает журналируемое действие для селектора.
Источник (он же категория) может быть следующим:
Обычный файл
Задается полным путем, начиная со слеша (/). Поставьте перед ним дефис (-), чтобы отменить синхронизацию файла после каждой записи. Это может привести к потере информации, но повысить производительность.
Терминал и консоль
Терминал, такой как /dev/console.
Удаленная машина
Список пользователей
Пример несложного syslog.conf:
Как и во многих конфигурационных файлах, синтаксис следующий:
В синтаксисе конфигурационного файла можно поставить перед приоритетом знак !, чтобы показать, что действие не должно применяться, начиная с этого уровня и выше. Подобным образом, перед приоритетом можно поставить знак =, чтобы показать, что правило применяется только к этому уровню, или !=, чтобы показать, что правило применяется ко всем уровням, кроме этого. Ниже показано несколько примеров (man syslog.conf можно найти множество других примеров):
Я постарался максимально понятно работу syslogd показать на схеме:
Правила сортировки rsyslog (Rule line)
Фильтрация RainerScript (RainerScript-based filters)
Как я уже сказал, RainerScript - это классический язык на основе if then else. В rsyslog RainerScript поддерживает вложенность условий, арифметические, логические и строковые операции. В целом, синтаксис следующий:
- логические выражения (and, or, not), а так же группировку данных выражений в виде: not условие0 and (условие1 and условие2).
- переменные (properties) - переменные указываются в виде $имя_переменной (например $hostname или $msg)
- операции сравнения (== - равно, != - не равно, > - больше, < - меньше, = - больше или равно, (!)contains - (не)содержит, (!)startswith - (не)начинается с)
- комментарии /* комментарии */ (сомнительный пункт . нужно ли его экранировать как в bash . )
Описание языка есть на сайте . Маленький пример фильтра на основе RainerScript:
if $syslogfacility-text == 'local7' and $msg startswith 'CISCO' and ($msg contains 'warn' or $msg contains 'emer') then /var/log/cisco-alarm
Давайте рассмотрим данный вид фильтрации.
: переменная , [!] операция_сравнения , " искомое_значение " действие
- contains - проверяет соответствие искомое_значение с любой частью строки в переменная
- isequal - проверяет, совпадает (целиком) ли искомое_значение с переменной
- isempty - проверяет, является ли переменная пустой (доступна с 6.6.2)
- startswith - проверяет, начинается ли переменная с искомое_значение
- regex или ereregex - сравнивает содержимое переменной, заданному в искомое_значение регулярному выражению в соответствии с regular и Extended Regular Expression соответственно
Например: :msg, contains, "syslog" будет искать слово syslog в теле.
Существует так же, специальный символ &, который повторяет выполнение прошлого фильтра и запускает действие, указанное после данного символа. Это очень удобно для фильтрации или экономии системных ресурсов, например:
Действия (actions)
Действия rsyslog полностью совместимы с действиями syslog. Так же, стоит учитывать, что в действии rsyslog, кроме стандартный значений syslog, добавились дополнительные (выделены цветом ):
Запуск демона syslogd
Запуск демона протоколирования запускаются на этапе инициализации системы посредством скрипта /etc/rc.d/init.d/syslog, однако для того, чтобы задать параметры запуска, нет необходимости корректировать этот скрипт - начиная с версии 7.2, опции запуска считываются из отдельного конфигурационного файла /etc/sysconfig/syslog (/etc/default/syslog в debian).
Вот некоторые возможные параметры запуска демона syslogd:
После запуска демона syslogd создается файл статуса /var/lock/subsys/syslog нулевой длины, и файл с идентификационным номером процесса /var/run/syslogd.pid.
С помощью команды
kill -SIGNAL `cat /var/run/syslogd.pid`
можно послать демону syslogd один из следующих сигналов: SIGHUP - перезапуск демона; SIGTERM - завершение работы; SIGUSR1 - включить/выключить режим отладки.
Вообще-то в системе запускаются два демона протоколирования - syslogd и klogd. Оба демона входят в состав пакета sysklogd.
Изучение и мониторинг журналов
Далее в файле протокола можно обнаружить версию ядра, параметры его запуска, информацию о типе процессора и объеме ОЗУ:
Иногда может возникать необходимость мониторинга системных журналов с целью поиска текущих событий. Например, можно попробовать поймать редко случающееся событие в тот момент, когда оно произошло. В таком случае можно использовать команду tail с опцией -f для отслеживания содержимого системного журнала. Пример:
Кроме файлов-журналов, указанных в /etc/syslog.conf, существуют так же и другие файлы, например файл /var/log/dmesg, который хранит информацию о процессе загрузки системы до запуска syslogd, а так же файлы /var/log/lastlog, /var/log/wtmp, /var/log/btmp, имеющие двоичный формат и и хранящие информацию о последнем входе пользователя в систему, о всех удачных входах пользователей в систему и о всех неудачных входах пользователей в систему соответственно. Так же в каталоге /var/log/ могут находится лог-файлы таких демонов как веб-сервер или прокси-сервер. Формат данных файлов аналогичен журналам syslogd.
Подведем небольшой итог:
На сегодня это все. Надеюсь описал все максимально понятно. Со временем буду дополнять статью!
Немного обо всем и все о немногом, или практический опыт системного администратора.
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
« Янв | Март » | |||||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
Изучение и мониторинг журналов
Dec 17 16 : 35 : 57 proxy pppd [ 11345 ] : LCP terminated by peer ( ^ P ] kV ^ @ < M - Mt ^ @ ^ @ ^ @ ^ @ )
Dec 17 16 : 35 : 57 proxy pppd [ 11345 ] : Script / etc / ppp / ip - down finished ( pid 12084 ) , status = 0x1
Далее в файле протокола можно обнаружить версию ядра, параметры его запуска, информацию о типе процессора и объеме ОЗУ:
Dec 17 08 : 32 : 56 syslog - server kernel : Memory : 125652k / 130560k available ( 1365k kernel code , 4200k reserved , 92k data , 236k init , 0k highmem )
Dec 17 08 : 32 : 56 syslog - server kernel : CPU : Intel ( R ) Pentium ( R ) 4 CPU 1.60GHz stepping 02
Иногда может возникать необходимость мониторинга системных журналов с целью поиска текущих событий. Например, можно попробовать поймать редко случающееся событие в тот момент, когда оно произошло. В таком случае можно использовать команду tail с опцией -f для отслеживания содержимого системного журнала. Пример:
Dec 17 16 : 46 : 09 syslog - server pppd [ 12548 ] : pptpd - logwtmp . so ip - up ppp0 maikop 94.77.0.150
Dec 17 16 : 46 : 09 syslog - server pppd [ 12548 ] : Script / etc / ppp / ip - up finished ( pid 12552 ) , status = 0x0
Dec 17 16 : 46 : 49 syslog - server pptpd [ 12581 ] : CTRL : Client 85.175.197.65 control connection started
Dec 17 16 : 46 : 49 syslog - server pptpd [ 12581 ] : CTRL : Starting call ( launching pppd , opening GRE )
Dec 17 16 : 46 : 49 syslog - server pppd [ 12582 ] : Plugin / usr / lib / pptpd / pptpd - logwtmp . so loaded .
Кроме файлов-журналов, указанных в /etc/syslog.conf, существуют так же и другие файлы, например файл /var/log/dmesg, который хранит информацию о процессе загрузки системы до запуска syslogd, а так же файлы /var/log/lastlog, /var/log/wtmp, /var/log/btmp, имеющие двоичный формат и и хранящие информацию о последнем входе пользователя в систему, о всех удачных входах пользователей в систему и о всех неудачных входах пользователей в систему соответственно. Так же в каталоге /var/log/ могут находится лог-файлы таких демонов как веб-сервер или прокси-сервер. Формат данных файлов аналогичен журналам syslogd.
Подведем небольшой итог:
На сегодня это все. Надеюсь описал все максимально понятно. Со временем буду дополнять статью!
Подсистемой учетных записей пользуется подсистема идентификации , которая в Linux имеет модульную структуру и называется PAM (Pluggable Authentication Modules, т. е. "Подключаемые модули идентификации "). Идея PAM – в том, чтобы унифицировать и, вместе с тем, сделать более гибкими любые процедуры идентификации в системе – начиная от команды login и заканчивая доступом к файлам по протоколу, скажем, FTP. Для этого недостаточно просто написать "библиотеку идентификации " и заставить все программы ее использовать. В зависимости от того, для чего производится идентификация , условия, при которых она будет успешной, могут быть более или менее строгими, а если она прошла успешно, бывает нужно выполнить действия, связанные не с определением пользователя, а с настройкой системы.
В большинстве дистрибутивов PAM обучен схеме " .d ", и настройки каждой службы, которая использует идентификацию , лежат в отдельном файле:
В PAM определено четыре случая, требующие идентификации : auth – собственно идентификация , определение, тот ли пользователь, за кого он себя выдает, account – определение, все ли хорошо с учетной записью пользователя, password – изменение пароля в учетной записи, и session – дополнительные действия непосредственно перед или непосредственно после того, как пользователь получит доступ к затребованной услуге. Эти значения принимает первое поле любого файла настройки из pam .d , а в третьем поле записывается модуль, который проверяет какой-нибудь из аспектов идентификации . Второе поле определяет, как успех или неуспех проверки одного модуля влияет на общий успех или неуспех идентификации данного типа (например, required означает, что в случае неуспеха модуля проверка пройдена не будет). Четвертое и последующие поля отведены под параметры модуля:
Такие настройки login обнаружил Мефодий на своем компьютере. Во всех четырех случаях используется включаемый файл system-auth (к нему обращаются и другие службы), с некоторыми дополнениями. Так, во время идентификации pam_nologin.so дополнительно проверяет, не запрещено ли пользователям регистрироваться вообще (как это бывает за несколько минут до перезагрузки системы), а перед входом в систему и после выхода из нее pam_console.so выполняет описанную в лекции 6 "передачу прав на владение устройствами" (и, соответственно, лишение пользователя этих прав).
Каталог /etc/ pam .d – замечательный пример того, как профиль определяет поведение системы. В частности, четыре первых строки из system-auth показывают, что в этом дистрибутиве используется не просто "теневой" файл паролей, а схема TCB , описанная в лекции 6. (Как уже известно Мефодию, в этой схеме вместо общего для всех /etc/shadow задействованы файлы вида /etc/ tcb /входное_имя/shadow , причем права доступа к ним устроены таким образом, чтобы при выполнении команды passwd можно было обойтись без подмены пользовательского идентификатора на суперпользовательский).
Подсистема системных журналов
Все события, о которых сообщается syslogd , подразделяются горизонтально – по типу службы (facility), с которой это событие произошло, и вертикально – по степени его важности (priority). Типов событий насчитывается около двадцати (среди них auth , daemon , kern , mail и т. п., а также восемь неименованных, от local0 до local7 ). Степеней важности всего восемь, по возрастанию: debug , info , notice , warning , err , crit , alert и emerg . Таким образом, каждое событие определяется парой значений, например, mail.err означает для syslogd событие, связанное с почтой, притом важности, не меньшей err . Из таких пар (с возможной заменой типа или важности на "*", что означает "любые", или none, что означает "никакие") составляется конфигурационный файл /etc/syslog.conf :
Автоматическая ротация (обновление заполненных файлов) и архивирование журналов
Со временем, файл журнала имеет свойство увеличиваться, особенно при интенсивной работе какого-либо сервиса. Соответственно, необходимо иметь возможность контролировать размер журналов. Это делается при помощи команды logrotate, которая обычно выполняется демоном cron. О работе cron я расскажу в следующих статьях. Главная цель команды logrotate состоит в том, чтобы периодически создавать резервные копии журналов и создавать новые чистые журналы. Сохраняется несколько поколений журналов и, когда завершается срок жизни журнала последнего поколения, он может быть заархивирован (сжат). Результат может быть отправлен по почте, например, ответственному за ведение архивов.
Для определения порядка ротации и архивирования журналов используется конфигурационный файл /etc/logrotate.conf. Для разных журналов можно задать разную периодичность, например, ежедневно, еженедельно или ежемесячно, кроме того, можно регулировать количество накапливаемых поколений, а также указать, будут ли копии архивов отправляться ответственному за ведение архивов и, если будут, когда. Ниже показан пример файла /etc/logrotate.conf:
Глобальные опции размещаются в начале файла logrotate.conf. Они используются по умолчанию, если где-то в другом месте не задано ничего более определенного. В примере ротация журналов происходит еженедельно и резервные копии сохраняются в течение четырех недель. Как только производится ротация журнала, на месте старого журнала автоматически создается новый. Файл logrotate.conf может содержать спецификации из других файлов. Так, в него включаются все файлы из каталога /etc/logrotate.d.
В этом примере по достижении резервной копией последнего поколения она удаляется, поскольку не определено, что следует с ней делать.
Резервные копии журналов могут также создаваться, когда журналы достигают определенного размера, и могут быть созданы скрипты из наборов команд для выполнения до или после операции резервного копирования. Пример:
В этом примере ротация /var/log/messages производится по достижении им размера 100 КБ. Накапливается пять резервных копий, и когда истекает срок жизни самой старой резервной копии, она отсылается по почте на адрес logadmin@sysloger. Командное слово postrotate включает скрипт, перезапускающий демон syslogd после завершения ротации путем отправки сигнала HUP. Командное слово endscript необходимо для завершения скрипта, а также в случае, если имеется скрипт prerotate. Более полную информацию см. в страницах руководства man для logrotate.
Параметры, задаваемые в конфигурационном файле logrotate.conf:
Лекция №27 - Служба syslog
3 февраля 2010, 21:54
Служба (или демон) syslog - это служба, которая занимается централизованным ведением журналов событий. Утилиты, программы, другие службы - все они могут сообщать о тех или иных событиях службе syslog, которая их принимает, обрабатывает и хранит в журнальных файлах в каталоге /var/log/. Журнальные файлы - это обычные текстовые файлы. Большинство из них недоступны для простых пользователей, даже на чтение. Следить за журнальными файлами - это задача администратора системы.
Настройка syslog
Изначально все программы в Linux были разделены на группы. Подробнее о группах можно прочесть в файле справки man syslog.conf в разделе SELECTORS. Здесь же просто перечислим наименования групп:
auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, security, syslog, user, uucp, local0-local7.
mail.info - / var / log / mail.info
mail.warning - / var / log / mail.warn
mail.err / var / log / mail.err
daemon,mail. * ;\
news.=crit;news.=err;news.=notice;\
* .=debug; * .=info;\
* .=notice; * .=warning / dev / tty8
В итоге в файле mail.info появится вот такая строка:
Команда logrotate
Каких бы объемов не были бы жесткие диски компьютера (сервера), но если за журнальными файлами не следить, то они могут в какой-то момент заполнить дисковое пространство. Именно поэтому на серверах рекомендуется каталог /var/log/ монтировать на отдельный жесткий диск. Для облегчения процедуры управления журнальными файлами была создана программа logrotate.
Рассмотрим стандартную процедуру ручного архивирования журнального файла. В первый раз журнальный файл (пусть это будет messages) архивируется и к имени архива прибавляется цифра 0 (messages.0.gz). Старый файл messages удаляется, на его месте создается новый с таким же названием. Затем через неделю файл messages.0.gz переименовывается в messages.1.gz, из messages создается архив messages.0.gz, messages удаляется и создается новый файл и т.д. logrotate - умеет выполнять эти действия автоматически. Необходимо только один раз настроить алгоритм обработки журнальных файлов.
Конфигурационные файлы logrotate - это файл /etc/logrotete.conf и файлы которые находятся в каталоге /etc/logrotate.d/. Рассмотрим в качестве примера часть конфигурационного файл а/etc/logrotate.d/samba:
/ var / log / samba / log.smbd {
weekly
missingok
rotate 7
postrotate
invoke-rc.d --quiet samba reload > / dev / null
endscript
compress
notifempty
}
В результате такой схемы архивации будет вот такая картина:
igor @ adm-ubuntu:~$ ls -l / var / log / samba / log.smbd *
-rw-r--r-- 1 root root 2050 2010 -02-02 17 : 25 / var / log / samba / log.smbd
-rw-r--r-- 1 root root 225 2010 -02-01 14 : 52 / var / log / samba / log.smbd.1.gz
-rw-r--r-- 1 root root 373 2010 -01- 25 09:03 / var / log / samba / log.smbd.2.gz
-rw-r--r-- 1 root root 350 2010 -01- 13 11 : 25 / var / log / samba / log.smbd.3.gz
-rw-r--r-- 1 root root 353 2010 -01- 11 08: 59 / var / log / samba / log.smbd.4.gz
-rw-r--r-- 1 root root 324 2010 -01-04 08: 54 / var / log / samba / log.smbd.5.gz
-rw-r--r-- 1 root root 341 2009 - 12 - 28 09: 11 / var / log / samba / log.smbd.6.gz
-rw-r--r-- 1 root root 404 2009 - 12 - 21 09:07 / var / log / samba / log.smbd.7.gz
Запуск команды logrotate как правило выполняет демон cron.
Подробнее о команде logrotate читайте в справке man logrotate.
Приветствую, читатель моего блога. Давненько я не писал статей. Много жизненных перемен. Сегодняшняя статья будет посвящена syslog, а точнее rsyslog, который активным образом внедряется вместо старенького syslogd (он же sysklogd) в последних версиях дистрибутивов (например, Suse, Debian, RedHat и др.). Базовое описание работоспособности syslog и logrotate я приводил в соответствующей статье. Поэтому перед прочтением нижеописанного я очень советую прочитать статью о syslog и logrotate. На текущий момент для меня стоит задача собирать системные журналы syslog с сетевого оборудования в количестве ~100 хостов с последующим увеличением их количества. Реализацией данного функционала я и постараюсь заняться в данной статье, предварительно описав структуру конфига и принцип работы rsyslog. Все это дело будет описано на базе Debian 6, в других дистрибутивах, при наличии опыта, с минимумом движений напильником, думаю что тоже не составит большого труда настроить. Итак, начнем.
Linux (rsyslog)
Автоматическая ротация (обновление заполненных файлов) и архивирование журналов
Со временем, файл журнала имеет свойство увеличиваться, особенно при интенсивной работе какого-либо сервиса. Соответственно, необходимо иметь возможность контролировать размер журналов. Это делается при помощи команды logrotate, которая обычно выполняется демоном cron. О работе cron я расскажу в следующих статьях. Главная цель команды logrotate состоит в том, чтобы периодически создавать резервные копии журналов и создавать новые чистые журналы. Сохраняется несколько поколений журналов и, когда завершается срок жизни журнала последнего поколения, он может быть заархивирован (сжат). Результат может быть отправлен по почте, например, ответственному за ведение архивов.
Для определения порядка ротации и архивирования журналов используется конфигурационный файл /etc/logrotate.conf. Для разных журналов можно задать разную периодичность, например, ежедневно, еженедельно или ежемесячно, кроме того, можно регулировать количество накапливаемых поколений, а также указать, будут ли копии архивов отправляться ответственному за ведение архивов и, если будут, когда. Ниже показан пример файла /etc/logrotate.conf:
Глобальные опции размещаются в начале файла logrotate.conf. Они используются по умолчанию, если где-то в другом месте не задано ничего более определенного. В примере ротация журналов происходит еженедельно и резервные копии сохраняются в течение четырех недель. Как только производится ротация журнала, на месте старого журнала автоматически создается новый. Файл logrotate.conf может содержать спецификации из других файлов. Так, в него включаются все файлы из каталога /etc/logrotate.d.
В этом примере по достижении резервной копией последнего поколения она удаляется, поскольку не определено, что следует с ней делать.
Резервные копии журналов могут также создаваться, когда журналы достигают определенного размера, и могут быть созданы скрипты из наборов команд для выполнения до или после операции резервного копирования. Пример:
В этом примере ротация /var/log/messages производится по достижении им размера 100 КБ. Накапливается пять резервных копий, и когда истекает срок жизни самой старой резервной копии, она отсылается по почте на адрес logadmin@sysloger. Командное слово postrotate включает скрипт, перезапускающий демон syslogd после завершения ротации путем отправки сигнала HUP. Командное слово endscript необходимо для завершения скрипта, а также в случае, если имеется скрипт prerotate. Более полную информацию см. в страницах руководства man для logrotate.
Параметры, задаваемые в конфигурационном файле logrotate.conf:
Запуск демона syslogd
Запуск демона протоколирования запускаются на этапе инициализации системы посредством скрипта /etc/rc.d/init.d/syslog, однако для того, чтобы задать параметры запуска, нет необходимости корректировать этот скрипт — начиная с версии 7.2, опции запуска считываются из отдельного конфигурационного файла /etc/sysconfig/syslog (/etc/default/syslog в debian).
Вот некоторые возможные параметры запуска демона syslogd:
После запуска демона syslogd создается файл статуса /var/lock/subsys/syslog нулевой длины, и файл с идентификационным номером процесса /var/run/syslogd.pid.
С помощью команды
kill -SIGNAL cat /var/run/syslogd.pid
можно послать демону syslogd один из следующих сигналов: SIGHUP — перезапуск демона; SIGTERM — завершение работы; SIGUSR1 — включить/выключить режим отладки.
Вообще-то в системе запускаются два демона протоколирования — syslogd и klogd. Оба демона входят в состав пакета sysklogd.
Введение rsyslog
VMware ESXi
Для старенького гипервизора:
В /etc/syslog.conf необходимо добавить следующее:
В последних версиях гипервизора все делается через гуишного клиента. В настройках гипервизора Advansed -> Syslog -> remote указать адрес rsyslog сервера.
Конфигурационные директивы (Configuration Directives)
Конфигурационные директивы иногда называют глобальными директивами, они задают общие параметры работы демона rsyslogd. Директива имеет формат $Директива параметр
С наиболее полным списком глобальных директив можно ознакомиться тут .
Веб интерфейс для rsyslog
В текущем каталоге появится каталог loganalyzer-3.5.6, который содержит некоторую информацию, достойную прочтения:
Видим, для чего мы давали права 666, нажимаем Next
Здесь выбираем желаемые настройки. Отдельного внимания требует параметр Enable User Database. Если выбрать его, то будет создана отдельная база для хранения настроек Веб-интерфейса. Так же, будет доступна возможность создавать пользователей и группы. Жмем next.
Это все. Ниже пару скриншотов того, что получилось:
Есть маленькое дополнение - веб сервер не имеет доступа к обычным файлам в каталоге /var/log/. Поэтому, журнал может не отображаться. Чтобы решить данную проблему, необходимо добавить пользователя www-data в группу adm:
Кроме Loganalyzer существует так же - Logzilla, обладающая тем же функционалом. Ее тоже стоит попробовать установить, если есть желание.
Некоторые типсы и триксы для rsyslog
Для того чтобы разрешить в нетфильтре прохождение udp пакетов, необходимо использовать команду:
Некоторые примеры правил с комментариями:
Траблешуттинг
Для диагностики работы syslog отлично помогает tcpdump, пример команды для мониторинга:
Ну и, конечно же сам /var/log/syslog.
Что еще почитать
Резюме
Статья получилась мега большая. В перспективе, наверно разделю ее на 2 более подробные. В целом, думаю, что прочитав материал - удастся получить достаточный объем базового понимания принципов работы rsyslog, чтобы реализовать своё более сложное и интересное решение. До новых статей!
Установка rsyslogd
Установка rsyslog (если по какой-то причине он не установлен по умолчанию) сводится к одной команде:
Если, конечно, нет желания устанавливать из исходников. Тогда необходимо прочитать install manual . После установки в Debian, мы будем иметь следующее размещение файлов (показаны наиболее важные):
Как видно, все элементарно. rsyslog состоит из бинарника и файла конфигурации. Кроме указанных файлов, rsyslog так же использует:
Модули (Modules) rsyslog
Rsyslog имеет модульную архитектуру. Это позволяет удобно расширять функциональность. Модули подразделяются на группы, например некоторые из них:
Модули постоянно добавляются разработчиками и могут быть написаны любым желающим, со списком основных модулей можно ознакомиться на официальном сайте.
Централизованный сервер rsyslog в Debian
После задания указанных параметров, необходимо перезапустить\перечитать конфигурационный файл (service rsyslog restart). При этом, netstat нам должен показать, что сислог стал слушать соответствующий порт:
Шаблоны (Templates) rsyslog
Cинтаксис template
В целом, структуру шаблона можно представить в следующем виде синтаксисе:
Применение переменных в шаблонах rsyslog
Давайте разгребем структуру значений, указываемых в %процентах%.
Как видно, некоторые свойства начинаются с знака доллара - они считаются локальными\системными.
Значения начало_строки : конец_строки - мозговыносящие. Победить их можно где-то тут . Кратко - они используются для регулярных выражений.
Далее - опции. Опции позволяют модифицировать переменную в границе от знака процента до знака процента. Можно применять одновременно несколько опций, через запятую. Если указать несколько противоречащих (например uppercase, lowercase), то будет применена последняя указанная (lowercase). Вот некоторые опции:
- uppercase - преобразование к верхнему регистру
- lowercase - преобразование к нижнему регистру
- date-mysql - преобразовать в формат даты MySQL
- space-cc - заменить управляющие символы пробелами
- drop-cc - удалить управляющие символы
- и еще куча
fieldname - данное поле доступно с версии 6.3.9+ и имеет очень специфичный характер. Можно ее забыть.
Как видно из приведенного выше шаблона переменной, значения из фигурных скобок указываются по желанию, то есть можно указать просто, например %hostname%. Но если будут применяться опции , то необходимо указать и предыдущие пустые поля, например %hostname. lowercase%. Между двоеточиями пропущены поля начало_строки и конец_строки . При этом, fieldname почему-то в качестве пустого - не указывается.
Шаблоны, которые хардово запрограммированы в rsyslog (но которые можно изменить директивой $ActionFileDefaultTemplate):
RSYSLOG_SyslogProtocol23Format - формат, определённый в проекте стандарта IETF ietf-syslog-protocol-23, соответствует шаблону:
RSYSLOG_FileFormat - традиционный формат журнала, с добавлением долей секунды и зоны, соответствует шаблону:
RSYSLOG_TraditionalFileFormat - традиционный формат журнала для записи в файл, соответствует следующему шаблону:
RSYSLOG_ForwardFormat - традиционный формат журнала для передачи с добавлением долей секунды и зоны, соответствует шаблону:
RSYSLOG_TraditionalForwardFormat - традиционный формат журнала для передачи на удалённый сервер
Управление типом и подробностью журналируемой информации
Настройка клиентов syslog
Читайте также: