# 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 ```