Graylog - это готовый корпоративный пакет программного обеспечения для управления журналами с открытым исходным кодом. Он собирает журналы из различных источников и анализирует их, чтобы обнаружить и решить проблемы. Сервер Greylog представляет собой комбинацию Elasticsearch, MongoDB и Graylog. Elasticsearch - очень популярное приложение с открытым исходным кодом для хранения текста и обеспечения очень мощных возможностей поиска. MongoDB - это приложение с открытым исходным кодом для хранения данных в формате NoSQL. Graylog собирает журналы из различных источников и предоставляет веб-панель для управления и поиска по журналам. Graylog также предоставляет REST API как для конфигурации, так и для данных. Он предоставляет настраиваемую панель инструментов, которую можно использовать для визуализации метрик и наблюдения за тенденциями с помощью полевой статистики, быстрых значений и диаграмм из одного центрального местоположения.
Из этого руководства вы узнаете, как установить Graylog Server в Ubuntu 16.04. Это руководство было написано для Graylog Server 2.3, но может работать и на более новых версиях. Вы также научитесь устанавливать Java, Elasticsearch и MongoDB. Мы также защитим экземпляр MongoDB и настроим обратный прокси-сервер Nginx для веб-панели управления и API.
Предпосылки
В этом руководстве мы будем использовать 192.0.2.1
в качестве общедоступного IP-адреса сервера и в graylog.example.com
качестве имени домена, указывающего на сервер. Замените все вхождения 192.0.2.1
вашим публичным IP-адресом Vultr и graylog.example.com
вашим фактическим доменным именем.
Обновите свою базовую систему, используя руководство Как обновить Ubuntu 16.04 . После обновления системы перейдите к установке Java.
Установить Java
Elasticsearch требует Java 8 для запуска. Он поддерживает Oracle Java и OpenJDK, но всегда рекомендуется использовать Oracle Java, когда это возможно. Добавьте Oracle Java PPA репозиторий:
sudo add-apt-repository ppa:webupd8team/java
Обновите метаданные репозитория APT:
sudo apt update
Установите последнюю стабильную версию Java 8, запустите:
sudo apt -y install oracle-java8-installer
Примите лицензионное соглашение, когда будет предложено. Если Java успешно установлена, вы сможете проверить ее версию.
java -version
Вы увидите следующий вывод.
user@vultr:~$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
Установите JAVA_HOME
и другие значения по умолчанию, установив oracle-java8-set-default
. Бег:
sudo apt -y install oracle-java8-set-default
Запустите echo $JAVA_HOME
команду, чтобы проверить, установлена ли переменная среды или нет.
user@vultr:~$ echo "$JAVA_HOME"
/usr/lib/jvm/java-8-oracle
Если вы не получите вывод, показанный выше, вам может потребоваться выйти из системы и снова войти в оболочку.
Установить Elasticsearch
Elasticsearch - это распределенное, масштабируемое и доступное приложение, работающее в режиме реального времени, которое используется для хранения журналов и поиска по ним. Он хранит данные в индексах, и поиск по ним выполняется очень быстро. Он предоставляет различные наборы API, такие как HTTP RESTful API и нативный Java API. Elasticsearch может быть установлен непосредственно через репозиторий Elasticsearch. Добавьте хранилище Elasticsearch APT:
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
Импортируйте ключ PGP, используемый для подписи пакетов. Это обеспечит целостность пакетов.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Обновите метаданные хранилища APT.
sudo apt update
Установите пакет Elasticsearch:
sudo apt -y install elasticsearch
После установки пакета откройте файл конфигурации Elasticsearch по умолчанию.
sudo nano /etc/elasticsearch/elasticsearch.yml
Найдите следующую строку, раскомментируйте ее и измените значение с my-application
на graylog
.
cluster.name: graylog
Вы можете запустить Elasticsearch и включить его автоматический запуск во время загрузки:
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Elasticsearch теперь работает на порту 9200. Убедитесь, что он работает правильно, запустив:
curl -XGET 'localhost:9200/?pretty'
Вы должны увидеть вывод, похожий на следующий.
[user@vultr ~]$ curl -XGET 'localhost:9200/?pretty'
{
"name" : "-kYzFA9",
"cluster_name" : "graylog",
"cluster_uuid" : "T3JQKehzSqmLThlVkEKPKg",
"version" : {
"number" : "5.5.1",
"build_hash" : "19c13d0",
"build_date" : "2017-07-18T20:44:24.823Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
Если вы обнаружите ошибки, подождите несколько секунд и повторите попытку, так как Elasticsearch завершит процесс запуска. Elasticsearch теперь установлен и работает правильно.
Установить MongoDB
MongoDB - это бесплатный сервер базы данных NoSQL с открытым исходным кодом. В отличие от традиционной базы данных, которая использует таблицы для организации своих данных, MongoDB ориентирована на документы и использует JSON-подобные документы без схем. Graylog использует MongoDB для хранения своей конфигурации и метаинформации. Его можно установить напрямую через репозиторий MongoDB. Импортируйте ключ GPG, используемый для подписи пакета. Это обеспечит подлинность пакетов.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Теперь создайте файл репозитория:
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Обновите метаданные хранилища APT.
sudo apt update
Установите пакет MongoDB:
sudo apt -y install mongodb-org
Запустите сервер MongoDB и включите его автоматический запуск.
sudo systemctl start mongod
sudo systemctl enable mongod
Установить сервер Graylog
Загрузите и последний репозиторий для сервера Graylog.
wget https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.deb
sudo dpkg -i graylog-2.3-repository_latest.deb
sudo apt update
Установите пакет Graylog:
sudo apt install graylog-server
Сервер Graylog теперь установлен на вашем сервере. Прежде чем вы сможете запустить его, вам нужно будет настроить несколько вещей.
Установите pwgen
утилиту для генерации надежных паролей.
sudo apt -y install pwgen
Теперь создайте надежный секретный пароль.
pwgen -N 1 -s 96
Вы будете выводить похожие на:
[user@vultr ~]$ pwgen -N 1 -s 96
pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
Также сгенерируйте 256-битный хеш для пароля admin
пользователя root :
echo -n StrongPassword | sha256sum
Замените StrongPassword
на пароль, который вы хотите установить для admin
пользователя. Ты увидишь:
[user@vultr ~]$ echo -n StrongPassword | sha256sum
05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223 -
Откройте файл конфигурации Graylog:
sudo nano /etc/graylog/server/server.conf
Найти password_secret =
, скопировать и вставить пароль, сгенерированный с помощью pwgen
команды. Найдите root_password_sha2 =
, скопируйте и вставьте преобразованный 256-битный хэш SHA вашего пароля администратора. Найдите #root_email =
, раскомментируйте и укажите свой адрес электронной почты. Раскомментируйте и установите часовой пояс на root_timezone
. Например:
password_secret = pJqhNbdEY9FtNBfFUtq20lG2m9daacmsZQr59FhyoA0Wu3XQyVZcu5FedPZ9eCiDfjdiYWfRcEQ7a36bVqxSyTzcMMx5Rz8v
root_password_sha2 = 05a181f00c157f70413d33701778a6ee7d2747ac18b9c0fbb8bd71a62dd7a223
root_email = [email protected]
root_timezone = Asia/Kolkata
Включите веб-интерфейс Graylog, раскомментировав его #web_enable = false
и установив для него значение true
. Также раскомментируйте и измените следующие строки, как указано.
rest_listen_uri = http://0.0.0.0:9000/api/
rest_transport_uri = http://192.0.2.1:9000/api/
web_enable = true
web_listen_uri = http://0.0.0.0:9000/
Сохраните файл и выйдите из текстового редактора.
Перезапустите и включите службу Graylog, выполнив:
sudo systemctl restart graylog-server
sudo systemctl enable graylog-server
По умолчанию веб-интерфейс Graylog прослушивает localhost
порт 9000, а API прослушивает порт 9000 с URL-адресом /api
. В этом руководстве мы будем использовать Nginx в качестве обратного прокси, чтобы к приложению можно было получить доступ через стандартный порт HTTP. Установите веб-сервер Nginx, запустив:
sudo apt -y install nginx
Откройте файл виртуального хоста по умолчанию, набрав.
sudo nano /etc/nginx/sites-available/default
Замените существующий контент следующими строками:
server
{
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name 192.0.2.1 graylog.example.com;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Graylog-Server-URL http://$server_name/api;
proxy_pass http://127.0.0.1:9000;
}
}
Запустите Nginx и включите его автоматический запуск во время загрузки:
sudo systemctl restart nginx
sudo systemctl enable nginx
Вывод
На этом установка и базовая настройка сервера Graylog завершены. Теперь вы можете получить доступ к серверу Graylog http://192.0.2.1
или, http://graylog.example.com
если у вас настроен DNS. Войдите в систему, используя имя пользователя admin
и текстовую версию пароля, который вы установили root_password_sha2
ранее.
Поздравляем - на вашем сервере Ubuntu 16.04 установлен полностью работающий сервер Graylog.