LXF159:Сисадминам
|
|
|
Содержание |
Сисадминам
По рецептам доктора Брауна
Эзотерическое системное администрирование из причудливых заворотов кишок серверной
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Железо как сервис
В последнем Ubuntu Server появилось MAAS, средство инициализации серверов, призванное упростить жизнь администраторам крупных дата-центров.
Когда вы будете это читать, выйдет Ubuntu 12.04. Этот релиз особенно важен, потому что он «с долгосрочной поддержкой» (5 лет). Я уверен, что критикам не терпится накинуться на настольную версию, и подумал, что могу вкратце рассмотреть серверную. Марк Шаттлворт [Mark Shuttleworth] уверяет, что «крупные компании стадами переходят на Ubuntu с RHEL» (убедительный график – на http://www.markshuttleworth.com/archives/1072). В той же статье он говорит: «12.04 LTS – созревший Ubuntu для дата-центров».
И я скачал дневную сборку – попробовать. Меня больше всего привлекла новая утилита MAAS (сокращение от «Metal As A Service», Железо как сервис) – для развертывания большого количества физических серверов и управления ими. Идея тут в том, чтобы инициализировать физические серверы по требованию в нужном количестве. В установщике на CD серверной версии можно легко создать сервер MAAS. Он устанавливает рабочую систему, а также несколько добавочных сервисов в поддержку MAAS, в том числе Cobbler и Apache (у MAAS есть web-интерфейс пользователя).
При установке можно также связать новый компьютер с существующим сервером MAAS: система отправляет запрос на регистрацию в MAAS, затем выключается и может быть загружена снова сервером MAAS с помощью PXE. После регистрации системы ее можно запустить с панели управления MAAS (если в системе включено Wake on LAN) и загрузить через PXE, после чего добавить ее в очередь на динамическое выделение сервисов или развернуть на ней Ubuntu 12.04. Мой эксперимент был ограничен – должное тестирование системы требует нескольких сот компьютеров. Документацию по системе можно найти на https://wiki.ubuntu.com/ServerTeam/MAAS, но она сыровата.
Три уровня
Название MAAS – расширение обычной классификации для облачных вычислений, которая определяет три уровня сервиса:
» IAAS (Infrastructure As A Service – инфраструктура как сервис) – на нем развертывается (виртуальное) «железо».
» PAAS (Platform As A Service – платформа как сервис) – на нем вы размещаете свои масштабируемые приложения.
» SAAS (Software As A Service – программа как сервис) – здесь используются web-приложения.
> Домашняя страница интерфейса пользователя MAAS с одним зарегистрированным компьютером.
Rsyslog
Почтенный syslog долгие годы занимался журналированием в UNIX и Linux. Пришедший на замену rsyslog принес решение уровня предприятия для журналирования в Linux.
Для документирования своих действий большинство сервисов генерируют сообщения. Лишь немногие из них, такие как X-сервер, Apache и Samba, записывают их в собственные лог-файлы – для большинства из них «информационным центром» журналирования выступает демон syslog. Лог-файлы, или файлы журналов – не самая увлекательная составляющая Linux, кроме тех редких случаев, когда в них записана история попытки взлома или падения сервера. Но 99,9 % времени они скучны. Администраторы не приходят на работу с широкими улыбками на лицах: они знают, что скоро засядут в терминале, увлеченно читая последний выпуск /var/log/messages.
Но внутри тихо работает большой механизм генерации, ротации и анализа лог-файлов. Демон syslogd, который можно найти в ранних дистрибутивах Linux, использовался долго. Он был в UNIX и, много лет, в ранних дистрибутивах Linux. Сервис отправлял свои сообщения syslogd, и тот (под управлением файла конфигурации) записывал их в файл или перенаправлял их syslogd на другом, центральном «хосте логирования». Со временем протокол syslog стал стандартом де-факто; он используется в роутерах и коммутаторах Cisco и даже поддерживается сторонними утилитами в Windows.
За последние годы появилось несколько замен syslogd. Первым был syslog-ng, который урвал свою пару лет популярности, особенно в SUSE Linux. Затем пришел rsyslog. В отличие от syslog-ng, у которого был новый и сложный файл конфигурации, rsyslog обратно-совместим с прежним syslog (и то, и другое касается протокола syslog и файла конфигурации), и, вероятно, поэтому его приняли вроде бы лучше. Он применяется по умолчанию в Fedora, Red Hat, Debian, Ubuntu и даже в последних версиях OpenSUSE. Rsyslog – детище Райнера Герхардса [Rainer Gerhards].
В начале был syslog...
Так как rsyslog обратно совместим с более старым syslog, сперва изучим работу syslog, а затем рассмотрим некоторые новые возможности rsyslog. Демон rsyslog слушает на доменном сокете UNIX /dev/log. Приложения подключаются к нему и отправляют свои сообщения, помечаемые приоритетом. Приоритет – это сочетание информации об устройстве (откуда пришло сообщение) и серьезности сообщения (насколько оно важно). Существует фиксированный список уровней серьезности, показанный на рисунке. Вы видите, что список немного устарел – особенно на примере uucp (для тех читателей, кто еще не достиг пенсионного возраста, поясняю, что uucp – сокращение от «Unix to Unix copy [копирование с Unix на Unix]» – так называлась программа для пересылки файлов между компьютерами по коммутируемому соединению. Чтобы вы осознали ее древность, скажу, что она применялась в линиях связи еще до протокола TCP/IP. Но я отклонился от темы). Также есть постоянный, упорядоченный список уровней серьезности от «отладочного [debug]» до «критического [emergency]». На рисунке я попытался обозначить события для каждого уровня, хотя, насколько я знаю, точных формальных правил классификации событий по уровням нет.
Четыре действия
Приоритету каждого сообщения соответствует набор правил в файле настройки rsyslog (/etc/rsyslog.conf и/или файлы в каталоге /etc/rsyslog.d), и сообщение отправляется в любое место назначения, указанное в соответствующем правиле. Обычный syslogd умеет выполнять с сообщением четыре действия: записать его в файл (самое распространенное действие), перенаправить его демону syslog на другом компьютере, вывести его на терминал пользователя, вошедшего в систему, и отклонить его (это происходит, если сообщение не соответствует ни одному из правил). Третий вариант обычно резервируется для очень важных сообщений, но никогда не казался мне особенно удобным. Если системный администратор тихо сидит в терминале и ждет его появления, все прекрасно. Так можно поступить с cообщениями вроде «система скоро будет выключена»; но в остальных случаях это не лучший способ привлечь чье-то внимание.
Настала пора приводить примеры. Вот записи из файла rsyslog.conf в Fedora 15:
authpriv.* /var/log/secure
uucp,news.crit /var/log/spooler
- .info;mail.none;authpriv.none /var/log/messages
В левой части каждого правила описываются устройство и уровень серьезности сообщения. Первая строка означает, что сообщения (всех уровней серьезности) устройства authpriv будут добавлены в лог-файл /var/log/secure. Вторая строка означает, что сообщения от устройств uucp и news уровня серьезности crit или выше будут добавлены в /var/log/spooler. Последняя строка отправляет сообщения уровня info или выше от всех устройств, кроме mail и authpriv, в /var/log/messages. Файл /var/log/messages – это «мастер на все руки»: большинство «обычных» сообщений оказывается здесь.
Например, сообщения обычно записываются в локальный файл, а также перенаправляются на защищенный «хост журналирования». Такая централизация лог-файлов имеет ряд преимуществ. Во-первых, так проще собрать и проанализировать лог-файлы с нескольких компьютеров. Во-вторых, это усложняет заметание следов квалифицированному взломщику, умеющему удалять следы своей деятельности из лог-файлов (поскольку ему придется взламывать также и хост логирования). Например, достаточно добавить строку:
authpriv.* @jupiter
и сообщения устройства authpriv будут перенаправляться на компьютер jupiter.
...а потом был rsyslog
История, которую я рассказал, относится к старому демону syslog, и она имела бы хождение и 25 лет назад. Теперь рассмотрим некоторые добавочные возможности, предоставляемые rsyslog:
» Сообщения можно отфильтровывать (выбирать) по их содержимому, включая поиск по регулярным выражениям
» Сообщения можно отправить в базу данных, такую как MySQL или PostgreSQL
» Сообщения можно перенаправлять по протоколу TCP (исходный syslog использовал UDP, который не гарантирует доставку сообщений). Трафик также можно зашифровать с помощью SSL (secure sockets layers)
» Сообщения можно отправлять по электронной почте (предназначено только для срочных оповещений).
При перенаправлении сообщений на сервер базы данных или другому syslog можно указать резервные серверы, которые будут использованы, если основной выйдет из строя.
Более длинный список имеется на сайте www.rsyslog.com/doc/features.html. Вместе все эти дополнения делают rsyslog средством журналирования промышленного уровня. Разумеется, это оплачивается более развесистым синтаксисом файла настройки.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Рассмотрим некоторые из этих возможностей.
Прежде всего, в rsyslog используется модульная архитектура. Для загрузки нужных модулей с необходимыми возможностями укажите соответствующие директивы в rsyslog.conf. Например, в верхней части файла rsyslog.conf вы, вероятно, увидите такие директивы:
$ModLoad imuxsock
$ModLoad imklog
В первой строке загружается модуль ввода сокета UNIX, который принимает сообщения от локальных сервисов. Прослушивание доменного сокета UNIX /dev/log – традиционное поведение syslog. Если не загрузить этот модуль, rsyslog не будет слушать локальные сообщения. Во второй строке загружается модуль поддержки журналирования ядра. Существуют и многие другие модули – некоторые из них приведены в таблице.
Перенаправление
Как и syslog до него, rsyslog может отправлять сообщения удаленному rsyslog, чтобы все лог-файлы можно было собрать в одном месте. Если указать в rsyslog.conf на центральном узле строку:
- .* @192.168.81.44:514
то все сообщения будут перенаправляться на порт 514 UDP (на самом деле это значение, используемое по умолчанию) компьютера с IP-адресом 192.168.81.44. Вместо IP-адреса можно указать имя компьютера, если оно разрешаемо. При перенаправлении по TCP используются два знака @:
- .* @@192.168.81.44:514
Конечно, при желании можно сузить выборку, а не брать все сообщения *.*. И ничто не помешает вам добавить второе похожее правило для перенаправления сообщения на второй сервер. На локальном компьютере rsyslog должен слушать порт 514 UDP (обычное поведение syslog), кроме того, там нужно загрузить соответствующий модуль таким образом:
$ModLoad imudp
$UDPServerRun 514
…а если нужно слушать порт 514 TCP, то таким:
$ModLoad imtcp
$InputTCPServerRun 514
ИМЯ МОДУЛЯ | ОПИСАНИЕ |
IMUXSOCK | Слушает доменный сокет unix /dev/log (традиционное поведение syslog) |
IMTC | Слушает сообщения, перенаправляемые по TCP-соединению |
IMUDP | Слушает сообщения, перенаправляемые по UDP-соединению (традиционное поведение syslog) |
IMKLOG | Слушает сообщения ядра |
IMRELP | Слушает сообщения по надежному протоколу RELP |
IMFILE | Берет сообщения из файла |
OMRELP | Перенаправляет сообщения с использованием протокола RELP |
OMRELP | Перенаправляет сообщения с использованием протокола RELP |
OMMYSQL | Отправляет (важные) сообщения по электронной почте |
OMPROG | Отправляет сообщения заданной внешней программе для специальной обработки |
Доставка сообщений по протоколу TCP гораздо надежнее, чем по UDP, потому что если локальный компьютер выйдет из строя, центральный rsyslog это обнаружит. В этом случае rsyslog можно настроить на сбор сообщений в очередь для последующей передачи. Однако rsyslog предлагает и гораздо более надежный сервер перенаправления сообщений – RELP (Reliable Event Logging Protocol – надежный протокол журналирования событий), который предоставляет явные подтверждения «сообщения принято» на уровне приложения. Чтобы воспользоваться RELP, нужно загрузить модули omrelp (на центральном сервере) и imrelp (на локальном компьютере).
Кстати, обычный сигнал ‘HUP’, который заставляет демон перечитать свой файл настройки, для rsyslog не работает. Если вы внесли изменения в файл настройки, перезапустите демон, скомандовав:
service rsyslog restart
Отклонение сообщений
В rsyslog можно явно задать действие discard с помощью символа ~. Если сообщение соответствует правилу, с которым связано действие discard, сообщение не сравнивается с дальнейшими правилами в файле.
Так, например, следующие две строки в начале списка правил:
authpriv.* /var/log/secure
authpriv.* ~
принудят сообщения устройства authpriv попадать в /var/log/secure и больше никуда. Это более энергичный способ отклонения сообщения, чем просто позволить ему спуститься по списку правил, ни одному из которых оно не соответствует.
В дополнение к традиционному формату правил устройство.серьезность, rsyslog может выбирать сообщения по их текстовому содержимому (или по другим свойствам, таким как имя хоста-источника). Вот простой пример, чтобы вы поняли идею:
- msg, contains, “NETFILTER” /var/log/iptables.log
& ~
Первую строку пояснять не нужно – она выбирает сообщения, содержащие строку NETFILTER. Возможны и другие типы сопоставления, например, startswith [начинается с]) вместо contains; либо можно воспользоваться regex для поиска по регулярному выражению. Вторая строка велит rsyslog отклонить это сообщение, и оно не будет проверяться на соответствие дальнейшим правилам. Так мы гарантируем, что сообщения NETFILTER попадут только в iptables.log.
Шаблоны
С помощью шаблона можно определить структуру строк, которые rsyslog записывает в лог-файлы. Для начала проясним, что у сообщений есть структура (определенная в RFC3164). Вот пример (взятый из /var/log/messages в Fedora):
Mar 22 05:06:12 saturn dhclient[880]: DHCPACK from 192.168.81.254
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Вы видите, что здесь есть время, имя хоста (saturn), имя программы, идентификатор процесса и, наконец, некое текстовое описание. (Эта последняя часть проверяется на соответствие свойству msg сообщения в моем предыдущем примере). Это пример формата по умолчанию. Но с помощью шаблонов можно определить собственные форматы. Например, вот как с помощью шаблона можно включить в выводимый текст приоритет сообщения (пожалуй, странно, что, учитывая роль приоритета в выборе сообщений традиционными правилами syslog устройство.серьезность, сам приоритет по умолчанию не записывается в лог-файл). Пример, сознаюсь, принадлежит Райнеру...
Прежде всего мы определяем шаблон в файле настройки:
$template TraditionalPlusPRI,”%pri-text%:
%timegenerated% %HOSTNAME%
%syslogtag%%msg:::drop-last-lf%\n”
Применение шаблонов
Этот шаблон соответствует традиционному формату syslog с добавлением поля %pri-text %.Определив шаблон и дав ему имя, мы можем велеть rsyslog использовать его в наших действиях примерно с таким правилом:
- .info;mail.none;authpriv.none /var/log/messages;TraditionalPlusPRI
С этим изменением наше сообщение DHCPACK выглядело бы следующим образом:
daemon.info<30>: Mar 22 19:53:04 saturn dhclient[880]: DHCPACK from 192.168.81.254
Обратите внимание, что перед использованием шаблона нужно определить его в файле настройки. Кстати, определения стандартного формата вы там не увидите – он встроен в rsyslog.
Если вы хотите узнать больше, страница man rsyslog.conf – хорошее место для старта. Более подробную информацию можно найти по ссылкам на www.rsyslog.com/doc. Там есть масса документации, и написана она хорошо, но немного лоскутная (прости, Райнер!). Райнер также записал несколько удобных видеоруководств, они доступны на www.rsyslog.com/video-tutorials. |