zabbix-helpers/es-monitoring
2024-12-10 12:45:54 +03:00
..
zabbix_templates Restore repo 2024-11-06 10:16:00 +03:00
.gitignore Restore repo 2024-11-06 10:16:00 +03:00
cronjobs Restore repo 2024-11-06 10:16:00 +03:00
docker-compose.yml Restore repo 2024-11-06 10:16:00 +03:00
Dockerfile Restore repo 2024-11-06 10:16:00 +03:00
es-monitoring.go Добавлено определение поля timestamp. Исключение индексов. 2024-12-10 12:43:08 +03:00
go.mod Restore repo 2024-11-06 10:16:00 +03:00
go.sum Restore repo 2024-11-06 10:16:00 +03:00
README.md Обновить es-monitoring/README.md 2024-12-10 12:45:54 +03:00

Es Monitoring

Мониторинг индексов Elasticsearch в Zabbix.

Программа получает список имён индексов без цифровой части, т.е. так называемые pattern. К примеру если индекс "filebeat-01.01.2020" то использоваться будет имя (тут и далее под индексом подразумевается паттерн) "filebeat". Данные имена добавляются в zabbix через автообнаружение (предварительно требуется к узлу подключить приложенный шаблон). На основе списка имен индексов (данные будут взяты из последнего индекса по времени попадающего под шаблон имени) можно получать количество записей за временной промежуток (задаётся с командой строки в часах, по умолчанию равен 6 часам).

Программу можно запускать как в консоли так и в docker-контейнере.

Режимы работы

  • operation - задаёт тип выполняемой операции
    • es-cluster-info - вывод информации о кластере (версии)
    • es-get-indices - вывод списка индексов
    • es-indices-discover - вывод списка индексов ввиде JSON для отправки в zabbix
    • es-records-count - подсчёт количества данных по всем индексам
    • es-index-records-count - подсчет записей по одному индексу (используется совместно с -index-name)
  • index-name - имя индекса (паттерн)
  • timerange - временной промежуток в часах
  • zabbix-send - при указании данной опции результат коамнды будет отправлен в заббикс
  • help - вывод краткой помощи

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

Для работы используются переменные окружения:

  • ELASTICSEARCH_URL="https://USER:PASSWORD@elastic:9200"
  • ZABBIX_SERVER=https://zabbix2
  • ZABBIX_HOST=elastic
  • ZABBIX_USERNAME=zabbix_user
  • ZABBIX_PASSWORD=somepass

Пример команды

Подсчет количества записей по всем индексам и отправка в заббикс:

es-monitoring -operation es-records-count -timerange 1 -zabbix-send

Вывод списка индексов для zabbix

es-monitoring -operation es-indices-discover -zabbix-send

Подсчет количества записей для индексов filebeat* за 12 часов (данные будут взяты из последнего индекса по времени)

es-monitoring -operation es-index-records-count -index-name filebeat -timerange 12

Краткая помощь по программе

Usage of ./es-monitor:
  -exclude-index string
    	Elasticsearch index name comma-separated list for exluded, (like "filebeat,mailindex,e.t.c") (default ".")
  -indexname string
        Elasticsearch index name pattern, (like "filebeat")
  -operation string
        Opertation type, must be:
                es-cluster-info - ES Cluster information (version e.t.c)
                es-get-indices - geting all index
                es-indices-discover - getting es index pattern list
                es-records-count - getting the number of records for a time range for all index pattern
                es-index-records-count - getting records count for one index (used with -indexname option (default "es-cluster-info")
  -timerange int
        Elasticsearch time range for records count into hours (default 6)
  -zabbix-send
        Send metrics or discovery data into zabbix