Dev-Ops.su
305 subscribers
79 photos
4 files
206 links
Полезные утилиты, статьи, доклады и обзоры.
Канал для DevOps, SRE, Архитекторов и прочих *Ops

https://dev-ops.su

#DevOps #SRE #DevSecOps #SecOps #ChatOps #GitOps #DocsOps #MLOps #FinOps #NoOps #CloudOps #CIOps #CDOps #AnyOps #BuzzWordOps

@woozymasta
Download Telegram
Kafka Lag Exporter - экспортер метрик лага Kafka consumer group.
Akka подобное приложение написанное на Scala. Метрики доступны для Prometheus, InfluxDB и Graphite. Имеется интеграцию с Strimzi оператором.

Одной из наиболее уникальных функций Kafka Lag Exporter является его способность предугадывать продолжительность времени, в течение которого consumer group отстает от последнего созданного значения для определенного partition.
Lag offset полезен, чтобы понять, что consumer group лагает, но он не дает представления о фактической задержке приложения-потребителя.

#kafka #strimzi #exporter #prometheus #influx #graphite

https://github.com/lightbend/kafka-lag-exporter
Cruise-control - это инструмент полностью автоматизирующий динамическую перебалансировку рабочей нагрузки и самовосстановление кластера Kafka, обнаружает аномалии, следит за утилизацией ресурсов брокерами, топиками и партишенами.

Поддерживает авторизацию HTTP Basic и JWT, аутентификацию. Также предоставляет параметры администрирования, такие как: добавление и удаление брокеров, ребалансировка, исправление реплик, перевыборы лидера, исправление аномалий и управление фактором репликации. А управлять всем этим можно через REST API или cccli утилиту командной строки.

#kafka #cccli

https://github.com/linkedin/cruise-control
Как LinkedIn настраивает Kafka для 7 триллионов сообщений в день
А вот подборка event listeners для Keycloak которые позволяют отправлять события в шины Kafka или RabbitMQ, что может быть полезно для аудита действий пользователей (UAM, User activity monitoring)

#keycloak #mqtt #kafka #rabbitmq #UAM #audit

Keycloak events listener - MQTT
Keycloak events listener - RabbitMQ
Keycloak events listener - Kafka
Keycloak Benchmark - инструменты для тестирования производительности Keycloak. Состоит из двух основных инструментов:

Dataset - предназначен для предварительного заполнения БД Keycloak большим количеством объектов. Создает клиентов, пользователей и области.
Benchmark - предназначен для запуска самого теста производительности и создания нагрузки (использует Gatling в качестве среды выполнения).

#keycloak #perfomance #benchmark

https://github.com/keycloak/keycloak-benchmark
prom-label-proxy - прокси сервер для Prometheus позволяющий разделять Prometheus и Alertmanager по меткам для каждого тенанта, что позволит создать мультиарендный доступ к одному Prometheus.

#prometheus #alertmanager #multitenancy

https://github.com/prometheus-community/prom-label-proxy
FaPro - Fake Protocol Server, кросплатформенная утилита которая позволяет легко запускать или останавливать несколько симуляций сетевых служб. Поддерживает кучу разных протоколов, таких как: DNS, Elasticsearch, FTP, Memcached, Modbus, MQTT, Redis, SMB, SNMP, VNC и много чего еще. Швейцарский нож для тестирования и отладки.

#fakeserver #fapro #rdp #vnc #dns #mqtt #modbus #smb #ssh #redis #imap #pop3 #snpm #smtp

https://github.com/fofapro/fapro
Тут DZone обзор на KubeMQ написали, это такая альтернативная Kafka, написанная на Go, нацеленная на cloud-native и kubernetes.
Из интересного, про прозрачную миграцию с кафки рассказывают при помощи KubeMQ Kafka connector. Я уж успел забыть про проект, а он оказывается растёт активно. Думаю, может взять протестить.
https://dzone.com/articles/seamless-migration-from-kafka-to-kubemq

