Как установить Graylog 1.x в Ubuntu 14.04

Вступление

В этом руководстве мы расскажем, как установить Graylog v1.3.x (иногда называемый Graylog2) в Ubuntu 14.04 и настроить его для сбора системных журналов ваших систем в централизованном месте. Graylog - это мощный инструмент для управления и анализа журналов, который имеет множество вариантов использования, от мониторинга входов в SSH и необычной активности до отладки приложений. Он основан на Elasticsearch, Java и MongoDB.

Можно использовать Graylog для сбора и мониторинга большого количества журналов, но мы ограничим область применения этого руководства сбором системного журнала. Кроме того, поскольку мы демонстрируем основы Graylog, мы будем устанавливать все компоненты на одном сервере.

О компонентах Graylog

Graylog имеет четыре основных компонента:

  • * Узлы Graylog Server *: Служит рабочим, который получает и обрабатывает сообщения, а также взаимодействует со всеми другими несерверными компонентами. Его производительность зависит от процессора

  • * Elasticsearch узлы *: хранит все журналы / сообщения. Его производительность зависит от оперативной памяти и дискового ввода-вывода

  • * MongoDB *: хранит метаданные и не испытывает большой нагрузки

  • * Веб-интерфейс *: пользовательский интерфейс

Вот схема компонентов Graylog (обратите внимание, что сообщения отправляются с других ваших серверов):

изображение: https: //assets.digitalocean.com/articles/graylog2/graylog_simple_setup_v2.png [Основная настройка Graylog]

В этом руководстве будет реализована базовая настройка Graylog, в которой все компоненты установлены на одном сервере. Для большей производственной настройки рекомендуется установить компоненты на отдельных серверах из соображений производительности.

Предпосылки

Для установки, описанной в этом руководстве, требуется сервер Ubuntu 14.04 с как минимум 2 ГБ ОЗУ. Вам также нужен root-доступ (шаги 1-4 из Initial Setup Server с Ubuntu 14.04).

Если вы используете VPS с менее чем 2 ГБ ОЗУ, вы не сможете запустить все компоненты Graylog.

Давайте начнем установку программного обеспечения!

Установить MongoDB

Установка MongoDB проста и быстра. Выполните следующую команду, чтобы импортировать открытый ключ GPG MongoDB в apt:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Создайте исходный список MongoDB:

echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Обновите базу данных пакетов apt:

sudo apt-get update

Установите последнюю стабильную версию MongoDB с помощью этой команды:

sudo apt-get install mongodb-org

MongoDB должен быть запущен сейчас. Давайте перейдем к установке Java.

Установить Java

Elasticsearch требует Java, поэтому мы установим его сейчас. Мы установим Oracle Java 8, потому что это то, что рекомендует Elastic. Однако он должен хорошо работать с OpenJDK, если вы решите пойти по этому пути.

Добавьте Oracle Java PPA в apt:

sudo add-apt-repository ppa:webupd8team/java

Обновите базу данных пакетов apt:

sudo apt-get update

Установите последнюю стабильную версию Oracle Java 8 с помощью этой команды (и примите появившееся лицензионное соглашение):

sudo apt-get install oracle-java8-installer

Теперь, когда Java установлена, давайте установим Elasticsearch.

Установить Elasticsearch

Graylog 1.x работает только с версиями Elasticsearch до 2.0, поэтому мы установим Elasticsearch 1.7.x. Elasticsearch можно установить с помощью менеджера пакетов, добавив список источников пакетов Elastic.

Выполните следующую команду, чтобы импортировать открытый ключ GPG Elasticsearch в apt:

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Если ваша подсказка просто висит там, она, вероятно, ожидает пароль вашего пользователя (для авторизации команды + sudo +). Если это так, введите свой пароль.

Создайте список источников Elasticsearch:

echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.x.list

Обновите базу данных пакетов apt:

sudo apt-get update

Установите Elasticsearch с помощью этой команды:

sudo apt-get -y install elasticsearch

Elasticsearch теперь установлен. Давайте изменим конфигурацию:

sudo vi /etc/elasticsearch/elasticsearch.yml

Найдите раздел, в котором указано + cluster.name. Раскомментируйте его и замените значение по умолчанию «graylog-development», чтобы оно выглядело следующим образом:

asticsearch.yml - 1 из 2

cluster.name: graylog-development

Вы захотите ограничить внешний доступ к вашему экземпляру Elasticsearch (порт 9200), чтобы посторонние не могли прочитать ваши данные или отключить кластер Elasticsearch через HTTP API. Найдите строку, которая определяет + network.host +, раскомментируйте ее и замените ее значение на localhost, чтобы она выглядела следующим образом:

asticsearch.yml - 2 из 2

network.host: localhost

Сохраните и выйдите из +asticsearch.yml +.

Теперь запустите Elasticsearch:

sudo service elasticsearch restart

Затем выполните следующую команду, чтобы запустить Elasticsearch при загрузке:

sudo update-rc.d elasticsearch defaults 95 10

