Pull to refresh
1
0
Роман Монахов @rmonakhov

Мониторинг, автоматизация, CMDB

Send message

Тонкости настройки Grafana Loki

Level of difficultyMedium
Reading time12 min
Views37K

Привет! Меня зовут Игорь, я управляющий партнёр и системный архитектор в KTS.

В этой статье, подготовленной по мотивам моего доклада в «Школе мониторинга» Slurm, хочу поделиться своим набором best practice «Как лучше всего настроить Grafana Loki для сбора логов в инфраструктуре». 

На мой взгляд, порог входа в систему достаточно низкий, и в Интернете много туториалов. Поэтому я расскажу о более сложных и не совсем очевидных вещах, с которыми не раз сталкивался при работе с Grafana Loki. 

Читать далее
Total votes 31: ↑31 and ↓0+31
Comments11

Временные ряды и ARIMA: Как предсказывать будущее без хрустального шара

Level of difficultyEasy
Reading time4 min
Views8.6K

Что такое временной ряд, модель ARIMA и как к ней подбирать параметры.

Простым словами, временной ряд — это просто последовательность событий, которая как-то зависит от времени. Мы для начала будем считать, что ряд самый простецкий и нас просто есть скачущие туда-сюда точки, которые распределены по временной шкале.

Читать далее
Total votes 9: ↑8 and ↓1+9
Comments25

4 частых вопроса на собеседовании по части Kubernetes, с которыми может столкнуться каждый. Часть 1

Level of difficultyEasy
Reading time7 min
Views9.8K

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

Начнем с основной архитектуры Kubernetes и роли основных компонентов.

Читать далее
Total votes 15: ↑8 and ↓7+7
Comments8

Управление документацией в растущей компании: DocFX + Gitea + «Этос»

Level of difficultyEasy
Reading time6 min
Views3.5K

По мере увеличения кодовой базы любая компания начинает испытывать потребность в упорядочивании разрозненной документации, иными словами — создании собственной «базы знаний». О чём стоит помнить при выборе конкретных инструментов и как сделать их одинаково удобными для разработчиков и техписателей, попробуем разобраться в сегодняшней статье.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments2

Keycloak ― построение отказоустойчивого кластера

Reading time6 min
Views8K

Разворачивая у нас в Туту Keycloak мы столкнулись с необходимостью создания отказоустойчивого кластера. И если с БД всё более менее понятно, то вот реализовать корректный обмен кэшами между Keycloak оказалось довольно непростой для настройки задачей.

Мы упёрлись в то, что в документации Keycloak описано как создать кластер используя UDP мультикаст. И это работает, если у вас все ноды будут находиться в пределах одного сегмента сети (например ЦОДа). Если с этим сегментом что‑то случится, то мы лишимся Keycloak. Нас это не устраивало.

Необходимо сделать так, чтобы ноды приложения были географически распределены между ЦОД, находясь в разных сегментах сети.

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

Бонусом приложу shell скрипт, написанный для Consul, который предназначен для снятия анонсов путём выключения bird и попытки восстановления приложения.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments10

Мониторинг и трассировка в Go: от Prometheus до Jaeger

Level of difficultyEasy
Reading time15 min
Views12K

Привет, Хабр!

Когда приложения становятся все более сложными и распределенными, и эффективное управление ими требует глубокого понимания происходящего внутри. Мониторинг позволяет нам наблюдать за состоянием приложения, собирать ценные метрики о его работе и предоставлять нам обратную связь в реальном времени. Это помогает в обнаружении и устранении проблем до того, как они станут серьезными. Мониторинг также дает возможность планировать масштабирование и оптимизацию, основываясь на данных, а не на предположениях.

Инструменты мониторинга, такие как Prometheus, позволяют нам собирать метрики, настраивать правила оповещения и создавать графики для визуализации данных.

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

Трассировка, с другой стороны, позволяет нам отслеживать путь выполнения запросов и выявлять проблемы производительности и узкие места в наших сервисах. Jaeger - это инструмент для трассировки с открытым исходным кодом, который обеспечивает сбор и анализ трассировочных данных. Он позволяет нам визуализировать путь выполнения запросов и идентифицировать бутылочные горлышки в наших приложениях.

Читать далее
Total votes 10: ↑9 and ↓1+12
Comments0

Почему методы поиска элементарных частиц не могут считаться объективными?

Level of difficultyEasy
Reading time9 min
Views7.4K

Идея о том, что всё состоит из частиц, воспринимается современной физикой очень даже хорошо. Регулярно «зоопарк частиц» пополняется и вот уже даже элементарные частицы (которые по идее и не подлежат разделению) оказываются состоящими из ещё меньших «кирпичиков». У тех, кто видит в новостях, что постоянно обнаруживаются всё новые и новые частицы появляется справедливый вопрос:

Читать далее
Total votes 25: ↑16 and ↓9+10
Comments35

За границей Hello World: полный гайд по разработке Telegram ботов с помощью Python и Aiogram 3. Часть 1

Level of difficultyEasy
Reading time7 min
Views220K

