Как стать автором
Обновить

Проект юного DevOps Глава 4: Настройка мониторинга

Уровень сложностиСредний
Время на прочтение43 мин
Количество просмотров13K
Всего голосов 8: ↑5 и ↓3+2
Комментарии10

Комментарии 10

ЗакрепленныеЗакреплённые комментарии

Друзья, хочу ответить на комментарии об отсутствии в данной серии статей инструментов DevOps - Terraform, Ansible, Kubernetes, GitLab CI/CD и прочих инструментов. Полностью согласен с тем, что DevOps без вышеупомянутых инструментов существовать не может.

Данная серия статей является отправной точкой в изучении DevOps и уверен, что именно начинающим инженерам данный материал точно будет полезен. Здесь большой акцент сделан на написании скриптов. Цель данного pet-проекта - практическое ознакомление с Linux перед тем как двигаться дальше в DevOps - именно поэтому название «Проект юного DevOps». В планах написание следующей серии статей уже с углублением в DevOps и его инструменты.

Спасибо за конструктивные комментарии, которые позволяют откорректировать материал и улучшить его качество. Прошу поддержать мое начинание, всем хорошего дня!

Вот не понимаю я, когда настройка скрапперов происходит на всем готовом, и совершенно нет понимания какие именно метрики и как грабятся.

Не работал с прометеем, но я вижу в настройках скраппера только url откуда грабить. А как понять что там грабится? Или на стороне данных урл изначально все отдается в prometheus формате?
Нигде в статье про это не упомянуто, а это критически важная информация чтобы понимать что происходит

На сервера с nginx, openvpn и прочие ставится соответствующий exporter, который в свою очередь и поднимает этот url с метриками, вы можете зайти на этот url через браузер и посмотреть метрики самостоятельно. В некоторых случаях exporter может работать удаленно, получая данные какого-либо сервиса через api и преобразовывая их в формат прометеуса.

Вот основная моя мысль, что большинство людей даже не знает какие именно метрики там собираются и зачем они. Большинству достаточно видеть метрики что nginx не упал, нагрузка CPU снимается уже с системы а не с nginx. Вопрос зачем тогда хранить столько метрик и дергать nginx каждые 5-15 секунд...
Ну ладно еще nginx, но если у вас таких сервисов сотни, и метрики собираются бездумно, а потом никто и никогда ими не пользуется...
Неоднократно вижу лишние гигабайты и терабайты метрик и логов, в которые если кто-то раз в год заглянет, то ищет конкретную строчку, которую одну и можно было собирать..

В некоторых случаях exporter может работать удаленно, получая данные какого-либо сервиса через api и преобразовывая их в формат прометеуса.

Вот это вообще не описано. В настройках экспортера у вас указан исключительно урл. Не указано каким именно образом экспортер знает что по ту сторону и какой "экспортер" следует использовать для этого таргета. По инструкции вы показали что ставятся отдельные бинарники, и нигде не показали где прописывается какой бинарник где привязан.

Вы перепутали меня с автором статьи :) Отвечу на некоторые ваши вопросы:1) какие метрики собирать определяет разработчик экспортера, т.к. экспортер пишется для широкого круга пользователей - метрик стараются собирать максимальное количество, ведь у всех свои потребности 2) вы немного не поняли что такое таргет и экспортер, экспортер предоставляет url, а таргет задается в прометеусе в виде описания и url экспортера, таким образом прометеус понимает откуда брать метрики и что это за метрики 3) насчет удаленных экспортеров, это не стандартный случай, как правило это самописные экспортеры для случаев когда для нужного сервиса нет готовых экспортеров, либо нужно собирать ограниченное количество метрик, либо преобразовать метрики сервиса в понятный прометеусу формат, вобщем тут обширное поле для фантазии почему это может быть нужно.
Покажу вам живой пример - у меня используются почтовики poste.io, у них есть API через которое можно получать данные по почтовым доменам и ящикам(сколько писем отправлено, получено, создавать ящики и прочее), в целях мониторинга на предмет взлома почтового ящика(бывали случаи) я написал экспортер который через это API получает данные от почтовика и преобразует в формат для прометеуса. Вместе с прометеусом работает графана в которой настроено отслеживание количества входящих/исходящих писем по каждому почтовому ящику, настроено оповещение в телеграм если с какого-либо ящика будет отправлено более 100 писем в течении часа, что как правило является индикатором того что ящик взломан.
Экспортер работает в докер контейнере, написан на python, исходники можете глянуть тут https://github.com/dtkbrbq/poste_prometheus_exporter, я не программист так что качество кода наверняка печальное, но это прекрасно работает.