Через несколько секунд выполните следующую команду, чтобы проверить правильность работы Elasticsearch:

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

Теперь, когда Elasticsearch запущен и работает, давайте установим сервер Graylog.

Установить сервер Graylog

Теперь, когда мы установили другое необходимое программное обеспечение, давайте установим серверный компонент Graylog, + graylog-server +.

Сначала загрузите пакет Graylog Debian в свой домашний каталог с помощью следующих команд:

cd ~
wget https://packages.graylog2.org/repo/packages/graylog-1.3-repository-ubuntu14.04_latest.deb

Затем добавьте пакет в менеджер пакетов с помощью этой команды:

sudo dpkg -i graylog-1.3-repository-ubuntu14.04_latest.deb

Затем установите пакет + graylog-server + с этими командами:

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get install graylog-server

Установите pwgen, который мы будем использовать для генерации секретных ключей пароля:

sudo apt-get install pwgen

Теперь мы должны настроить пароль и секретный ключ admin. Секретный ключ пароля настраивается в server.conf с помощью параметра + password_secret +. Мы можем сгенерировать случайный ключ и вставить его в конфигурацию Graylog с помощью следующих двух команд:

SECRET=$(pwgen -s 96 1)
sudo -E sed -i -e 's/password_secret =.*/password_secret = '$SECRET'/' /etc/graylog/server/server.conf

Пароль admin назначается путем создания + shasum + требуемого пароля и назначения его параметру + root_password_sha2 + в файле конфигурации Graylog. Создайте shasum вашего желаемого пароля с помощью следующей команды, заменив выделенный «пароль» своим собственным. Команда sed вставляет его в конфигурацию Graylog для вас:

PASSWORD=$(echo -n  | shasum -a 256 | awk '{print $1}')
sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf

Теперь, когда пароль администратора настроен, давайте откроем конфигурацию Graylog, чтобы внести несколько изменений:

sudo vi /etc/graylog/server/server.conf

Вы должны увидеть, что + password_secret + и + root_password_sha2 + содержат случайные строки из-за команд, которые вы выполнили на предыдущих шагах.

Теперь мы настроим + rest_transport_uri +, как веб-интерфейс Graylog будет взаимодействовать с сервером. Поскольку мы устанавливаем все компоненты на одном сервере, давайте установим значение + 127.0.0.1 + или + localhost +. Найдите и раскомментируйте + rest_transport_uri + и измените его значение так, чтобы оно выглядело следующим образом:

/etc/graylog/server/server.conf - 1 из 4

rest_transport_uri = http://127.0.0.1:12900/

Далее, поскольку у нас есть только один осколок Elasticsearch (который работает на этом сервере), мы изменим значение +asticsearch_shards + на 1:

/etc/graylog/server/server.conf - 2 из 4

elasticsearch_shards =

Затем измените значение +asticsearch_cluster_name + на «graylog-development» (аналогично Elasticsearch + cluster.name +):

/etc/graylog/server/server.conf - 3 из 4

elasticsearch_cluster_name = graylog-development

Раскомментируйте эти две строки, чтобы обнаружить экземпляр Elasticsearch, используя одноадресную рассылку вместо многоадресной рассылки:

/etc/graylog/server/server.conf - 4 из 4

elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300

Сохранить и выйти. Теперь + graylog-server + настроен и готов к запуску.

Запустите сервер Graylog с помощью служебной команды:

sudo start graylog-server

Следующим шагом является установка веб-интерфейса Graylog. Давайте сделаем это сейчас!

Установить Graylog Web

Установите Graylog Web с помощью следующих команд:

sudo apt-get install graylog-web

Далее мы хотим настроить секретный ключ веб-интерфейса, параметр + application.secret в * web.conf *. Мы сгенерируем другой ключ, как мы это сделали с конфигурацией сервера Graylog, и вставим его с помощью sed, вот так:

SECRET=$(pwgen -s 96 1)
sudo -E sed -i -e 's/application\.secret=""/application\.secret="'$SECRET'"/' /etc/graylog/web/web.conf

Теперь откройте файл конфигурации веб-интерфейса с помощью этой команды:

sudo vi /etc/graylog/web/web.conf