#kubemq #kafka

https://github.com/kubemq-io/kubemq-community
Я вот написал небольшую статью, хозяйке на заметку, как готовить окружение для bash скриптинга.

Последнее время, у коллег скрипты на bash хромают, на подкастах IT тематических bash проклинают, на форумах тематических не осиливают и тянут nodejs для банальных задач в однострочник.
Решил сделать небольшой вклад, надеюсь кому-то да помогу преодолеть этот болевой порог.

#bash #sh #shell #vscode

https://habr.com/ru/post/583320/
KEDA - это инструмент автомасштабирования для Kubernetes, управляемый событиями. С KEDA вы можете управлять масштабированием любого контейнера в зависимости от количества событий, которые необходимо обработать.

Ранее вы возможно использовали Prometheus adapter для реализации custom.metrics.k8s.io в кластере и последующего использования их в HPA. KEDA же позволит вам обратится в Prometheus напрямую при помощи Prometheus scaler.

Так вот этих самых scalers (некий адаптер для сбора событий с приложений), существует довольно много, к примеру поддерживается:
- Apache Kafka
- AWS CloudWatch
- Azure Monitor
- Metrics API
- Kubernetes Workload
- CPU
- Cron
- Memory
- и много других ...

#keda #hpa #autoscaling #k8s #kubernetes

https://github.com/kedacore/keda
Наткнулся в вики AlmaLinux на табличку-сравнение для дистрибутивов бинарно соместимых с RHEL8, это те которые пришли на замену CentOS 8. Возможно поможет определиться с выбором.

Интересно, что AlmaLinux позиционирует себя как Non-Profit дистрибутив, т.е. не ради бабла.

Плюсом в копилку AlmaLinux скоро можно будет занести ELevate, это форк утилиты Leapp от шапки, которая позволяет делать апгрейд дистрибутива. Работать кстати будет с Rocky Linux и OracleLinux. Почему скоро? Оно еще не стабильно, и в прод тащить пока не рекомендуется. Напомню, EOL для CentOS7 2024-06-30 и время еще есть, ELevate точно допилят к тому времени.

#AlmaLinux #RHEL #OracleLinux #RockyLinux #CentOS

https://wiki.almalinux.org/Comparison.html
Еще одна интересная вещь на тему #SLO. Стандартизация, это наше всё.

Slo-exporter - это модульный инструмент для потокового вычисления стандартизированных показателей SLI и SLO на основе событий, поступающих из различных источников данных.
Внутренние события фильтруются и нормализуются, классифицируются по доменам и классам SLO, оцениваются как успешные или неудачные, наконец, экспортируются для дополнительных оценки SLO.
Следует принципам из Рабочей тетради SRE.

Модулей на данный момент не так много, можем из коробки взаимодействовать с Envoy, Kafka и разумеется Prometheus. Для всего остального у вас есть tailer для работы с логами, или прочие prometeus exporter, метрики с которых уже можно переварить здесь.

Собственно список имеющихся модулей

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

Вот еще любопытная обзорная статья про slo-exporter

#SLO #SLA #SRE #prometeus

https://github.com/seznam/slo-exporter
Если вам недостаточно метрик TCP из BlackBox exporter, нужна утилита для профилирования TCP или нужен TCP хелзчекер? Посмотрите на TCPProbe.

TCPProbe
- это современный инструмент и сервис TCP для наблюдения за производительностью сети. Он предоставляет информацию о базовом TCP-сеансе сокета, TLS и HTTP (более 60 метрик json и prometheus). А еще в нем есть gRPC.

#tcpprobe #tcp #prometheus #liveness

https://github.com/mehrdadrad/tcpprobe
Как то пропустил из виду еще одно решение для долгосрочного хранения метрик Prometheus. В копилку к таким решениям как Cortex, Thanos и VictoriaMetrics добавлю M3 от парней из Uber.

