Установка Graylog, Elasticsearch и MongoDB на Ubuntu
О чём эта инструкция
Это руководство показывает, как установить и настроить стек логирования: MongoDB, Elasticsearch и Graylog. Оно полезно для единого сервера разработки или тестовой среды. Команды и конфигурации приведены для Ubuntu 15.10 и указанных версий компонентов.
Важно: версии в руководстве — MongoDB 3, Elasticsearch 1.7 и Graylog 1.3.2. Перед применением на продакшене проверьте совместимость и обновлённые релизы.
Краткие требования
- Ubuntu 15.10 — 64‑бит
- 4 ГБ ОЗУ (минимум для тестовой среды)
- root-права (или sudo)
Критерии приёмки
- Службы MongoDB, Elasticsearch и Graylog запущены и активны.
- Graylog REST API доступен по http://127.0.0.1:12900/.
- Веб‑интерфейс Graylog открывается на порту 8080 и позволяет войти под admin с указанным паролем.
Шаг 1 — Установка MongoDB
MongoDB — документная NoSQL‑БД. Документы используют BSON (бинарный JSON). В этом руководстве мы устанавливаем MongoDB 3 из репозиториев Debian.
Добавьте репозиторий, обновите индексы и установите пакет:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" > /etc/apt/sources.list.d/mongodb-org-3.0.list
apt-get updateУстановите MongoDB:
apt-get install mongodb-orgЗапустите сервис и включите автозапуск:
systemctl start mongod
systemctl enable mongodПроверка: убедитесь, что процесс mongod работает и принимает соединения на стандартном порту.
Шаг 2 — Установка Java
Graylog и Elasticsearch зависят от Java. Для Graylog требуется Java 7 или выше. Установим OpenJDK 7:
apt-get install openjdk-7-jreПроверьте версию:
java -versionОжидаемый пример вывода:
java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)Если версия Java не соответствует требованиям, установите более свежий JDK/JRE.
Шаг 3 — Установка Elasticsearch
В этом руководстве используется Elasticsearch 1.7.
Добавьте GPG‑ключ и репозиторий:
sudo wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -Добавьте репозиторий и обновите пакеты:
echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" > /etc/apt/sources.list.d/elasticsearch.list
apt-get updateУстановите Elasticsearch:
sudo apt-get install elasticsearchЗапустите демон и включите автозапуск:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearchНастройка:
Откройте конфигурационный файл:
vim /etc/elasticsearch/elasticsearch.ymlРазкомментируйте и установите имя кластера:
cluster.name = graylog2Для продакшена отключите динамические скрипты чтобы уменьшить риск удалённого выполнения кода:
script.disable_dynamic: trueСохраните и перезапустите Elasticsearch:
systemctl restart elasticsearchПроверьте состояние кластера с помощью curl:
curl -XGET 'http://localhost:9200/'
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Если ответы положительные, Elasticsearch работает локально на порту 9200.
Шаг 4 — Установка Graylog Server
Здесь используется Graylog 1.3.2. Скачайте и распакуйте пакет в /opt, затем настройте конфигурацию.
Установите pwgen для генерации секретов:
apt-get install pwgenСгенерируйте секрет‑фразу для password_secret (96 символов):
pwgen -N 1 -s 96Пример: (в руководстве показан пример секретной строки)
GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3UaСгенерируйте sha256‑хэш пароля администратора (пример):
echo -n mypassword | sha256sumПример вывода:
9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1Скачайте Graylog и распакуйте:
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-server/graylog-1.3.2.tgzРаспакуйте и переименуйте каталог:
tar -xzvf graylog-1.3.2.tgz
mv graylog-1.3.2/ graylog/Скопируйте пример конфигурации в /etc:
mkdir -p /etc/graylog/server/
cp /opt/graylog/graylog.conf.example /etc/graylog/server/server.confОтредактируйте конфиг:
vim /etc/graylog/server/server.confУстановите сгенерированную строку в password_secret:
password_secret = GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3UaВставьте sha256‑хэш в root_password_sha2 — это будет пароль администратора для входа:
root_password_sha2 = 9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1Отключите multicast discovery у Elasticsearch и укажите unicast‑хосты (локально):
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300Установите количество шард и реплик для односерверной установки:
elasticsearch_shards = 1
elasticsearch_replicas = 0Сохраните файл и запустите Graylog:
cd /opt/graylog/bin/
./graylogctl startЛоги можно смотреть командой:
tail -f /opt/graylog/log/Ожидаемый фрагмент лога при успешном запуске:
`Started REST API at
``Graylog2 up and running.`Если вы видите REST API адрес, сервер запущен корректно.
Шаг 5 — Установка Graylog Web
Скачайте веб‑интерфейс и распакуйте:
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-web-interface/graylog-web-interface-1.3.2.tgzРаспакуйте и переименуйте:
tar -xzvf graylog-web-interface-1.3.2.tgz
mv graylog-web-interface-1.3.2/ graylog-web/Сгенерируйте application.secret:
pwgen -N 1 -s 96Пример:
zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAEОтредактируйте конфигурационный файл веб‑интерфейса:
cd graylog-web/
vim graylogУкажите адрес сервера Graylog и вставьте application.secret:
graylog2-server.uris="http://127.0.0.1:12900/"application.secret="zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE"Запустите веб‑интерфейс на порту 8080:
cd /opt/graylog-web/bin/
./graylog-web-interface -Dhttp.port=8080Откройте в браузере: http://myipaddress:8080/ и войдите под admin и вашим sha256‑паролем.


