[Примечание: мы проводим вебинары Docker Monitoring и Docker Logging в сентябре — зарегистрируйтесь сегодня!]
Если вас интересуют такие вещи, как CoreOS , журналы и мониторинг, вам следует ознакомиться с нашими предыдущими публикациями, посвященными CoreOS, о мониторинге кластеров ОС и узнать, как получить журналы CoreOS в ELK за 5 минут. И это только начало интеграции SPM с CoreOS! Пример: мы недавно оптимизировали настройку SPM в CoreOS и интегрировали шлюз регистрации в Logsene в агент SPM для Docker . И это еще не все …
В этом посте мы хотим рассказать о текущем состоянии мониторинга и управления журналом CoreOS из Sematext, чтобы вы знали, что происходит, а также о вещах, которые могут быть полезны для вашей организации, таких как:
- Обзор возможностей
- Автопарк для СЗМ
- Как настроить службы мониторинга и ведения журнала
1. Обзор возможностей
- добавить мониторинг и ведение журнала для всего кластера за 5 минут
- Метрики для всех узлов кластера CoreOS (хосты)
- ЦП, память, использование диска
- Подробные метрики для всех контейнеров на каждом хосте
- ЦП, память, ограничения, сбои, сетевой и дисковый ввод-вывод,…
- Обнаружение аномалий и оповещения для всех метрик
- Обнаружение аномалий и оповещения для всех журналов
- События Docker, такие как запуск / остановка / уничтожение, связаны с развертыванием, обслуживанием или иногда с ошибками и нежелательными перезапусками; Корреляция метрик, событий и журналов является естественным способом выявления проблем с использованием SPM.
- Часто существует сочетание конфигураций в переменных среды, статических настроек в файлах конфигурации облака и комбинаций confd и etcd . Мы решили сохранить все настройки в etcd, поэтому настройки выполняются только один раз и к ним легко получить доступ.
- Агент SPM для Docker включает службу шлюза ведения журнала для получения сообщения журнала через TCP. Обнаружение службы решается через etcd (где хранится незащищенный TCP). Все полученные сообщения анализируются, и поддерживаются следующие форматы:
- journalctl -o короткий | шорт-исо | JSON
- встроенный анализатор сообщений (например, для времени, уровня и текста сообщения dockerd)
- JSON с разделителями
- текстовые сообщения
- В случаях, когда синтаксический анализ завершается неудачно, шлюз добавляет временную метку и сохраняет сообщение 1: 1.
- Шлюз регистрации может быть настроен с помощью токена приложения Logsene — это делает его совместимым с большинством инструментов Unix, например journalctl -o json -n 10 | netcat localhost 9000
- SPM для Docker собирает все журналы из контейнеров непосредственно из Docker API. Шлюз регистрации обычно используется для системных журналов — или для чего-либо еще, настроенного в journald (см. Ниже «Служба пересылки журналов»)
- Передача в приемники Logsene зашифрована через HTTPS.
Интеграция SPM в CoreOS
2. Единицы флота для СЗМ
Службы агента SPM устанавливаются через флот (распределенную систему инициализации) во всем кластере. Давайте посмотрим эти файлы юнитов, прежде чем мы запустим их в облако.
Первый файл модуля spm-agent.service запускает агент SPM для Docker. Он использует токены и порты приложения SPM и Logsene для шлюза регистрации и т. Д. Он запускается на каждом хосте CoreOS (глобальный модуль).
Файл блока флота — агент SPM вкл. Лог Шлюз: spm-agent.service
Файл второго модуля logsene-service.service пересылает журналы из journald на этот шлюз регистрации, работающий как часть spm-agent-docker . Все поля, хранящиеся в журнале (вплоть до уровня исходного кода и номеров строк, предоставляемых модулями GO), затем доступны в Logsene.
Файл блока флота — экспедитор журналов: logsene.service
3. Настройте службы мониторинга и ведения журнала.
Приготовление:
- Получить бесплатный аккаунт apps.sematext.com
- Создайте приложение SPM типа «Docker» и скопируйте маркер приложения SPM
- Для журналов необходимо создать приложение Logsene, чтобы получить второй токен приложения для Logsene.
- Сохраните конфигурацию в etcd
# PREPARATION
# set your application tokens for SPM and Logsene
export $SPM_TOKEN=YOUR-SPM-TOKEN
export $LOGSENE_TOKEN=YOUR-LOGSENE-TOKEN
# set the port for the Logsene Gateway
export $LG_PORT=9000
# Store the tokens in etcd
# please note the same key is used in the unit file!
etcdctl set /sematext.com/myapp/spm/token $SPM_TOKEN
etcdctl set /sematext.com/myapp/logsene/token $LOGSENE_TOKEN
etcdctl set /sematext.com/myapp/logsene/gateway_port $LG_PORT
Скачайте файлы юнитов флота и запустите сервис через fleetclt
# INSTALLATION
# Download the unit file for SPM
wget https://raw.githubusercontent.com/sematext/spm-agent-docker/master/coreos/spm-agent.service
# Start SPM Agent in the whole cluster
fleetctl load spm-agent.service; fleetctl start spm-agent.service
# Download the unit file for Logsene
wget https://raw.githubusercontent.com/sematext/spm-agent-docker/master/coreos/logsene.service
# Start the log forwarding service
fleetctl load logsene.service; fleetctl start logsene.service
Проверьте установку
systemctl status spm-agent.service
systemctl status logsene.service
Отправьте несколько строк журнала, чтобы увидеть их в Logsene.
journalctl -o json -n 10 | ncat localhost 9000
Примерно через минуту вы увидите Метрики в SPM и Журналы в Logsene.
Здоровье кластера в ‘птичьем обзоре’
Обзор метрик хоста и контейнера для всего кластера
Логи и метрики
Ресурсы с открытым исходным кодом
Некоторые из описанных здесь вещей с открытым исходным кодом:
- Документация, исходный код и информация о поддержке доступна здесь: https://github.com/sematext/spm-agent-docker
- Каталог CoreOS содержит дополнительные примеры, такие как облако-файл конфигурация , позволяющий ФСМ и сервис Logsene для регистрации выхода journalctl в Logsene ELK Stack .
Резюме — Что это дает вам
Вот что эта настройка обеспечивает для вас:
- Метрики операционной системы каждого узла кластера CoreOS
- Метрики контейнера и хоста на каждом узле
- Все журналы из Docker-контейнеров и хостов (через journald)
- События Docker со всех узлов
- Журналы CoreOS со всех узлов
Наличие этой настройки позволяет вам в полной мере использовать преимущества SPM и Logsene , определяя интеллектуальные оповещения для метрик и журналов (доставляемых по таким каналам, как электронная почта, PagerDuty, Slack, HipChat или любой WebHook), а также устанавливая корреляции между показателями производительности, события, журналы и оповещения.
Запуск CoreOS? Нужна помощь в получении метрик CoreOS и / или журналов в SPM & Logsene? Дайте нам знать! Да, и если вы небольшой стартап — ping @sematext — вы можете получить хорошую скидку как на SPM, так и на Logsene!