M3 (m3db) - выбор для компаний Cloud Native, желающих расширить свои системы мониторинга на основе Prometheus. M3 может использоваться как удаленное хранилище Prometheus и имеет 100% совместимость с PromQL. Платформа M3 предназначена для создания масштабируемого и настраиваемого многопользовательского хранилища под ключ для Prometheus, Graphite и других стандартных схем метрик. Умеет принимать в себя метрики из InfluxDB.

Изначально M3 был разработан в Uber для обеспечения прозрачности бизнес-операций, микросервисов и инфраструктуры Uber. Благодаря способности легко масштабироваться по горизонтали, M3 предоставляет единое централизованное решение для хранения данных для всех случаев использования мониторинга.

Также имеется Kubernetes Operator

#m3 #m3db #prometheus #cortex #thanos #victoriametrics

https://github.com/m3db/m3
Заметка про то каким способом (плагином) стоит делать статические записи в CoreDNS в зависимости от ситуации.

🔹 Если DNS записей много и используются разные типы записей (PTR SRV MX и т.п.) использовать стоит или файл с базой или плагин records

example.org {
records {
@ 60 IN MX 10 mx1
mx1 60 IN A 127.0.0.1
}
}

🔹 Если нужны какие-то рерайты используем плагин rewrite

rewrite name suffix .schmoogle.com. .google.com.

🔹 Если нужна шаблонизация и регулярные выражения то используем плагин template

template IN A domain.tld {
match ^(?P<a>[a-zA-Z0-9\-]*)[.]domain[.]tld[.]$
answer "{{ .Name }} 60 IN A 172.0.0.10"
fallthrough
}

🔹 Если нужно банальное сопоставление ip-имя из hosts то используем плагин hosts

. {
hosts
}

#coredns #dns #hosts

Список встроенных плагинов
Список сторонних плагинов
DARK - Dashboards As Resources in Kubernetes.

Оператор для Kubernetes позволяющий размещать панели мониторинга Grafana как ресурсы в Kubernetes.

Благодаря DRAK теперь есть возможность деплоить дашборды вместе с сервисом, а тем самым версионировать дашборды вместе с общей спецификацией развертывания.

Дашборды описываются в yaml формате, в комплекте с DARK поставляется утилита для конвертации стандартного JSON дашборда в YAML, так и в манифест для развертывания в Kubernetes.

Интегрируется с Grafana бесшовно и имеется поддержка ArgoCD.

#grafana #kubernetes #k8s #dashboard

https://github.com/K-Phoen/dark
HelmWave - это инструмент для развертывания ваших Helm чартов через GitOps. HelmWave, это как docker-compose для helm.

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

#helm #k8s #kubernetes #gitops

https://github.com/helmwave/helmwave
Плагин Molecule Docker позволяет использовать Docker контейнеры для подготовки тестовых ресурсов при запуске тестов Ansible в Molecule.

Штука интересная и весьма спорная, ведь docker контейнер это не полноценная виртуальная машина и подойдет этот плагин не для всех ролей. По этому стоит понимать где это можно использовать. Но если это решение вам подходит - оно несомненно упростит запуск тестов.

Для тех кто в танке, Molecule - это фреймворк, предназначенный для разработки и тестирования ролей в Ansible.

#ansible #molecule #docker

https://github.com/ansible-community/molecule-docker
Kube No Trouble (kubent) - это инструмент, позволяющий проверить, используете ли вы какую-либо из устаревших версий API в своем кластере, и поэтому перед обновлением кластера Kubernetes следует сначала обновить конфигурацию workload.

Анализирует размещенные в кластере ресурсы, а также умеет работать с файлами, kubectl last-applied-configuration и helm v2/v3

Правила для проверки написаны на rego, что является плюсом для кастомизации.
Есть возможность встроить в пайплайн.

#k8s #kubernetes #deprecation

https://github.com/doitintl/kube-no-trouble