Проверка и базовая отладка
Что проверить сразу после установки:
- MongoDB слушает на стандартном порту и отвечает.
- Elasticsearch доступен на 9200 и кластер green/green-ish.
- Graylog REST API на 127.0.0.1:12900 отвечает.
- Веб‑интерфейс на 8080 позволяет выполнить вход.
Типичные проблемы и решения:
- Сервис не стартует: проверьте логи в /var/log/ (mongod, elasticsearch, graylog) или в /opt/graylog/log.
- Elasticsearch долго стартует: убедитесь в достатке оперативной памяти; на слабых машинах JVM может не стартовать.
- Ошибка аутентификации в вебе: проверьте, что root_password_sha2 совпадает с sha256 вашего пароля.
Полезные команды для диагностики:
systemctl status elasticsearch
systemctl status mongod
ps aux | grep graylog
journalctl -u elasticsearchРекомендации по безопасности и производительности
Important: в продуктивной среде необходимо дополнительно защитить сервисы.
Безопасность:
- Разверните Graylog и Elasticsearch за защищённым брандмауэром. Откройте внешние порты только при необходимости.
- Включите TLS для Graylog REST API и веб‑интерфейса при реальном трафике.
- Используйте отдельные сервисные аккаунты и минимальные права для процессов.
- Ограничьте доступ к MongoDB и Elasticsearch по сети (bind_address, firewall).
Производительность:
- Для продакшена увеличьте RAM и настройте JVM‑параметры для Elasticsearch и Graylog (heap size). По умолчанию стоит разумный минимум, но в рабочих нагрузках требуется тонкая настройка.
- Разделяйте роли: хранение данных (Elasticsearch), лог‑сервер (Graylog) и база (MongoDB) лучше располагать на разных узлах.
Когда этот стек не подходит
- Для критически важных продакшен‑окружений стоит рассмотреть современные версии компонентов. Версии 1.x/1.3.2 устарели и не получают обновлений.
- Если требуется централизованная высокодоступная архитектура, одномашинная установка не подойдёт.
- Для лёгких задач логирования можно использовать облачные SaaS‑решения или более простые агрегации (например, rsyslog + logrotate).
Альтернативы и подходы
- ELK/Elastic Stack (Elasticsearch + Logstash + Kibana) — популярная альтернатива для агрегации и визуализации логов.
- Fluentd/Fluent Bit + Elasticsearch — оптимизировано для контейнерных сред.
- Коммерческие облачные решения для централизованного логирования имеют преимущества в удобстве и масштабировании.
Мини‑методология деплоя (быстрое руководство)
- План: определите нагрузки, требования к хранению и резервному копированию.
- Подготовка: выделите отдельные VM/контейнеры для MongoDB, Elasticsearch и Graylog на продакшене.
- Установка: последовательно установите зависимости (Java), затем MongoDB, Elasticsearch, Graylog Server, Graylog Web.
- Тест: проверьте доступность REST API, веба и корректность индексов Elasticsearch.
- Мониторинг: настройте мониторинг состояния JVM, использование диска и задержки индексации.
Чеклисты по ролям
Sysadmin:
- Установить и запустить службы.
- Настроить автозапуск systemd.
- Настроить firewall и ограничения доступа.
DevOps/Инженер по наблюдаемости:
- Настроить приёмы логов (inputs) в Graylog.
- Настроить индексацию и шаблоны в Elasticsearch.
- Настроить дашборды и оповещения.
Security Engineer:
- Настроить TLS и аутентификацию.
- Ограничить доступ по IP/сетям.
- Обеспечить безопасное хранение секретов.
Глоссарий (1‑строчные определения)
- Elasticsearch — распределённая поисковая система на базе Lucene.
- MongoDB — документная NoSQL‑БД, использующая BSON.
- Graylog — платформа централизованного управления логами на основе Elasticsearch и MongoDB.
- pwgen — утилита для генерации случайных паролей.
Советы по обновлению и совместимости
- Проверяйте совместимость версий Graylog, Elasticsearch и MongoDB перед апгрейдом.
- Переход с 1.x на современные версии Elastic требует миграции индексов и возможной перестройки конфигурации.
- Для новых проектов рассмотрите использование поддерживаемых и актуальных релизов компонентов.
Краткое резюме
- Мы установили MongoDB, Java, Elasticsearch, Graylog Server и Graylog Web.
- Генерация секретов и настройка пароля администратора — обязательный шаг для веб‑интерфейса.
- Для продакшена нужны дополнительные меры безопасности, мониторинга и распределения ролей по узлам.
extras:
- TL;DR: Пошаговое руководство по установке Graylog 1.3.2, Elasticsearch 1.7 и MongoDB 3 на Ubuntu 15.10. Включает базовую настройку, генерацию секретов, запуск веб‑интерфейса и разделы по проверке, устранению неполадок и базовой безопасности.
Сохраните конфигурации, секреты и пароли в безопасном месте и тестируйте изменения в отдельной среде перед применением в продакшене.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента