Установка и настройка Elasticsearch Stack (ELK Stack)

Добро пожаловать в подробное руководство по установке и настройке Elasticsearch Stack (ELK Stack) в НАЙС ОС. В этом документе мы рассмотрим процесс установки, настройки и управления Elasticsearch, Logstash и Kibana, включая настройку сбора и анализа логов, создание и управление дашбордами, а также оптимизацию производительности и масштабирование. Elasticsearch Stack (ELK Stack) — это мощный инструмент для сбора, анализа и визуализации логов. Понимание его установки и конфигурации является важным навыком для системных администраторов и DevOps-инженеров.

Установка и конфигурация Elasticsearch, Logstash и Kibana

Установка Elasticsearch

Для установки Elasticsearch в НАЙС ОС выполните следующие шаги:

  1. Добавьте репозиторий Elasticsearch:
  2. sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    sudo tee /etc/yum.repos.d/elasticsearch.repo <yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    EOF
    
  3. Установите Elasticsearch:
  4. sudo tdnf install -y elasticsearch
  5. Запустите и включите Elasticsearch при старте системы:
  6. sudo systemctl start elasticsearch
    sudo systemctl enable elasticsearch

Установка Logstash

Для установки Logstash выполните следующие шаги:

  1. Добавьте репозиторий Logstash:
  2. sudo tee /etc/yum.repos.d/logstash.repo <yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    EOF
    
  3. Установите Logstash:
  4. sudo tdnf install -y logstash
  5. Запустите и включите Logstash при старте системы:
  6. sudo systemctl start logstash
    sudo systemctl enable logstash

Установка Kibana

Для установки Kibana выполните следующие шаги:

  1. Добавьте репозиторий Kibana:
  2. sudo tee /etc/yum.repos.d/kibana.repo <yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    EOF
    
  3. Установите Kibana:
  4. sudo tdnf install -y kibana
  5. Запустите и включите Kibana при старте системы:
  6. sudo systemctl start kibana
    sudo systemctl enable kibana

Настройка сбора и анализа логов

Настройка Filebeat для сбора логов

Filebeat используется для отправки логов в Logstash или Elasticsearch. Установите Filebeat:

  1. Добавьте репозиторий Filebeat:
  2. sudo tee /etc/yum.repos.d/filebeat.repo <yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    EOF
    
  3. Установите Filebeat:
  4. sudo tdnf install -y filebeat
  5. Настройте Filebeat для отправки логов в Logstash. Отредактируйте файл /etc/filebeat/filebeat.yml:
  6. 
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /var/log/*.log
    
    output.logstash:
      hosts: ["localhost:5044"]
        
  7. Запустите и включите Filebeat при старте системы:
  8. sudo systemctl start filebeat
    sudo systemctl enable filebeat

Настройка Logstash для обработки логов

Создайте конфигурационный файл Logstash /etc/logstash/conf.d/logstash.conf для обработки логов:


input {
  beats {
    port => 5044
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    remove_field => [ "timestamp" ]
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "logstash-%{+YYYY.MM.dd}"
  }
  stdout { codec => rubydebug }
}
  

Перезапустите Logstash для применения изменений:

sudo systemctl restart logstash

Настройка Kibana для визуализации данных

Откройте браузер и перейдите по адресу http://your_domain_or_IP:5601, чтобы открыть интерфейс Kibana. Следуйте инструкциям на экране для настройки Kibana и подключения к Elasticsearch.

Создание и управление дашбордами

Создание индексов в Kibana

Для начала создайте индексный шаблон в Kibana:

  1. Перейдите в раздел "Management" в Kibana.
  2. Выберите "Index Patterns".
  3. Нажмите "Create index pattern" и введите "logstash-*".
  4. Выберите временное поле (например, @timestamp) и нажмите "Create index pattern".

Создание визуализаций

Для создания визуализаций выполните следующие шаги:

  1. Перейдите в раздел "Visualize" в Kibana.
  2. Нажмите "Create new visualization" и выберите тип визуализации (например, гистограмма или график).
  3. Выберите индексный шаблон "logstash-*".
  4. Настройте параметры визуализации и нажмите "Save" для сохранения.

Создание дашбордов

Для создания дашбордов выполните следующие шаги:

  1. Перейдите в раздел "Dashboard" в Kibana.
  2. Нажмите "Create new dashboard".
  3. Добавьте ранее созданные визуализации на дашборд.
  4. Настройте расположение и размер визуализаций и нажмите "Save" для сохранения дашборда.

Оптимизация производительности и масштабирование

Оптимизация производительности Elasticsearch

Для оптимизации производительности Elasticsearch рассмотрим несколько основных рекомендаций:

  • Настройка правильного количества шардов и реплик для индексов.
  • Настройка параметров heap size для JVM (например, ES_HEAP_SIZE).
  • Использование быстрых дисков SSD для хранения данных.
  • Настройка параметров refresh_interval и translog.

Пример оптимизированной конфигурации


# В файле /etc/elasticsearch/elasticsearch.yml
index.number_of_shards: 3
index.number_of_replicas: 1
index.refresh_interval: 30s
path.data: /path/to/data
path.logs: /path/to/logs

# В файле /etc/elasticsearch/jvm.options
-Xms2g
-Xmx2g
  

Масштабирование Elasticsearch

Для масштабирования Elasticsearch добавьте дополнительные узлы в кластер. Рассмотрим процесс добавления нового узла.

  1. Установите Elasticsearch на новый узел.
  2. Отредактируйте файл /etc/elasticsearch/elasticsearch.yml на новом узле и добавьте параметры:
  3. 
    cluster.name: my-cluster
    node.name: node-2
    network.host: _site_
    discovery.seed_hosts: ["node-1_IP", "node-2_IP"]
    cluster.initial_master_nodes: ["node-1", "node-2"]
        
  4. Запустите и включите Elasticsearch на новом узле:
  5. sudo systemctl start elasticsearch
    sudo systemctl enable elasticsearch

Мониторинг кластера Elasticsearch

Для мониторинга состояния кластера Elasticsearch используйте X-Pack Monitoring или сторонние инструменты, такие как Prometheus и Grafana.

Установка X-Pack Monitoring

Для установки X-Pack Monitoring выполните следующие шаги:

  1. Установите X-Pack на все узлы Elasticsearch:
  2. sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack
  3. Перезапустите Elasticsearch для применения изменений:
  4. sudo systemctl restart elasticsearch
  5. Настройте Kibana для использования X-Pack Monitoring. Отредактируйте файл /etc/kibana/kibana.yml и добавьте параметры:
  6. 
    xpack.monitoring.enabled: true
    xpack.monitoring.kibana.collection.enabled: true
        
  7. Перезапустите Kibana для применения изменений:
  8. sudo systemctl restart kibana

Заключение

Мы рассмотрели основные аспекты установки, настройки и управления Elasticsearch Stack (ELK Stack) в НАЙС ОС. ELK Stack предоставляет мощные возможности для сбора, анализа и визуализации логов, а понимание его настройки и оптимизации является важным навыком для системных администраторов и DevOps-инженеров. Продолжайте изучать и применять эти знания на практике для создания стабильных и эффективных систем мониторинга и анализа логов.