Нетипичный туториал по разработке Telegram-бота на Python и Aiogram 3. В отличие от большинства гайдов и туториалов про разработку ботов «для новичков», здесь будут рассмотрены все аспекты создания бота, от установки редактора кода до подключения оплаты и развёртывания на сервере. В первой части мы рассмотрим подготовку окружения, файловую структуру бота и напишем первый рабочий код бота.

Читать далее
Total votes 8: ↑7 and ↓1+7
Comments24

Знакомство с Velociraptor

Level of difficultyMedium
Reading time5 min
Views6.3K

Если такие понятия как DFIR, Threat Hunting, Security Monitoring, для вас не пустой звук, то эта статья будет вам интересна. Я расскажу про утилиту Velociraptor, которая часто помогает мне в работе. К моему удивлению, на Habr даже нет упоминания про нее, попробую это исправить. 

Velociraptor (github, docs) - согласно официальной документации это утилита для выполнения Digital Forensics and Incident Response (DFIR) задач. Но из практики можно сказать, что это настоящий швейцарский нож для сбора и анализа информации с конечных устройств (серверов и рабочих станций). 

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments3

Мониторинг мёртв? — Да здравствует мониторинг

Reading time15 min
Views35K


Наша компания с 2008 года занимается преимущественно управлением инфраструктурами и круглосуточной технической поддержкой веб-проектов: у нас более 400 клиентов, это порядка 15% электронной коммерции России. Соответственно, на поддержке очень разнообразная архитектура. Если что-то падает, мы обязаны в течение 15 минут это починить. Но чтобы понять, что авария произошла, нужно мониторить проект и реагировать на инциденты. А как это делать?

Я считаю, что в организации правильной системы мониторинга происходит беда. Если бы беды не было, то мой спич состоял из одного тезиса: «Установите, пожалуйста, Prometheus + Grafana и плагины 1, 2, 3». К сожалению, теперь так не работает. И главная проблема заключается в том, что все продолжают верить во что-то такое, что существовало в 2008 году, с точки зрения программных компонентов.

В отношении организации системы мониторинга я рискну сказать, что… проектов с грамотным мониторингом не существует. И ситуация настолько плохая, если что-то упадёт, есть риск, что это останется незамеченным — все ведь уверены, что «всё мониторится».
Возможно, всё мониторится. Но как?

Все мы сталкивались с историей наподобие следующей: работает некий девопс, некий админ, к ним приходит команда разработчиков и говорит — «мы зарелизились, теперь замониторь». Что замониторь? Как это работает?

Ок. Мониторим по старинке. А оно уже изменяется, и выясняется, что ты мониторил сервис А, который стал сервисом B, который взаимодействует с сервисом C. Но команда разработчиков тебе говорит: «Поставь софт, он же должен все замониторить!»

Так что изменилось? — Всё изменилось!
Читать дальше →
Total votes 62: ↑56 and ↓6+50
Comments24

Apache Airflow vs Prefect

Reading time7 min
Views4.7K

В мире современного дата-инжиниринга и MLOps необходимость оркестрации распределенных конвейеров данных с применением платформ управления рабочими процессами (workflow management platforms) становятся все очевиднее. Инструменты оркестрации рабочих процессов могут взять на себя тяготы обработки и распределения данных между системами и задачами, что по-прежнему является довольно сложным процессом. 

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

Это стало причиной развития платформ управления рабочими процессами и оркестрации в последние годы. 

Читать далее
Total votes 3: ↑2 and ↓1+2
Comments0

Как ускорить базу данных при помощи шардирования

Reading time14 min
Views26K
image

Шардирование было одним из первых механизмов, позволяющих распределять базы данных для повышения их производительности. Последние инновации превратили шардирование в один из лучших механизмов в своем роде.

Сегодня базам данных уделяется особое внимание, так как через них компания управляет своим самым ценным архивом: информацией. Всего 30 лет назад большинство данных хранилось на бумаге, магнитной ленте или каких-либо дисках. Поскольку мы производили и потребляли гораздо меньше данных на душу населения, даже на таких носителях нам удавалось эффективно хранить их, управлять ими и обращаться к ним.

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

Как справиться с таким невероятным объемом трафика, поступающим в кластер базы данных?
Можно попробовать шардирование. Возможно, вы никогда и не слышали о таком подходе, либо по-быстрому отбраковывали его как старомодное решение, не отвечающее современным вызовам. Сам феномен «шардирования баз данных» едва ли сулит полный набор примочек, какими могли бы похвастаться другие решения, но этот подход определенно эффективен и практичен.
Читать дальше →
Total votes 15: ↑14 and ↓1+16
Comments4

С чего начинается Elasticsearch

Reading time14 min
Views261K

Elasticsearch, вероятно, самая популярная поисковая система на данный момент с развитым сообществом, поддержкой и горой информации в сети. Однако эта информация поступает непоследовательно и дробно.


Самое первое и главное заблуждение — "нужен поиск, так бери эластик!". Но в действительности, если вам нужен шустрый поиск для небольшого или даже вполне себе крупного проекта, вам стоит разобраться в теме поподробней и вы откажетесь от использования именно этой системы.

Читать дальше →
Total votes 39: ↑38 and ↓1+49
Comments45

Consul начало приключения

Reading time6 min
Views12K

Когда мы говорим о service mesh, в первую очередь следует упомянуть о Consul, разработанную HashiCorp

Consul — это один из инструментов с открытым исходным кодом, который широко используется для обнаружения сервисов для нескольких эфемерных или неэфемерных ресурсов.

Но следует упомянуть о многих системах service mesh -  Istio, Linkerd, Traefik Mesh, Open Service Mesh (OSM), Nginx Service Mesh (NSM), Kuma.

Consul выполняет не только роль service mesh (далее SM), но также у него есть богатый функционал, который отличает его от других сервисов.

·         health checking
·         load balancing
·         Key-value store
·         Web-UI

Сам по себе Consul представляет собой бинарник, который запускается с различными параметрами. Это позволяет оперативно развернуть consul.

Например, рассмотрим часть безопасности консула, которая не включена в настройку или конфигурацию базового консула. Итак, для безопасности мы упомянем ACL.

Consul ACL (Список контроля доступа) — это опция, которая была добавлена ​​в consul версии 1.4.0 в соответствии с официальной документацией. Этот параметр очень важен с точки зрения безопасности, поскольку он обеспечивает несколько уровней безопасности, когда мы настраиваем или получаем доступ к консулу для нескольких упомянутых нами параметров. Давайте обсудим, как работает consul ACL. Он делит свою работу на две части:

1.    Consul token
2.    Policy

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments0

Настраиваем отказоустойчивый Keycloak с Infinispan в Kubernetes

Reading time11 min
Views23K

В этой статье мы поделимся опытом развертывания в кластере Kubernetes устойчивой и масштабируемой инсталляции популярного решения для обеспечения «единого входа» (SSO) — Keycloak в связке с Infinispan (для кэширования пользовательских метаданных).

Читать далее
Total votes 27: ↑27 and ↓0+27
Comments8

Алгоритм работы HA кластера PostgreSQL с помощью Patroni

Reading time3 min
Views12K

Привет всем Хабр-читателям. Про развертывание и настройку HA кластера PostgreSQL с помощью Patroni написано много полезных статей, однако я не нашел описания алгоритма его работы. В этой статье я хочу поделиться своим исследованием по данному вопросу.

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments3

Dashboard as code, или как мы создание дашбордов автоматизировали

Reading time4 min
Views9.1K

Привет! Мы в QIWI довольно давно применяем микросервисную архитектуру, но ее понимание не всегда было одинаковым: оно менялось со временем и эволюционировало. Наши первые микросервисы были достаточно большие по объему, но сейчас мы создаем сервисы гораздо меньшего размера с более узкой и ограниченной зоной ответственности. 

Часто такой сервис отвечает за конкретную небольшую фичу в нашем продукте (или вообще за часть фичи), или же за часть какого-то большого процесса. Нам такой подход нравится, поскольку микросервисы имеют независимые жизненные и релизные циклы, мы можем релизить фичи независимо друг от друга. Кроме того, различные команды могут работать в рамках одного продукта параллельно над разными фичами, не мешая друг другу и не сталкиваясь лбами. Это даёт нам возможность независимо масштабировать микросервисы и гораздо быстрее проверять гипотезы. В общем, плюсов много. 

Сейчас будет «Но», правда?

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

Читать далее
Total votes 23: ↑22 and ↓1+25
Comments6

Заказные блоки в микросхемах (Silicon IP): как это работает

Reading time22 min
Views43K
В каждой статье на Хабре, посвященной отечественным микропроцессорам, так или иначе поднимается вопрос лицензионных IP-блоков и того, насколько их наличие и отсутствие уменьшает ценность, отечественность или безопасность разработки. При этом очень многие комментаторы не слишком хорошо понимают предмет обсуждения, поэтому давайте попробуем разобраться, как же именно работает лицензирование в микроэлектронной индустрии, чем хороши и чем плохи лицензированные блоки, и в чем состоит процесс разработки микросхемы, если большая часть блоков в ней куплена.


Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments149

Пишем GeoIP exporter для Prometheus с визуализаций в Grafana за 15 минут

Reading time5 min
Views12K


Привет всем!


Я хочу поделиться с вами тем, как легко можно написать свой экспортер для Prometheus на Golang и покажу как это можно сделать на примере небольшой программы, которая следит за тем, откуда географически установлены текущие TCP соединения.

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments2

Опыт миграции кластера PostgreSQL на базе Patroni

Reading time17 min
Views23K

Недавно мне посчастливилось заниматься переносом кластера PostgreSQL под управлением Patroni на новое железо. Задача казалась простой — я и не думал, что могут возникнуть проблемы. Но в процессе реализации встретились некоторые сложности, которые натолкнули на мысль поделиться полученным опытом. В этой работе описываются практические шаги и нюансы, которые встретились во время переноса кластера на новую платформу. Использовались следующие версии ПО: PostgreSQL 11.13, Patroni 2.1.1, etcd 3.2.17 (API version 2). Итак, поехали!

Читать далее
Total votes 48: ↑48 and ↓0+48
Comments15
1

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity