Администрируя многие одиночные сервера или небольшие группы серверов, просматривать логи особых трудностей не доставляет. Однако когда в сети сотни устройств самого различного типа, отслеживание определенных событий бывает затруднительным. В частности поиск петель (loops), нелегальных DHCP серверов, сбор логов с fail2ban и прочее. Отследить єто все на большом количестве устройств очень сложно, в таком случае нам нужно собирать все логи в одном месте и здесь их уже анализировать.
Для приема логов можно использовать syslog-ng, rsyslog или даже стек ELK (Elasticsearch, Logstash, Kibana). И эти инструменты выполняют свою задачу довольно хорошо, однако недавно я наткнулся на очень неплохое приложение. Этот софт может принимать абсолютно любые логи и отдавать их куда мы захотим, будь то база данных, файл, ASW S3, RabbitMQ, да почти куда угодно.
fluentd
Fluentd собирает логи из разных источников, будь то сервера или приложения и передает их другим приложениям, которые эту информацию будут обрабатывать.
Преимущества:
- Низкие системные требования. По заявлениям разработчиков, для работы приложения достаточно 30 — 40 мб оперативной памяти, а обрабатывать оно сможет 13 000 событий в секунду.
- Унифицированный формат логгирования. Полученные данные fluentd старается привести к формату JSON. Это очень помогает при обработке и структурировании полученных данных.
- Архитектура. Расширять приложение можно при помощи специальных плагинов, которые помогут в приведению логов к определенному формату данных.
Fluentd используют такие компании как Microsoft, Amazon, change.org, Nintendo, SlideShare и другие. Думаю не зря они выбрали этот продукт, я уже успел увидеть его преимущества и удобства, этим я с вами и поделюсь в небольшом цикле статтей.
Установка fluentd
Устанавливать сборщик логов мы будем на сервере с Ubuntu 17.04
. На сайте разработчика написано о поддержке максимум версии Ubuntu 16.04 LTS Xenial
, будем ставить этот пакет.
Выполняем команды:
curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-xenial-td-agent2.sh | sh
Проверим запущен ли демон:
/etc/init.d/td-agent status
Если нужно, воспользуемся одной из комманд:
$ /etc/init.d/td-agent start $ /etc/init.d/td-agent stop $ /etc/init.d/td-agent restart $ /etc/init.d/td-agent status
После установки демон будет запущен и собственно теперь нужна лишь его настройка. Как видите, установка ну уж очень простая, а о настройке мы поговорим в следующей статье.