elk

Роль Ansible для ELK

Устанавливает стек ELK (Elasticsearch, Logstash и Kibana) для агрегирования и мониторинга логов. Предназначен для интеграции с Riemann для функции оповещения.

Требования

Переменные роли

elk_kibana_user: "kibana"
elk_kibana_logfile: "/var/log/kibana.log"

# Возможность отключить функцию создания снимков. Это плохо протестировано,
# поэтому по умолчанию значение false. Если установлено true при первом
# запуске, возможно, следует добавить `meta: flush_handlers` перед
# выполнением, чтобы убедиться, что переменная `path.repo:` распознана
# работающей службой elasticsearch..
elk_elasticsearch_snapshot: false

elk_elasticsearch_snapshot_directory: /var/lib/elasticsearch/backups
elk_elasticsearch_snapshot_repository: es_backup
elk_elasticsearch_snapshot_initialization:
  type: fs
  settings:
    location: "{{ elk_elasticsearch_snapshot_directory }}"
    compress: yes
  _hack: null

# Было бы хорошо использовать iso8601 вместо эпохи, но API ElasticSearch
# выдает ошибку invalid_snapshot_name с форматом iso8601.
elk_elasticsearch_snapshot_name: "snapshot-{{ ansible_date_time.epoch }}"

# Ограничения для установки в /etc/security/limits.conf. Убедитесь, что вы
# скопировали весь список, если переопределяете какие-либо отдельные элементы.
elk_elasticsearch_pam_limits:
    - domain: elasticsearch
      limit_item: memlock
      limit_type: hard
      value: unlimited

    - domain: elasticsearch
      limit_item: memlock
      limit_type: soft
      value: unlimited

    - domain: elasticsearch
      limit_item: nofile
      limit_type: soft
      value: 65535

    - domain: elasticsearch
      limit_item: nofile
      limit_type: hard
      value: 65535

# Плагин Riemann для оповещения, фильтр de-dot для совместимости с ElasticSearch v2.
# Смотрите: https://www.elastic.co/blog/introducing-the-de_dot-filter
elk_logstash_plugins:
  - logstash-output-riemann
  - logstash-filter-de_dot

# Интерфейс, используемый для ограничений брандмауэра и запросов по IPv4
elk_network_interface: eth0

elk_cluster_name: elk-logging

# SSL отключен по умолчанию. Установите эти переменные на полные пути к SSL
# сертификатам, которые вы хотите использовать, и Nginx будет принуждать HTTPS
# соединения. Вы должны разместить SSL сертификаты там в отдельной игре.
elk_nginx_ssl_certificate: ""
elk_nginx_ssl_certificate_key: ""
elk_nginx_server_name: localhost

# Не безопасно для использования в продакшене! Переопределите для защиты логинов.
elk_kibana_username: kibana
elk_kibana_password: kibana

# Переопределите, чтобы изменить начальную страницу, например, на пользовательскую
# панель: "dashboard/Ваше-Имя-Панели". Вам необходимо заменить пробелы в
# названиях панелей на дефисы, так как Kibana этого ожидает.
elk_kibana_default_app: discover

# Включить автоматическую конфигурацию белого списка IP для "лог-клиентов".
# Использует ufw. Отключите, если вы используете другую роль для конфигурации брандмауэра.
elk_configure_firewall: true

# Позволяет следующим играм использовать пользовательскую конфигурацию веб-сервера
# Установите это значение в false, чтобы пропустить развертывание nginx этой роли
elk_configure_nginx: true

# Позволяет следующим играм переопределять списки паттернов и фильтров
elk_logstash_patterns:
  - logstash-patterns/*
elk_logstash_filters:
  - logstash-configs/*

# Объявите список файлов баз данных GeoIP для копирования. Отключено по умолчанию.
elk_logstash_geoipdbs: []

Использование

Используйте роль в плейбуке следующим образом:

- hosts: logserver
  roles:
    - role: elk
      elk_kibana_username: admin
      elk_kibana_password: WowWhatAStrongPassword4

Добавление визуализаций

Роль еще не создает визуализации Kibana автоматически. Однако вы можете импортировать сохраненные визуализации, которые поставляются с ролью, в files/kibana-dashboards.json. Перейдите в Настройки -> Объекты -> Импорт в интерфейсе Kibana и выберите JSON файл.

Запуск тестов

Эта роль использует Molecule и ServerSpec для тестирования. Чтобы использовать:

pip install molecule
gem install serverspec
molecule test

Вы также можете запускать выборочные команды:

molecule idempotence
molecule verify

Смотрите документацию Molecule для получения дополнительной информации.

Дополнительное чтение

Настройка

Разработка пользовательских фильтров

Смотрите каталог examples/writing-filters в этом репозитории для преднастроенной среды разработки. Скопируйте этот каталог на сервер с установленным logstash или используйте Vagrant тестовую ВМ.

Обслуживание

Лицензия

MIT

О проекте

Stands up ELK stack for log aggregation.

Установить
ansible-galaxy install freedomofpress/ansible-role-elk
Лицензия
Unknown
Загрузки
140
Владелец
Defending and supporting cutting-edge transparency journalism in the face of adversity.