Рубрики
Uncategorized

Начните с мониторинга времени безотказной работы с помощью Bantay

Одной из ключевых метрик в DEVOPS является доступность, то есть: измерение того, сколько, в течение данного периода, Y … Помечено наблюдаемость, дежопта, иди, докер.

Одной из ключевых метрик в DEVOPS является доступность, то есть: измерение того, сколько в течение заданного периода ваш сервис или приложение — Доступно или доступны. Часто доступность сочетается с масштабируемостью, или мера того, насколько хорошо ваш сервис выполняет пропорционально растущему числу пользователей. Среди прочего, доступность и масштабируемость составляют большой кусок наблюдательности в теории контроля — практика вывода внутреннего состояния системы через внешние наблюдения. Мы вернемся к наблюдаемости на более позднем посте, но в этом мы сосредоточимся к просто наличии, и как начать с ним.

Наиболее простой способ измерения доступности является измерение времени безотказной работы. Зачастую разработчики инженеров и SRES стремятся добиться пяти-девяток доступности, что означает, что услуга доступна 99,999% от времени.

Давайте определим пару целей:

  1. Мы можем увидеть, будет ли услуга «вверх», выполняя HTTP Get запрос на известную конечную точку
  2. Мы получаем уведомление всякий раз, когда служба «снижается» или «возвращается» (т.е. его состояние изменения доступности)
  3. И, наконец, мы можем войти в систему все это где-то для потомки

Представляем Bantay

Когда-нибудь обратно, мне нужно было достичь в значительной степени те же три цели с парой ограничений: один, что способом, которым я достигаю этих целей, это дешевый (или свободный), а два, у меня есть полный и абсолютный контроль над моими данными и Как я выполняю свой мониторинг. В то время как такие решения, как Pinggom, RollBar, новая реликвия и состояния, существуют, ни один из них не полностью свободен, и ни один из них не предлагает полного контроля над моими данными. Следовательно, я построил свой собственный: Bantay Отказ

Bantay стремится быть легким, расширяемым монитором времени работы с поддержкой предупреждений и уведомлений.

Это очень легко начать. Во-первых, мы пишем файл конфигурации под названием checks.yml :

---
server:
  poll_interval: 10
checks:
  - name: Dev.to
    url: https://dev.to/
    valid_status: 200
    body_match: dev
  - name: Local Server
    url: http://localhost:5555/
    valid_status: 200
reporters:
  - type: log

Давайте пройдем через строку файла YAML по строке:

server:
  poll_interval: 10

Здесь мы определяем Сервер раздел, и мы говорим, чтобы это было Poll_Interval 10 Отказ Когда мы запустим Bantay в режиме сервера позже, это частота, с которой она будет выполнять проверки времени работы.

checks:
  - name: Dev.to
    url: https://dev.to/
    valid_status: 200
    body_match: dev
  - name: Local Server
    url: http://localhost:5555/
    valid_status: 200

Далее мы определяем проверяет Раздел, с парой записей: Dev.to и Локальный сервер Отказ Поля красивые самосвязки, с URL Будучи конечной точкой, которую Bantay выполнит http, чтобы проверить время, valid_status Быть код состояния HTTP, мы ожидаем получить, а body_match Будучи необязательной строкой в телу ответа, мы ожидаем увидеть.

reporters:
  - type: log

В репортеры Раздел, мы поместим один объект с типом журнал . Это будет регистрировать чеки в STDERR/STDOUT.

Прежде чем мы на самом деле начнем Bantay, давайте пойдем вперед и быстро запустите сервер Python HTTP для прослушивания порта 5555 локально (четыре наших локальный сервер проверка):

# on Py2
$ python -m SimpleHTTPServer 5555
# on Py3
$ python3 -m http.server 5555

Для пользователей Mac OS: изменить checks.yml использовать http://docker.for.mac.host.indernal: 5555/ вместо http://localhost: 5555/

Наконец, мы вытягиваем новейшее изображение Bantay Docker и запустите проверку:

$ docker run -v "$(pwd)/checks.yml":/opt/bantay/bin/checks.yml --net=host fipanganiban/bantay:latest bantay check

Мы должны получить что-то похожее на:

Выглядит неплохо!

Если мы убьем бегущего Python Server и запустите Bantay Check еще раз, мы должны получить:

Bantay Server

Одноквартирный чек делает мало, чтобы помочь нам измерить доступность. Большую часть времени мы хотим регулярно выполнять эти проверки и получать уведомления, когда что-то идет вниз после проверка. Для этого мы запускаем Bantay в режиме сервера:

# start the local Python HTTP server again
$ python3 -m http.server 5555
# and start Bantay in server mode
$ docker run -v "$(pwd)/checks.yml":/opt/bantay/bin/checks.yml --net=host --name bantay fipanganiban/bantay:latest bantay server

Мы также можем добавить репортер Slack, чтобы сообщить нам, когда сервис снизится. Добавьте следующее в нижней части вашего checks.yml Файл (замена ваш-слабый канал Здесь и Ваш слабый токен Здесь ):

  - type: slack
    options:
      slack_channel: YOUR-SLACK-CHANNEL-HERE
      slack_token: YOUR-SLACK-TOKEN-HERE

Теперь, когда мы снова убьем сервер Python, Bantay должен обнаружить, что он спустился, и мы получаем удобное уведомление через Slack:

И если мы снова запустим Python Server, Bantay следует обнаружить так:

Последние ноты

Вот и все! Теперь вы должны быть в состоянии установить базовые проверки обновления с Bantay, всего в нескольких линиях YAML. На момент написания BANTAY также поддерживает уведомление по электронной почте (используя mailgun) и отправлять метрики на intuxdb (для истории графиков и хранения). Узнайте больше обо всех его текущих функциях и как построить Bantay в качестве двоичного, в его GitHub Repo: https://github.com/kixpanganiban/bantay.

Оригинал: «https://dev.to/kixpanganiban/get-started-with-uptime-monitoring-using-bantay-2o6g»