Скрипт резервного копирования монитора с помощью Prometheus - PullRequest
0 голосов
/ 30 мая 2020

Я хочу отслеживать свой простой bash скрипт для резервного копирования кассандры, поэтому вот мой скрипт

! / Bin / bash

### Check for incomplete backups

if medusa list-backups  | grep Incomplete 
then
echo cassandra_backup_status{status='"success"'} 0  > /var/lib/node_exporter/textfile_collector/cassandra_backup_status.prom
else
echo "all is ok tho"
fi

, как вы можете видеть здесь , я использую сборщик текстовых файлов, который встроен в node_exporter, а затем я хочу выбрать его с помощью alertmanager, например, cassandra_backup_status =! 0; тогда alert_to_telegram

правильный ли этот сценарий?

1 Ответ

0 голосов
/ 01 июня 2020

Помимо средств, чтобы открыть метрику c (текстовый файл или шлюз pu sh). Подход неверен, потому что:

  • метрикс c будет присутствовать только в одном состоянии (а именно, когда он не работает), что означает, что вы не сможете определить, запущен ли / когда скрипт
  • в другом случае или ваш if, вы не удаляете текстовый файл, что означает, что он всегда будет оставаться (с ошибочным состоянием)

Наконец, метка не предназначено для передачи состояния, но только значение должно сообщать об этом. Это также избавит вас от лишней боли при определении последнего состояния; всякий раз при изменении метки создается новая метри c, а старая остается в prometheus, пока не станет устаревшей (5 минут).

В заключение скрипт должен:

  • используйте метрику c со значением 0 для ошибки и 1 для успеха
  • добавьте метрику c, чтобы указать дату последнего запуска скрипта (для обнаружения выравнивания)

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

...