OpenSearch — Логирование и поиск

OpenSearch — инструмент для поиска и анализа данных в документах с открытым исходным кодом. Разработанный на основе Elasticsearch, OpenSearch предоставляет эффективное хранилище и обработку данных, а также масштабируемую архитектуру.

OpenSearch Dashboards — инструмент для визуализации данных, с помощью которого пользователи могут создавать информативные и интерактивные панели на основе данных из OpenSearch.

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

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

OpenSearch Dashboards поддерживает совместную работу, что позволяет нескольким пользователям одновременно создавать и редактировать дашборды.

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

В составе настоящего релиза OpenSearch поставляется без преднастроенных панелей. Предполагается, что администраторы кастомизируют панели под бизнес-задачи.

Создание пользовательских панелей с использованием различных виджетов и визуализаций

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

  1. Выберите источник данных (происходит определение источника данных из OpenSearch для визуализации).

  2. Добавьте визуализации (выбор и настройка виджетов и визуализаций для отображения данных).

  3. Сконфигурируйте фильтры (применение фильтров для уточнения отображаемых данных).

  4. Определите компоновки (размещение визуализаций на дашборде с учетом их взаимодействия).

  5. Сохраните и опубликуйте (сохранение созданного дашборда и возможность его публикации для общего доступа).

Создание пользовательской панели. Выбор визуализации

Создание пользовательской панели. Выбор визуализации

Создание пользовательской панели. Применение фильтров

Создание пользовательской панели. Применение фильтров

Создание пользовательской панели. Размещение визуализации

Создание пользовательской панели. Размещение визуализации

Подробнее о работе с OpenSearch Dashboards см. в документации OpenSearch Dashboards.

Добавление нового output для сборщика логов

Если требуется сбор логов в дополнительный output, выполните следующие действия:

  1. В репозитории региона в директории config/fluentd/output (создать при отсутствии) создайте (или отредактируйте при наличии) файл 03-opensearch.conf.

    Содержание 03-opensearch.conf:

    <match **>
    @type copy
    <store>
           @type opensearch
           hosts http://{{ opensearch_address }}:{{ opensearch_port }},https://адрес_нового_сборщика:порт_нового_сборщика
    {% if fluentd_opensearch_path != '' %}
           path {{ fluentd_opensearch_path }}
    {% endif %}
    {% if fluentd_opensearch_scheme == 'https' %}
           ssl_version {{ fluentd_opensearch_ssl_version }}
           ssl_verify {{ fluentd_opensearch_ssl_verify }}
    {% if fluentd_opensearch_cacert | length > 0 %}
           ca_file {{ fluentd_opensearch_cacert }}
    {% endif %}
    {% endif %}
    {% if fluentd_opensearch_user != '' and fluentd_opensearch_password != ''%}
           user {{ fluentd_opensearch_user }}
           password {{ fluentd_opensearch_password }}
    {% endif %}
           logstash_format true
           logstash_prefix {{ opensearch_log_index_prefix }}
           reconnect_on_error true
           reload_connections false
           reload_on_failure true
           request_timeout {{ fluentd_opensearch_request_timeout }}
           suppress_type_name true
           ssl_verify false
           <buffer>
           @type file
           path /var/lib/fluentd/data/opensearch.buffer/openstack.*
           flush_interval 15s
           chunk_limit_size 10M
           </buffer>
    </store>
    </match>
    
  2. Запустите пайплайна с тегом common и лимитом на мастер-узлы: -t common --limit control.

Создание шаблона индексов в OpenSearch

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

  1. Перейдите на страницу https://opensearch.<имя домена>. Данная страница при первом входе сразу направит вас на страницу создания шаблонов.

  2. Нажмите кнопку Create index patern.

  3. В появившемся окне в поле index pattern name укажите flog\* и нажмите Next Step.

  4. В поле Time field выберите из выпадающего списка @timestamp и нажмите Create index pattern.

Настройка глубины хранения индексов в OpenSearch

Данная настройка выполняется в самом OpenSearch. Для этого перейдите на сайт https://opensearch.<имя домена>, выберите Index Management > State management policies и добавьте или измените политику:

{
    "policy": {
        "policy_id": "Retention",
        "description": "hot warm delete workflow",
        "schema_version": 16,
        "default_state": "hot",
        "states": [
            {
                "name": "hot",
                "actions": [
                    {
                        "retry": {
                            "count": 3,
                            "backoff": "exponential",
                            "delay": "1m"
                        },
                        "replica_count": {
                            "number_of_replicas": 1
                        }
                    }
                ],
                "transitions": [
                    {
                        "state_name": "warm",
                        "conditions": {
                            "min_index_age": "30d"
                        }
                    }
                ]
            },
            {
                "name": "warm",
                "actions": [
                    {
                        "retry": {
                            "count": 3,
                            "backoff": "exponential",
                            "delay": "1m"
                        },
                        "replica_count": {
                            "number_of_replicas": 0
                        }
                    }
                ],
                "transitions": [
                    {
                        "state_name": "delete",
                        "conditions": {
                            "min_index_age": "60d"
                        }
                    }
                ]
            },
            {
                "name": "delete",
                "actions": [
                    {
                        "retry": {
                            "count": 3,
                            "backoff": "exponential",
                            "delay": "1m"
                        },
                        "delete": {}
                    }
                ],
                "transitions": []
            }
        ],
        "ism_template": [
            {
                "index_patterns": [
                    "flog-*"
                ],
                "priority": 100
            }
        ]
    }
}

В данной политике:

  • Горячие/Hot–индексы хранятся до достижения общего возраста 30 дней с репликой 1. При достижении 30+ дней индексы переходят в warm состояние/state.

  • Прогретые/Warm–индексы хранятся до достижения общего возраста 60 дней с репликой 0. При достижении 60+ дней индексы переходят в delete, т.е. удаляются.