Как установить сервер Graylog на CentOS 7

Graylog - это готовый корпоративный пакет программного обеспечения для управления журналами с открытым исходным кодом. Он собирает журналы из различных источников и анализирует их, чтобы обнаружить и решить проблемы. Сервер Graylog представляет собой комбинацию Elasticsearch, MongoDB и Graylog. Elasticsearch - очень популярное приложение с открытым исходным кодом для хранения текста и обеспечения очень мощных возможностей поиска. MongoDB - это приложение с открытым исходным кодом для хранения данных в формате NoSQL. Graylog собирает журналы из различных источников и предоставляет веб-панель для управления и поиска по журналам. Graylog также предоставляет REST API как для конфигурации, так и для данных. Он предоставляет настраиваемую панель инструментов, которую можно использовать для визуализации метрик и наблюдения за тенденциями с помощью полевой статистики, быстрых значений и диаграмм из одного центрального местоположения.

Из этого руководства вы узнаете, как установить Graylog Server на CentOS 7. Это руководство было написано для 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вашим фактическим доменным именем.

Обновите базовую систему, используя руководство Как обновить CentOS 7 . После обновления системы перейдите к установке Java.

Установить Java

Elasticsearch требует Java 8 для запуска. Он поддерживает Oracle Java и OpenJDK, но всегда рекомендуется использовать Oracle Java, когда это возможно. Oracle предоставляет готовые к установке пакеты RPM. Загрузите RPM Oracle JDK:

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm"

Установите пакет RPM.

sudo yum -y install jdk-8u144-linux-x64.rpm

Если 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и JRE_HOMEпеременную среды, запустив:

echo "export JAVA_HOME=/usr/java/jdk1.8.0_144/" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_144/jre" >> ~/.bash_profile

Теперь создайте файл с помощью следующей команды.

source ~/.bash_profile

Запустите echo $JAVA_HOMEкоманду, чтобы проверить, установлена ​​ли переменная среды или нет.

[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_144/

Установить Elasticsearch

Elasticsearch - это распределенное, масштабируемое и доступное приложение, работающее в режиме реального времени, которое используется для хранения журналов и поиска по ним. Он хранит данные в индексах, и поиск по ним выполняется очень быстро. Он предоставляет различные наборы API, такие как HTTP RESTful API и нативный Java API. Elasticsearch может быть установлен непосредственно через репозиторий Elasticsearch. Создайте новый файл репозитория для Elasticsearch.

sudo nano /etc/yum.repos.d/elasticsearch.repo

Заполните файл следующим содержанием.

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Импортируйте ключ PGP, используемый для подписи пакетов. Это обеспечит целостность пакетов.

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Установите пакет Elasticsearch:

sudo yum -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. Создайте новый файл репозитория для MongoDB.

sudo nano /etc/yum.repos.d/mongodb.repo

Заполните файл следующим содержанием.

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

Установите MongoDB, запустив:

sudo yum -y install mongodb-org

Запустите сервер MongoDB и включите его автоматический запуск.

sudo systemctl start mongod
sudo systemctl enable mongod

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

Загрузите последний репозиторий для сервера Graylog.

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.rpm
sudo yum -y update

Установите Graylog, запустив:

sudo yum -y install graylog-server

Сервер Graylog теперь установлен на вашем сервере. Прежде чем вы сможете запустить его, вам нужно будет настроить несколько вещей.

Настроить Graylog

Установите pwgenутилиту для генерации надежных паролей.

sudo yum -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 = mail@example.com
root_timezone = Asia/Kolkata

Включите веб-интерфейс Graylog, раскомментировав #web_enable = falseи установив значение в true. Также раскомментируйте и измените следующие строки, как указано.

rest_listen_uri = http://0.0.0.0:9000/api/
rest_transport_uri = http://45.76.214.19:9000/api/
web_enable = true
web_listen_uri = http://0.0.0.0:9000/

Сохраните файл и выйдите из текстового редактора.

Перезапустите сервис Graylog, выполнив:

sudo systemctl restart graylog-server

Настройте Nginx в качестве обратного прокси

По умолчанию веб-интерфейс Graylog прослушивает localhostпорт 9000, а API прослушивает порт 9000 с URL-адресом /api. В этом руководстве мы будем использовать Nginx в качестве обратного прокси, чтобы к приложению можно было получить доступ через стандартный порт HTTP. Установите веб-сервер Nginx, запустив:

sudo yum -y install nginx

Откройте виртуальный хост по умолчанию, набрав.

sudo nano /etc/nginx/nginx.conf

Найдите serverблок под httpи замените весь serverблок следующими строками.

server
{
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name graylog.example.com 192.0.2.1;

    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 start nginx
sudo systemctl enable nginx

Настройте брандмауэр и SELinux

Если вы используете брандмауэр на своем сервере, вам нужно будет настроить брандмауэр, чтобы установить исключение для определенных портов. Разрешите службе Elasticsearch и обратному прокси-серверу Nginx подключаться извне сети.

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-port=9200/tcp
sudo firewall-cmd --reload

Если в вашей системе включен SELinux, вам нужно будет добавить несколько исключений в политики SELinux.

sudo setsebool -P httpd_can_network_connect 1
sudo semanage port -a -t http_port_t -p tcp 9000
sudo semanage port -a -t http_port_t -p tcp 9200
sudo semanage port -a -t mongod_port_t -p tcp 27017

Вывод

На этом установка и базовая настройка сервера Graylog завершены. Теперь вы можете получить доступ к серверу Graylog http://192.0.2.1или, http://graylog.example.comесли у вас настроен DNS. Войдите в систему, используя имя пользователя adminи текстовую версию пароля, который вы установили root_password_sha2ранее.

Поздравляем - на вашем сервере CentOS 7 установлен полностью работающий сервер Graylog.

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше