Настройка централизованного логирования с LogAnalyzer и Rsyslog

Совсем недавно у меня возникла необходимость создать центральный лог-сервер с веб-интерфейсом и в этой статье я хотел бы поделиться опытом, возможно кому-то он будет полезен. Я опишу установку и настройку веб-просмотрщика логов LogAnalyzer, Rsyslog-клиента, который будет отсылать все логи на удаленный Rsyslog-сервер, и последний, в свою очередь, будет писать их в базу MySQL.
В качестве ОС я выбрал Ubuntu 12.04.
Адреса тестовых вебнод:
192.168.1.51 (loganalyzer-mysql.ip) — Rsyslog-сервер, на этом хосте также будет проинсталлирован LogAnalyzer
192.168.1.50 (loganalyzer-mongo.ip) — Rsyslog-клиент, который будет отсылать логи на сервер loganalyzer-mysql.ip
Настраиваем серверную часть, для чего добавим репозиторий от разработчика Rsyslog:
...
# Adiscon stable repository
deb http://ubuntu.adiscon.com/v7-stable precise/
deb-src http://ubuntu.adiscon.com/v7-stable precise/
...
# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com AEF0CF8E
# gpg --export --armor AEF0CF8E | sudo apt-key add -
Удобный мониторинг Syslog сообщений c сетевых железок в Zabbix
Поэтому первое, что хотелось сделать — собирать все логи в заббиксе, сгруппировав их по узлу сети для того, чтобы всегда можно было пробежаться по сообщениям глазами, не тратя время на доступ на оборудование.
Второе — обратить внимание и на те события, о которых и не подозреваешь.
Как это сделать на серверах или компьютерах, где установлен заббикс-агент, многие знают — есть встроенные элементы данных log[], logrt[].
Но как быть, когда нужно собирать логи с сетевого оборудования, на которое никак не водрузить Zabbix-agent’а? Вообще-то можно, конечно, настроить syslog-сервер на том же ПК, на которой есть заббикс-агент, а дальше при помощи log[] переносить эти данные в заббикс. Вот только элементы данных и триггеры по нему будут прикреплены к узлу сети с заббикс-агентом, что интуитивно малопонятно. А можно ли прикрепить эти данные непосредственно к сетевому устройству? Можно.
Для этого нам понадобится zabbix_sender, Zabbix API и rsyslog на машине с заббикс-сервером или заббикс-прокси. В качестве бонуса также получим быстрый контекстный переход в журнал syslog-сообщений с карты сети.
Как будет выглядеть результат? Ну, примерно вот так:
Контекстный вызов:

Способ заставить Iptables писать в свой лог и не дублировать в системный
/var/log/iptables.log
, но продолжали дублироваться в /var/log/messages
и /var/log/syslog
, что очень раздражало и задача была незавершенной. Найдя способ не дублировать сообщения в системные, решил опубликовать полученные результаты.Настройка rsyslog для сбора логов по сети через шифрованное соединение
Допустим, у нас есть несколько серверов, имеющих доступ в интернет и не имеющих какой-то приватной сети между собой. В один прекрасный момент нам надоедает лазать на каждый их них по очереди и мы решаем настроить централизованный сервер логов. Так как данные будут передаваться через интернет, необходимо их защитить, передавая их через TLS.
Graylog2 стал удобнее и быстрее
Кто очень хочет понимать Linux, но не поймет с чего начинать — прошу ко мне на канал.

Вместо введения: Graylog это open source программное обеспечение, предназначенное для сбора логов в гигантских сетях их огромного количества источников различными способами. В нем можно удобно организовать сбор событий, фильтрацию, поиск, автоматизацию (всякие алерты) и т.д. Аналогичных средств множество, но Graylog предлагает нереальную производительность с использованием современных компонентов, удобную аналитику и красивый интерфейс.
Для работы ему нужна Java, конфигурацию он будет хранить в MongoDB, для поиска и хранения логов — использовать ElasticSearch. Про сбор информации из WIndows будет ниже, но спойлер — агенту больше не нужна Java.
Мониторинг системных вызовов Linux