Теперь нам нужно обновить конфигурацию веб-интерфейса, указав параметр + graylog2-server.uris +. Это список разделенных запятыми REST URI сервера. Поскольку у нас есть только один узел сервера Graylog, значение должно соответствовать значению + rest_listen_uri + в конфигурации сервера Graylog (т.е. «Http://127.0.0.1:12900/%22[http://127.0.0.1:12900/»]).

/etc/graylog/web/web.conf выдержка

graylog2-server.uris="http://127.0.0.1:12900/"

Веб-интерфейс Graylog настроен. Запустите веб-интерфейс Graylog:

sudo start graylog-web

Теперь мы можем использовать веб-интерфейс Graylog. Давайте сделаем это сейчас.

Настройка Graylog для получения сообщений системного журнала

Войдите в веб-интерфейс Graylog

В вашем любимом веб-браузере перейдите на порт «+ 9000 +» публичного IP-адреса вашего сервера:

In a web browser:http://:9000/

Вы должны увидеть экран входа в систему. Введите + admin + в качестве имени пользователя и пароля администратора, которые вы установили ранее.

После входа вы увидите что-то вроде следующего:

изображение: https: //assets.digitalocean.com/articles/graylog/getting_started.png [Graylog Dashboard]

Красный номер вверху - это уведомление. Если вы щелкнете по нему, вы увидите сообщение о том, что у вас есть узел без каких-либо запущенных входов. Давайте добавим вход для получения сообщений системного журнала по UDP сейчас.

Создать вход Syslog UDP

Чтобы добавить вход для получения сообщений системного журнала, щелкните раскрывающийся список * System * в верхнем меню.

Теперь из выпадающего меню выберите * Inputs *.

Выберите * Syslog UDP * из выпадающего меню и нажмите кнопку * Launch new input *.

Появится модальное окно «Запустить новый вход: Syslog UDP». Введите следующую информацию (замените частный IP-адрес вашего сервера адресом привязки):

  • * Заголовок: * + syslog +

  • * Порт: * + 8514 +

  • * Адрес привязки: * + graylog_private_IP +

Затем нажмите * Launch *.

Теперь вы должны увидеть вход с именем «syslog» в разделе * Local input * (рядом с ним должно быть зеленое поле с надписью «running»), например, так:

изображение: https: //assets.digitalocean.com/articles/graylog/inputs.png [вход в системный журнал Graylog]

Теперь наш сервер Graylog готов принимать сообщения системного журнала на порт + 8514 + с ваших серверов. Давайте настроим ваши серверы для отправки их сообщений системного журнала в Graylog сейчас.

Настройте Rsyslog для отправки системных журналов на сервер Graylog

На всех ваших * клиентских серверах *, серверах, которым вы хотите отправлять сообщения системного журнала в Graylog, выполните следующие действия.

Создайте файл конфигурации rsyslog в /etc/rsyslog.d. Мы назовем наш + 90-graylog.conf +:

sudo vi /etc/rsyslog.d/90-graylog.conf

В этом файле добавьте следующие строки, чтобы настроить rsyslog для отправки сообщений syslog на ваш сервер Graylog (замените + graylog_private_IP + на частный IP-адрес вашего сервера Graylog):

/etc/rsyslog.d/90-graylog.conf

$template GRAYLOGRFC5424,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n"
*.* @:8514;GRAYLOGRFC5424

Сохранить и выйти. Этот файл будет загружен как часть вашей конфигурации rsyslog. Теперь вам нужно перезапустить rsyslog, чтобы изменения вступили в силу.

sudo service rsyslog restart

После завершения настройки rsyslog на всех серверах, которые вы хотите отслеживать, вернитесь в веб-интерфейс Graylog.

Просмотр источников Graylog

В вашем любимом веб-браузере перейдите на порт «+ 9000 +» публичного IP-адреса вашего сервера:

In a web browser:http://:9000/

Нажмите * Источники * в верхней панели. Вы увидите список всех серверов, на которых вы настроили rsyslog.

Имя хоста источников слева, а количество сообщений, полученных Graylog, справа.

Поиск в данных Graylog

Позволив вашему Graylog собирать сообщения в течение некоторого времени, вы сможете осуществлять поиск по сообщениям. В качестве примера, давайте поищем «sshd», чтобы увидеть, какие действия SSH происходят на наших серверах. Вот фрагмент наших результатов:

изображение: https: //assets.digitalocean.com/articles/graylog/search_sshd.png [Пример поиска Graylog]

Как видите, результаты нашего примера поиска показали журналы sshd для различных серверов и множество неудачных попыток входа в систему. Ваши результаты могут отличаться, но это может помочь вам определить многие проблемы, в том числе то, как неавторизованные пользователи пытаются получить доступ к вашим серверам.

В дополнение к основным функциям поиска во всех ваших источниках вы можете выполнять поиск в журналах определенного хоста или в течение определенного периода времени.

Поиск по данным в Graylog полезен, например, если вы хотите просмотреть журналы сервера или нескольких серверов после инцидента. Централизованное ведение журнала упрощает корреляцию связанных инцидентов, поскольку вам не нужно входить на несколько серверов, чтобы увидеть все произошедшие события.

Для получения дополнительной информации о том, как работает панель поиска, ознакомьтесь с официальной документацией: Graylog Searching

Заключение

Теперь, когда вы настроили Graylog, не стесняйтесь исследовать другие функции, которые он предлагает. Вы можете отправлять журналы других типов в Graylog и настраивать экстракторы (или переформатировать журналы с помощью программного обеспечения, такого как logstash), чтобы сделать журналы более структурированными и доступными для поиска. Вы также можете изучить возможности расширения среды Graylog, разделив компоненты и добавив избыточность для повышения производительности и доступности.

Удачи!

Related