Поиск по сайту:

Как установить Elastic Stack (Elasticsearch, Logstash и Kibana) на CentOS 8


Это руководство существует для этих версий ОС

  • CentOS 8
  • CentOS 7

На этой странице

  1. Шаг 1. Добавьте эластичный репозиторий
  2. Шаг 2. Установите и настройте Elasticsearch
  3. Шаг 3. Установите и настройте информационную панель Kibana.
  4. Шаг 4. Настройте Nginx в качестве обратного прокси-сервера для Kibana
  5. Шаг 5. Установите и настройте Logstash
  6. Шаг 6. Установите Filebeat на клиенте
    1. - Установите Filebeat на CentOS 8
    2. - Установите Filebeat в Ubuntu 18.04.
    3. - Настройка Filebeat

    Elasticsearch — это поисковая система с открытым исходным кодом, основанная на Lucene, разработанная на Java. Он предоставляет распределенную и многопользовательскую полнотекстовую поисковую систему с веб-интерфейсом HTTP Dashboard (Kibana). Данные запрашиваются, извлекаются и сохраняются с помощью схемы документа JSON. Elasticsearch — это масштабируемая поисковая система, которую можно использовать для поиска всех видов текстовых документов, включая файлы журналов. Elasticsearch — это сердце Elastic Stack или ELK Stack.

    Logstash — это инструмент с открытым исходным кодом для управления событиями и журналами. Он обеспечивает конвейеризацию сбора данных в реальном времени. Logstash соберет данные вашего журнала, преобразует их в документы JSON и сохранит их в Elasticsearch.

    Kibana — это инструмент визуализации данных с открытым исходным кодом для Elasticsearch. Kibana предоставляет симпатичный веб-интерфейс панели инструментов. Это позволяет вам управлять и визуализировать данные из Elasticsearch. Он не только красивый, но и мощный.

    В этом руководстве мы покажем вам пошаговую установку и настройку Elastic Stack на сервере CentOS 8. Мы установим и настроим Elasticsearch, Logstash и Kibana. А затем настройте бит файлов Beats на клиентских системах Ubuntu и CentOS.

    Предпосылки

    • CentOS 8 (64-разрядная версия) с 4 ГБ ОЗУ — elk-master
    • CentOS 8 (64-разрядная версия) с 1 ГБ ОЗУ – client01
    • Ubuntu 18.04, 64-разрядная версия, 1 ГБ ОЗУ — client02

    Что мы будем делать:

    • Добавление эластичного репозитория на сервер CentOS 8
    • Установка и настройка Elasticsearch
    • Установка и настройка информационной панели Kibana
    • Настройка Nginx в качестве обратного прокси-сервера для Kibana
    • Установка и настройка Logstash
    • Установка и настройка Filebeat
    • Тестирование

    Шаг 1. Добавьте эластичный репозиторий

    Во-первых, собирались добавить ключ и репозиторий Elasticsearc на сервер CentOS 8. С репозиторием elasticsearch, предоставленным elastic.co, мы смогли установить эластичные продукты, включая Elasticsearch, Logstash, Kibana и Beats.

    Добавьте эластичный ключ в систему с помощью следующей команды.

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

    После этого перейдите в каталог /etc/yum.repos.d и создайте новый файл репозитория elasticsearch.repo.

    cd /etc/yum.repos.d/
    vim elasticsearch.repo

    Вставьте репозиторий elasticsearch ниже.

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

    Сохранить и закрыть.

    Теперь проверьте все доступные репозитории в системе, используя приведенную ниже команду dnf.

    dnf repolist

    И вы получите репозиторий elasticsearch, добавленный на сервер CentOS 8.

    В результате вы можете установить продукты Elastic, такие как Elasticsearch, Logstash, Kibana и т. д.

    Шаг 2. Установите и настройте Elasticsearch.

    На этом этапе мы собирались установить и настроить Elasticsearch.

    Установите пакет Elasticsearch с помощью приведенной ниже команды dnf.

    sudo dnf install elasticsearch -y

    После завершения установки перейдите в каталог /etc/elasticsearch и отредактируйте файл конфигурации elasticsearch.yml с помощью редактора vim.

    cd /etc/elasticsearch/
    vim elasticsearch.yml

    Раскомментируйте следующие строки и измените значение для каждой строки, как показано ниже.

    network.host: 127.0.0.1
    http.port: 9200

    Сохранить и закрыть.

    По выбору:

    Вы можете настроить эластичный поиск, отредактировав файл конфигурации JVM jvm.options и настроив размер кучи в зависимости от того, сколько у вас памяти.

    Отредактируйте конфигурацию JVM jvm.options с помощью редактора vim.

    vim jvm.options

    Измените минимальный/максимальный размер кучи с помощью конфигурации Xms и Xmx, как показано ниже.

    -Xms512m
    -Xmx512m

    Сохранить и закрыть.

    Затем перезагрузите конфигурацию диспетчера systemd и добавьте службу elasticsearch во время загрузки.

    sudo systemctl daemon-reload
    sudo systemctl enable elasticsearch

    Затем запустите службу elasticsearch.

    sudo systemctl start elasticsearch

    В результате эластичный поиск запущен и работает за локальным IP-адресом 127.0.0.1 с портом по умолчанию 9200 на сервере CentOS 8.

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

    curl -XGET 'http://127.0.0.1:9200/?pretty'

    И ниже результат, который вы получите.

    Шаг 3 — Установите и настройте панель инструментов Kibana

    После установки elasticsearch собирались установить и настроить Kibana Dashboard на сервере CentOS 8.

    Установите панель управления Kibana с помощью приведенной ниже команды dnf.

    sudo dnf install kibana

    После завершения установки перейдите в каталог /etc/kibana и отредактируйте файл конфигурации kibana.yml.

    cd /etc/kibana/
    vim kibana.yml

    Раскомментируйте и измените конфигурацию некоторых строк, как показано ниже.

    server.port: 5601
    server.host: "127.0.0.1"
    elasticsearch.url: "http://127.0.0.1:9200"

    Сохранить и закрыть.

    Затем добавьте службу kibana в загрузку системы и запустите службу kibana.

    sudo systemctl enable kibana
    sudo systemctl start kibana

    Служба Kibana запущена и работает на сервере CentOS 8, проверьте ее с помощью следующих команд.

    systemctl status kibana
    netstat -plntu

    И вы получите результат, как показано ниже.

    В результате служба Kibana запущена и работает с TCP-портом по умолчанию 5601.

    Шаг 4. Настройте Nginx в качестве обратного прокси для Kibana

    На этом этапе мы собирались установить веб-сервер Nginx и настроить его в качестве обратного прокси-сервера для панели управления Kibana.

    Установите Nginx и httpd-tools с помощью приведенной ниже команды dnf.

    sudo dnf install nginx httpd-tools

    После завершения установки перейдите в каталог /etc/nginx/conf.d и создайте новый файл конфигурации kibana.conf.

    cd /etc/nginx/conf.d/
    vim kibana.conf

    Вставьте следующую конфигурацию.

    server {
        listen 80;
     
        server_name elk.hakase-labs.io;
     
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/.kibana-user;
     
        location / {
            proxy_pass http://127.0.0.1:5601;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }

    Сохранить и закрыть.

    Далее нам нужно создать базовую аутентификацию для защиты доступа Kibana. Измените пользователя hakase на своего и выполните команду htpasspwd, как показано ниже.

    sudo htpasswd -c /etc/nginx/.kibana-user hakase
    TYPE YOUR PASSWORD

    Введите свой пароль и проверьте конфигурацию nginx.

    nginx -t

    Убедитесь, что нет ошибки.

    Теперь добавьте службу nginx в загрузку системы и запустите службу nginx.

    systemctl enable nginx
    systemctl start nginx

    В результате установка и настройка Nginx в качестве обратного прокси для Kibana Dashboard завершена.

    Шаг 5 — Установите и настройте Logstash

    На этом этапе мы собирались установить и настроить logstash грузоотправителя журналов. Мы установим logstash, настроим входные биты, настроим фильтрацию системного журнала с помощью плагина logstash под названием grok, а затем настроим вывод на elasticsearch.

    Установите logstash с помощью приведенной ниже команды dnf.

    sudo dnf install logstash

    После завершения установки перейдите в каталог /etc/logstash и отредактируйте файл конфигурации JVM jvm.options с помощью редактора vim.

    cd /etc/logstash/
    vim jvm.options

    Измените минимальный/максимальный размер кучи с помощью конфигурации Xms и Xmx, как показано ниже.

    -Xms512m
    -Xmx512m

    Сохранить и закрыть.

    Затем перейдите в каталог /etc/logstash/conf.d и создайте файл конфигурации для ввода ударов с именем input-beat.conf.

    cd /etc/logstash/conf.d/
    vim input-beat.conf

    Вставьте следующую конфигурацию.

    input {
      beats {
        port => 5044
      }
    }

    Сохранить и закрыть.

    Теперь создайте файл конфигурации syslog-filter.conf.

    vim syslog-filter.conf

    Вставьте следующую конфигурацию.

    filter {
      if [type] == "syslog" {
        grok {
          match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
          add_field => [ "received_at", "%{@timestamp}" ]
          add_field => [ "received_from", "%{host}" ]
        }
        date {
          match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
        }
      }
    }

    Сохранить и закрыть.

    Затем создайте выходную конфигурацию для elasticsearch output-elasticsearch.conf.

    vim output-elasticsearch.conf

    Вставьте следующую конфигурацию.

    output {
      elasticsearch { hosts => ["127.0.0.1:9200"]
        hosts => "127.0.0.1:9200"
        manage_template => false
        index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
        document_type => "%{[@metadata][type]}"
      }
    }

    Сохранить и закрыть.

    Затем добавьте службу logstash в загрузку системы и запустите службу logstash.

    systemctl enable logstash
    systemctl start logstash

    Служба logstash запущена и работает, проверьте ее с помощью следующих команд.

    systemctl status logstash
    netstat -plntu

    И вы получите результат, как показано ниже.

    В результате средство доставки журналов logstash запущено и работает на сервере CentOS 8 с TCP-портом по умолчанию 5044. И базовая установка Elastic Stack завершена, и мы готовы отправлять и отслеживать наши журналы в Elastic (ELK Stack) сервер.

    Шаг 6 — Установите Filebeat на клиенте

    На этом этапе мы собирались показать вам, как настроить файлообменник в системах Ubuntu и CentOS. Мы установим filebeat и настроим отправку журналов с обоих серверов в Logstash на гибком сервере.

    - Установите Filebeat на CentOS 8

    Добавьте ключ elasticsearch в систему CentOS 8, используя следующую команду.

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

    Теперь перейдите в каталог /etc/yum.repos.d и создайте файл elasticsearch.repo с помощью редактора vim.

    cd /etc/yum.repos.d/
    vim elasticsearch.repo

    Вставьте следующую конфигурацию.

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

    Сохранить и закрыть.

    Теперь установите filebeat с помощью приведенной ниже команды dnf.

    sudo dnf install filebeat

    Дождитесь окончания установки filebeat.

    - Установите Filebeat на Ubuntu 18.04.

    Во-первых, установите пакеты apt-transport-https.

    sudo apt install apt-transport-https

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

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

    Теперь обновите все репозитории и установите filebeat в систему Ubuntu с помощью приведенной ниже команды apt.

    sudo apt update
    sudo apt install filebeat

    Дождитесь окончания установки filebeat.

    - Настроить файлбит

    Конфигурация filebeat находится в каталоге /etc/filebeat. Перейдите в каталог filebeat и отредактируйте файл конфигурации filebeat.yml.

    cd /etc/filebeat/
    vim filebeat.yml

    Теперь отключите выходные данные elasticsearch по умолчанию, как показано ниже.

    #output.elasticsearch:
      # Array of hosts to connect to.
      #  hosts: ["127.0.0.1:9200"]

    Затем включите вывод logstash и укажите IP-адрес хоста logstash.

    output.logstash:
      # The Logstash hosts
      hosts: ["10.5.5.25:5044"]

    Сохранить и закрыть.

    Далее нам нужно включить модули filebeat. Запустите команду filebeat ниже, чтобы получить список модулей filebeat.

    filebeat modules list

    Включите системный модуль с помощью следующей команды.

    filebeat modules enable system

    Системный модуль filebeat был включен с помощью файла конфигурации modules.d/system.yml.

    Отредактируйте конфигурацию системного модуля с помощью редактора vim.

    cd /etc/filebeat/
    vim modules.d/system.yml

    Раскомментируйте путь к файлу системного журнала и файлу авторизации ssh.

    Для системы CentOS:

      # Syslog
      syslog:
        enabled: true
        var.paths: ["/var/log/messages"]

      # Authorization logs
      auth:
        enabled: true
        var.paths: ["/var/log/secure"]

    Для системы Ubuntu:

      # Syslog
      syslog:
        enabled: true
        var.paths: ["/var/log/syslog"]

      # Authorization logs
      auth:
        enabled: true
        var.paths: ["/var/log/auth.log"]

    Сохранить и закрыть.

    Теперь добавьте службу filebeat в загрузку системы и запустите службу.

    systemctl enable filebeat
    systemctl start filebeat

    Сервис filebeat запущен и работает, вы можете проверить это с помощью следующей команды.

    systemctl status filebeat

    И вам будет показан результат, как показано ниже.

    Ниже приведен результат с сервера CentOS 8.

    А ниже — из Ubuntu Server 18.04.

    В результате соединение между filebeat и сервисом logstash на IP-адресе сервера эластичного стека 10.5.5.12 установлено.

    Шаг 7 — Тестирование

    Откройте веб-браузер и введите доменное имя установки Elastic Stack в адресной строке.

    Теперь войдите в панель инструментов Kibana, используя созданную вами учетную запись базовой аутентификации.

    И вы получите панель инструментов Kibana, как показано ниже.

    Теперь подключитесь к данным индекса elasticsearch, которые автоматически создаются после подключения файла к logstash. Нажмите на ссылку Подключиться к индексу Elasticsearch.

    Создайте шаблон индекса filebeat-* и нажмите кнопку «Следующий шаг».

    В качестве имени фильтра выберите фильтр @timestamp и щелкните Создать шаблон индекса.

    Шаблон индекса filebeat-* создан, щелкните меню «Обнаружение» слева.

    И вы получите данные журнала от клиентов filebeat, как показано ниже.

    Журналы для системы CentOS 8.

    Журнал для системы Ubuntu.

    В результате данные журнала, определенные в системном модуле filebeat, были отправлены на сервер эластичного стека.

    И установка и настройка Elastic Stack на CentOS 8 успешно завершена.

    Ссылка

    • https://www.elastic.co/guide/index.html