Если вы инженер в организации, использующей Linux в промышленной эксплуатации, у меня к вам два небольших вопроса.
- Сколько уникальных исходящих TCP-соединений установили ваши серверы за последний час?
- Какие процессы и пользователи инициировали установку этих соединений?
Если вы в состоянии ответить на оба вопроса, отлично — дальше можете не читать. А если ответа нет, то получить эту информацию поможет go-audit.
Cбор логов с rsyslog, именами файлов в тегах, многострочными сообщениями и отказоустойчивостью
Изображение с сайта oxygen-icons.org
Задача
Передавать лог-файлы на центральный сервер:
- При недоступности сервера не терять сообщения, а накапливать и передавать при его появлении в сети.
- Корректно передавать многострочные сообщения.
- При появлении новых лог-файлов, достаточно перенастройки клиента, не требуется изменение конфигурации сервера
- Можно передавать содержимое всех лог-файлов с соответствующим шаблону именем, причём на сервере их содержимое будет сохраняться раздельно в файлы с таким же именем.
Условия: в инфраструктуре используются только Linux-сервера.
Rsyslog 8. Централизованный сбор логов
Заканчиваем в этом месяце первый поток «Администратора Linux» и запускаем потихоньку второй, который теперь будет заметно переработан и усилен новыми преподавателями. Один из них — Алексей Цыкунов, делится сегодня небольшой полезной заметкой.
Поехали.
Задача
Есть несколько серверов, на которых крутятся программы, которые сохраняют логи в свои каталоги.
Необходимо централизовано сохранять все эти логи в подкаталогах по имени серверов, сохраняя названия файлов.
Возможности перенастроить программы для записи логов сразу в syslog нет.
Окружение:
- server — centos7
- client — centos6
И на клиенте и на сервере необходимо обновить rsyslog до последней версии.
cd /etc/yum.repos.d/
wget http://rpms.adiscon.com/v8-stable/rsyslog.repo
yum update rsyslog

Собираем логи фаервола Mikrotik в базу данных
Хочу рассказать как легко и непринужденно можно настроить сервер сбора метаданных сетевого трафика для маршрутизаторов Микротик.
Цель: Целью будет, хранение «пережеванных» логов фаервола в базе данных, для последующего анализа.
Средства: Для реализации подойдет любой свежий дистрибутив Linux с rsyslogd v8 и выше, возможно предложенный синтаксис будет работать и на v7. Так же нам потребуется СУБД, я выбрал mariadb. Прирост БД будет варьироваться от количества журналируемых правил, потому размер накопителя на ваше усмотрение, в моем случае журналируются 30-40 правил, что в день составляет примерно 1200 тысяч строк. За месяц использования БД включая индексы выросла до 3,8Гб.
Механика: Маршрутизатор отправляет лог на удаленный сервер по UDP. Сервер rsyslog с помощью регулярных выражений проводит очистку строк от лишней информации, формирует SQL вставку и отправляет её в СУБД. СУБД, с помощью триггера до вставки, проводит дополнительную очистку и разделение полей, которые не удалось разобрать в rsyslog.
Юрий Бушмелев «Карта граблей на поле сбора и доставки логов» — расшифровка доклада
Логи — важная часть системы, позволяющая понять, что она работает (либо не работает), как ожидается. В условиях микросервисной архитектуры работа с логами становится отдельной дисциплиной специальной олимпиады. Нужно решить сразу кучу вопросов:
- как писать логи из приложения;
- куда писать логи;
- как доставлять логи для хранения и обработки;
- как обрабатывать и хранить логи.
Применение популярных ныне технологий контейнеризации добавляет песочка поверх граблей на поле вариантов решения задачи.
Как раз об этом расшифровка доклада Юрия Бушмелева "Карта граблей на поле сбора и доставки логов"
Кому интересно, прошу под кат.
Создание инкрементального сервера для iOS Team

Бесплатная книга
После пяти лет наступаний на одни и те же грабли, и полугода поисков DevOps-а, который знает что-такое Provision Profile и как от него зависит развертывание приложения, было принято решение составить пошаговую инструкцию, в картинках, о том, настраивать рабочее окружение в iOS Team с минимальными финансовыми вложениями (к примеру, когда нет проплаченных аккаунтов GitHub или Jira), а работа кипит.
Конференция <code/R>. Это стоит увидеть
Не слышали про «ту самую конференцию»?
Мой MikroTik – моя цифровая крепость (часть 3)
