Справочник по Kibana
Назначение
CLI, конфигурация и типовые сценарии Kibana (DevOps, CI/CD, инфраструктура). Учебный курс: [раздел](/encyclopedia/8-infra-security/8.04. DevOps, CI-CD/intro).
Краткое пояснение
Kibana — это веб-интерфейс для визуализации, анализа и управления данными, хранящимися в Elasticsearch. Он предоставляет широкий набор инструментов: от интерактивного поиска по сырым документам до создания сложных дашбордов, настройки алертов, геопространственного анализа и работы с машинным обучением. Весь функционал Kibana управляется через конфигурационный файл kibana.yml и встроенные пользовательские интерфейсы.
Быстрый старт
| Задача | Подсказка |
|---|---|
| Установка | официальная документация Kibana |
| Типовая команда | см. таблицы CLI ниже |
| CI | переменные окружения и секреты в pipeline |
Справочные таблицы
Kibana — это веб-интерфейс для визуализации, анализа и управления данными, хранящимися в Elasticsearch. Он предоставляет широкий набор инструментов: от интерактивного поиска по сырым документам до создания сложных дашбордов, настройки алертов, геопространственного анализа и работы с машинным обучением. Весь функционал Kibana управляется через конфигурационный файл kibana.yml и встроенные пользовательские интерфейсы.
Конфигурация Kibana (kibana.yml)
Основной способ настройки сервера Kibana — редактирование файла kibana.yml. Расположение файла зависит от способа установки:
- Архивные дистрибутивы (
.tar.gz,.zip):$KIBANA_HOME/config/kibana.yml - Пакетные дистрибутивы (Debian, RPM):
/etc/kibana/kibana.yml
Все параметры в файле закомментированы по умолчанию. Для активации достаточно раскомментировать строку и указать нужное значение.
Системные настройки сервера Kibana
| Параметр | По умолчанию | Описание |
|---|---|---|
server.port | 5601 | Порт, на котором Kibana принимает HTTP-запросы. |
server.host | "localhost" | Адрес привязки сервера. Значение "0.0.0.0" разрешает подключения с любых IP. |
server.name | "your-hostname" | Имя сервера Kibana, отображаемое в логах и интерфейсе. |
server.basePath | "" | Базовый путь, если Kibana развернут за reverse proxy (например, /kibana). Не должен оканчиваться на /. |
server.rewriteBasePath | false | Указывает Kibana удалять basePath из входящих запросов. |
server.publicBaseUrl | "" | Публичный URL, по которому пользователи обращаются к Kibana. Обязателен при использовании basePath. |
server.maxPayload | 1048576 (1 МБ) | Максимальный размер тела входящего HTTP-запроса в байтах. |
server.excludeRoutes | — | Массив путей, которые блокируются на уровне сервера (например, ["/api/status"]). |
Настройки SSL/TLS для Kibana
| Параметр | По умолчанию | Описание |
|---|---|---|
server.ssl.enabled | false | Включает HTTPS для соединений между браузером и Kibana. |
server.ssl.certificate | — | Путь к PEM-файлу сертификата сервера. |
server.ssl.key | — | Путь к PEM-файлу приватного ключа сервера. |
Подключение к Elasticsearch
| Параметр | По умолчанию | Описание |
|---|---|---|
elasticsearch.hosts | ["http://localhost:9200"] | Массив URL-адресов нод Elasticsearch. |
elasticsearch.username | "kibana_system" | Имя пользователя для внутренних операций Kibana (например, управление .kibana-индексом). |
elasticsearch.password | "pass" | Пароль для указанного пользователя. |
elasticsearch.serviceAccountToken | — | Токен сервисной учётной записи вместо логина/пароля. |
elasticsearch.requestTimeout | 30000 (30 сек) | Таймаут ожидания ответа от Elasticsearch в миллисекундах. |
elasticsearch.maxSockets | 1024 | Максимальное число одновременных сокетов к Elasticsearch. |
elasticsearch.compression | false | Включает сжатие данных при обмене с Elasticsearch. |
elasticsearch.shardTimeout | 30000 | Таймаут ожидания ответа от шардов Elasticsearch. |
elasticsearch.requestHeadersWhitelist | [ "authorization" ] | Список заголовков, которые Kibana пересылает в Elasticsearch. |
elasticsearch.customHeaders | {} | Статические заголовки, добавляемые ко всем запросам в Elasticsearch. |
Настройки SSL/TLS для подключения к Elasticsearch
| Параметр | По умолчанию | Описание |
|---|---|---|
elasticsearch.ssl.certificate | — | Сертификат клиента Kibana для mutual TLS. |
elasticsearch.ssl.key | — | Приватный ключ клиента. |
elasticsearch.ssl.certificateAuthorities | — | Путь к файлу центра сертификации (CA). |
elasticsearch.ssl.verificationMode | "full" | Режим проверки сертификата: "full", "certificate", "none". |
Логирование
| Параметр | По умолчанию | Описание |
|---|---|---|
logging.root.level | "info" | Уровень логирования: "off", "debug", "info", "warn", "error". |
logging.appenders.default | — | Конфигурация вывода логов в файл (поддержка file, rolling-file, JSON-формат). |
logging.loggers | — | Настройка уровней логирования для конкретных компонентов (например, elasticsearch.query, http.server.response). |
logging.browser.root.level | — | Уровень логирования в консоли браузера. |
Прочие системные параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
path.Данные | "Данные" | Каталог для хранения локальных данных Kibana (не в Elasticsearch). |
pid.file | — | Путь к PID-файлу процесса. |
ops.interval | 5000 (5 сек) | Интервал сбора метрик производительности (минимум 100 мс). |
i18n.locale | "en" | Язык интерфейса: "en", "zh-CN", "ja-JP", "fr-FR", "de-DE". |
Настройки миграций сохранённых объектов
| Параметр | По умолчанию | Описание |
|---|---|---|
migrations.batchSize | 1000 | Количество документов, обрабатываемых за одну итерацию миграции. |
migrations.maxBatchSizeBytes | "100mb" | Максимальный размер пакета при индексации. |
migrations.retryAttempts | 15 | Число попыток повтора при временных ошибках миграции. |
Настройки автозаполнения поиска
| Параметр | По умолчанию | Описание |
|---|---|---|
unifiedSearch.autocomplete.valueSuggestions.timeout | 1000 | Таймаут генерации подсказок в миллисекундах. |
unifiedSearch.autocomplete.valueSuggestions.terminateAfter | 100000 | Максимальное число документов на шард для генерации подсказок. |
Основные UI-элементы и функции Kibana
Discover
Интерфейс для интерактивного просмотра и фильтрации сырых документов из Elasticsearch.
Элементы:
- Панель поиска: полнотекстовый запрос или фильтр по полям.
- Time filter: выбор временного диапазона (обязательно наличие временного поля).
- Field list: список доступных полей с возможностью быстрого фильтра.
- Document view: отображение отдельных документов в формате JSON.
- Histogram: визуализация распределения событий по времени.
Visualize Library
Библиотека всех созданных визуализаций.
Типы визуализаций:
- Vertical / Horizontal Bar
- Line / Area
- Pie / Donut
- Goal / Gauge
- Tag Cloud
- Heatmap
- Lens (гибкий drag-and-drop редактор)
- TSVB (Time Series Visual Builder)
- Vega (на основе спецификации Vega/Vega-Lite)
Dashboards
Композитные страницы, объединяющие несколько визуализаций и виджетов.
Функции:
- Глобальные фильтры (применяются ко всем панелям).
- Time range picker (единый временной диапазон).
- Full-screen mode.
- Export в PDF, PNG, CSV.
- Embedding через iframe.
- Drill-down по данным (переход в Discover или другую визуализацию).
Alerting
Система мониторинга и оповещения на основе правил.
Типы правил:
- Threshold alert (превышение порога).
- Anomaly detection alert.
- Uptime monitor alert.
- Custom query alert.
Действия (Actions):
- Отправка email.
- Webhook.
- Slack, PagerDuty, Jira и другие интеграции.
- Индексация события в Elasticsearch.
Reporting
Генерация отчётов по дашбордам и визуализациям.
Форматы:
- PNG
- CSV (для таблиц и Discover)
Режимы:
- On-demand
- Scheduled (по расписанию)
Maps
Геопространственный анализ данных.
Возможности:
- Отображение geo_point и geo_shape.
- Heatmap, Grid, Clustering.
- Наложение собственных слоёв (GeoJSON, WMS).
- Фильтрация по регионам.
Machine Learning
Анализ временных рядов и обнаружение аномалий без написания кода.
Функции:
- Anomaly detection jobs.
- Данные frame analytics (classification, regression, outlier detection).
- Model management и переобучение.
Dev Tools
Встроенный REST-клиент для взаимодействия с Elasticsearch.
Компоненты:
- Console: отправка запросов в формате Query DSL.
- Search Profiler: анализ производительности запросов.
- Painless Lab: тестирование скриптов на языке Painless.
Management
Центр администрирования Kibana.
Подразделы:
- Stack Management: управление индексами, шаблонами, политиками ILM.
- Spaces: изоляция контента для разных команд.
- Roles & Users: управление RBAC (в платной версии).
- Saved Objects: экспорт/импорт дашбордов, визуализаций, поисков.
- Fleet: управление агентами Elastic Agent и интеграциями.
- Connectors: настройка внешних сервисов для алертов.
Переменные окружения и подстановки
Kibana поддерживает использование переменных окружения в kibana.yml:
elasticsearch.hosts: ["${ELASTICSEARCH_URL:http://localhost:9200}"]
Синтаксис ${VAR_NAME:default_value} позволяет задать значение по умолчанию, если переменная не установлена.
Ошибки
| Ситуация | Что проверить |
|---|---|
| Команда не найдена | PATH, установка пакета, alias |
| Permission denied | пользователь, группа, sudo, ACL |
| Неверная версия | см. «Совместимость», --version |
Совместимость
| Область | Примечание |
|---|---|
| Версии | актуальные LTS/стабильные релизы Kibana |
| Платформы | официальная матрица поддержки вендора |
| Стандарты | RFC, ISO, спецификация API — см. таблицы выше |
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Также DevOps практикует ещё и встраивание тестировщиков в процесс с самого начала, когда тесты пишутся параллельно с кодом, что обеспечивает тестирование не в конце, а на каждом этапе, а также… В контексте CI/CD физические серверы требуют тщательной автоматизации доставки кода и настройки среды. Без этого практики непрерывной доставки становятся нестабильными и подвержены человеческим… Выбор и применение стратегии развертывания — это не однократное решение, а непрерывный процесс адаптации. По мере роста системы, увеличения пользовательской базы и усложнения архитектуры подходы к… Таким образом, Git становится точкой входа в автоматизированный процесс доставки, а не просто хранилищем. Каждый коммит — это потенциальный шаг к новой версии продукта. В инструментах вроде GitHub Actions или Azure Pipelines такие условия реализуются через environment approvals и deployment gates. Это не бюрократия — это явное разделение зон ответственности и… Пайплайн - это последовательность этапов или процессов, через которые проходит задача. Azure Repos — это модуль Azure DevOps Services (облачная версия) или Azure DevOps Server (локальная установка, ранее известная как Team Foundation Server, TFS). Это означает, что доступ к… Классическое решение для анализа логов — ELK-стек — Elasticsearch — распределённая поисковая система, оптимизированная для полнотекстового поиска и агрегаций, Logstash — конвейер обработки событий —… Для системного администратора отказ — это сбой в работе системы, требующий немедленного вмешательства. Инфраструктура рассматривается как детерминированная машина — при одинаковых входных условиях… Автоматизация представляет собой систематическое применение программных и аппаратных средств для выполнения задач без или с минимальным участием человека. Логирование представляет собой процесс записи структурированных или полуструктурированных событий, происходящих в программном обеспечении, операционной системе или инфраструктуре. В отличие от… Terraform — это программа, которая позволяет описать всю вашу инфраструктуру в текстовых файлах, а потом одной командой создать её в облаке или локально.Основы DevOps
CI/CD. Принципы непрерывной интеграции и доставки
Стратегии развертывания
Использование Git и GitFlow в DevOps-процессах
Особенности настройки и эксплуатации CI/CD-конвейеров
Жизненный цикл пайплайна CI/CD
Azure Repos и Team Foundation Server (TFS)
Инструменты автоматизации и оркестрации
Роль DevOps-инженера и отличия от системного администратора
Автоматизация сборки, тестирования и развёртывания
Логирование, мониторинг и наблюдаемость систем
Terraform