Linux Labs

Наблюдаемость: метрики, алерты, логи / Ступень 7 из 9

Логи в одном месте

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 5 из 7 · на машине · 7 мин

Раскладка по машинам

Строки разных машин сборщик раскладывает по каталогам — по имени, которое стоит в самой строке.

Вторая половина конфигурации lab-collector говорит, куда писать:

text
template(name="per-host" type="string"
         string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")
action(type="omfile" dynaFile="per-host")

Шаблон собирает текст из свойств строки: %HOSTNAME% — имя машины из заголовка строки, %PROGRAMNAME% — метка программы (в Вики). Действие omfile пишет в файл, а с dynaFile путь к файлу шаблон собирает заново для каждой строки; недостающие каталоги rsyslog создаёт сам. Имя в заголовок ставит отправитель, поэтому строки web1 и db1, пришедшие с адреса 127.0.0.1, легли в свои каталоги. Адрес, с которого строка пришла, — отдельное свойство, %FROMHOST-IP%.

Проверь себя 1 вопрос

На сборщик с адреса 127.0.0.1 пришла строка <13>Oct 22 10:00:00 db1 backup: done. В какой файл её положит шаблон lab-collector?

  • ubuntu — имя машины, на которой работает сборщик. В заголовке строки стоит db1, и шаблон берёт его.

  • Адрес отправителя — свойство %FROMHOST-IP%, а шаблон берёт %HOSTNAME% — имя из заголовка строки.

  • Имя файла шаблон собирает из %PROGRAMNAME% — метки программы в строке, здесь это backup.

Шаблон подставляет имя машины и метку из заголовка строки: db1 и backup. Поэтому строки web1 и db1 в начале урока легли в свои каталоги, хотя пришли с одного адреса.

У сборщика своя конфигурация, и правят её так же, как у основного rsyslog: проверка синтаксиса с ключом -f и путём к файлу — sudo rsyslogd -N1 -f /etc/lab-collector/rsyslog.conf, — затем перезапуск его службы. Модули и входы можно описывать в любом месте файла, а один шаблон и одно действие обслуживают строки со всех входов сразу: каталог машины не зависит от того, пришла строка по TCP или по UDP. Проверить приём по UDP поможет тот же logger с ключом -d.

Упражнение · сделать

Прими строки коммутатора

Коммутатор sw1 умеет отправлять syslog только по UDP на порт 514. Сделай так, чтобы сборщик lab-collector принимал строки и по UDP на 127.0.0.1:514 и раскладывал их по машинам, как остальные. Приём по TCP должен остаться. Конфигурация сборщика — /etc/lab-collector/rsyslog.conf.

Войти и начать Машина доступна после входа

Цели · 0 из 3

  • Принимать строки по UDP ещё не выполнена
  • Сохранить приём по TCP ещё не выполнена
  • Оставить сборщик работать с изменённой конфигурацией ещё не выполнена

Цели шага

0 из 3
  • Принимать строки по UDP — ещё не выполнена
  • Сохранить приём по TCP — ещё не выполнена
  • Оставить сборщик работать с изменённой конфигурацией — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 3
  • Принимать строки по UDP — ещё не выполнена
  • Сохранить приём по TCP — ещё не выполнена
  • Оставить сборщик работать с изменённой конфигурацией — ещё не выполнена
Загрузка…