Не, это все я понимаю, я к тому что в статье про это не рассказано, не пояснено, что за экспортеры, где и что в них было настроено, зачем - непонятно. Просто какие-то дефолтные next-next-next. А это тогда очень плохая статья. Вместо нее тогда лучше почитать уже installation guide самого продукта.
Вот к чему я вел.

Безусловно автору плюс за цикл статей и старание, но это больше про админство.
Сам "джун", работаю 3 месяца девопсом, до этого был сеньором-помидором гентушным админом
Хочется видеть k8s, openstack, ELK и прочее :)

Друзья, хочу ответить на комментарии об отсутствии в данной серии статей инструментов DevOps - Terraform, Ansible, Kubernetes, GitLab CI/CD и прочих инструментов. Полностью согласен с тем, что DevOps без вышеупомянутых инструментов существовать не может.

Данная серия статей является отправной точкой в изучении DevOps и уверен, что именно начинающим инженерам данный материал точно будет полезен. Здесь большой акцент сделан на написании скриптов. Цель данного pet-проекта - практическое ознакомление с Linux перед тем как двигаться дальше в DevOps - именно поэтому название «Проект юного DevOps». В планах написание следующей серии статей уже с углублением в DevOps и его инструменты.

Спасибо за конструктивные комментарии, которые позволяют откорректировать материал и улучшить его качество. Прошу поддержать мое начинание, всем хорошего дня!

Подготовка данных для получения алертов в Telegram

...

Уведомления от AlertManager выглядят следующим образом:

Очень не рекомендую так делать. Когда происходит авария, количество алертов становится большим -> много больших сообщений -> бот встает колом. У нас есть был бот который пишет портянку текста (что-то типа 1000- символов), так вот... он не мог отправить два сообщения подряд - тг'шный сервер просто держал соединение пока мы не отваливались по таймауту (дошли до 10 с., дальше не экспериментировали). По итогу, второе сообщение уходило спустя 10 мин (пытались отправить каждую минуту).

С мелкими сообщениями таких проблем не было.

Но все равно, если слать много мелких сообщений можно упереться в лимиты и бан ограничение.

Bots FAQ

https://core.telegram.org/bots/faq

My bot is hitting limits, how do I avoid this?

When sending messages inside a particular chat, avoid sending more than one message per second. We may allow short bursts that go over this limit, but eventually you'll begin receiving 429 errors.

If you're sending bulk notifications to multiple users, the API will not allow more than 30 messages per second or so. Consider spreading out notifications over large intervals of 8—12 hours for best results.

Also note that your bot will not be able to send more than 20 messages per minute to the same group.

How can I message all of my bot's subscribers at once?

Unfortunately, at this moment we don't have methods for sending bulk messages, e.g. notifications. We may add something along these lines in the future.

In order to avoid hitting our limits when sending out mass notifications, consider spreading them over longer intervals, e.g. 8-12 hours. The API will not allow bulk notifications to more than ~30 users per second, if you go over that, you'll start getting 429 errors.

- bot_token: '6941051793:AAFcw9nzSuzs718vgMSa9JR02gNOy3aYSyQ'

Сенсетив данные в публичную статью? Бро, не надо так, я понимаю джун, но как бы ... в нормальных организациях за такое можно получить, иногда даже в бубен. Даже если токен был сменен...сменен же(падме.жпг)?

Спасибо, информацию))

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории