postgres-exporter-wall.jpg

PostgreSQL - Настройка postgres экспортера

Сегодня покажу, как прикрутить экспортера для сбора метрик с базы postgresql. Установка postgres экспортера Итак мы имеем сервер с установленным на нем postgresql. Создадим пользователя, через которого экспортер будет подключатся к базе, так как использовать стандартного пользователя postgres не есть хорошо. Новый пользователь будет иметь полный read-only доступ к базе: sadmin@db01:~$ sudo -u postgres psql --- postgres=# create user postgresql_exporter with password 'Pwdpwd1122'; postgres=# grant select on all tables in schema public to postgresql_exporter; Проверим доступ к базе, подключится из под этого пользователя и попробуем создать базу например: ...

May 20, 2023 · 3 min · 520 words · Tony
node-exporter-install-wall.png

Node Exporter - ручная установка

Привет всем =) Решил написать несколько заметок на тему реализации построения мониторинга на Promstack компонентах. И начать настройку хотелось бы с не логичной стороны, это настройки экспортеров. Так как текущая обстановка на работе благоволит начать действовать. Думаю вы уже знакомы с экспортерами. Это такое приложение, которое собирает различные метрики с компонентов и других приложений нашей системы. Говоря же про node_exporter, этот экспортер вытягивает метрики с оборудования и операционки, предоставляемые ядром системы. ...

May 20, 2023 · 5 min · 868 words · Tony
nginx-basic-auth.png

Nginx - настройка BasicAuth

Решил оставить такую мелкую шпаргалку описывающую, как можн прикрутить авторизацию по логину/паролю на nginx в Centos-подобных системах. Ставим пакет: [root@prometheus01]# yum install httpd-tools Создаем файл с содержимым секретов: [root@prometheus01]# htpasswd -c /etc/nginx/.passwd admin Ключ -c /path/to/file - говорит системе, что мы хотим создать новый файл секретов. Для добавления пользователя в этот же файл секретов, используем команду: [root@prometheus01]# htpasswd /etc/nginx/.passwd grafana-user На файле с секретами, меняем овнера и группу: [root@prometheus01 ~]# chown -R nginx:nginx /etc/nginx/.passwd Остается отдерактировать nginx-config-у: ...

May 15, 2023 · 1 min · 156 words · Tony
k8s-csi-wall.webp

K8s - использование CSI, интеграция с vSphere

Буквально в прошлой заметке поднимали новый кластер куба используя инструмент kubespray. Сегодня же проработаем задачу постоянных томов для этого кластера. Напомню, что это было три виртуалки, размещенные на vmware инфраструктуре. И сразу же появилась идея провижинить постоянные тома в vSphere, у которой начиная с версии vSphere 6.7 (Update3) стала доступна поддержка Cloud Native Storage (CNS). Немного теории Cloud Native Storage (CNS) - это некая прослойка между vSphere и K8s, которая дает нам возможности для создания и управления постоянными томами в экосистеме vSphere. (Компонентная схема, для понимания) ...

May 9, 2023 · 9 min · 1840 words · Tony
k8s-install-klubespray-wall.jpg

K8s - установка через kubespray

В этой заметке развернем кластер куба используя инструмент - kubespray. Если вы уже читали про методы установки кластера, то косвенно знакомы с kubespray. Вкратце это сборник ansible-плэйбуков и ролей, дающий нам возможности: Основное это установка кластера k8s, установка как актуальной версии, так у более старой версии кластера, Установка контейнерного runtime (Docker, Cri-o, Containerd), Установка сетевых решений (Calico, Flannel), Установка и настройка кластера etcd, Возможность установки дополнительных компонентов - это DNS, Ingress-контроллеры, Cert-менеджеры, Storage-драйверы и прочее. Добавление/Удаление нод кластера. Обновеление кластера. Стоит сделать отступление относительно установки дополнительных компонентов, все же рекомендуют накатывать компоненты независимо от kubespray. Так как обновление или обычная замена версии компонента, может привести к проблемкам. ...

May 5, 2023 · 9 min · 1784 words · Tony
prom-black-export-wall1.png

Prometheus - настройка blackbox-exporter

Сегодня появилась задачка настроить мониторинг внешних web-сервисов из вне инфраструктуры. Условно запускаем инстанс где-нибудь на digital ocean, и начинаем выполнять пробы (проверки) на внешний контур инфры - http, ssh и прочее. Таска достаточно простая, развернул забикс напихал туда проверок и поехали. Но хочется чего нибудь не тривиального и модного =) Вообщем пришла идея попробовать развернуть схему Blackbox Exporter + Prometheus. blackbox_exporter - экспортер позволяющий нам снимать метрики с эндпоинтов поверх протоколов http, icmp, tcp, grpc и прочего. Что касается метрик, то получаем данныe по статусу конечной точки (доступна/недоступна), время ее отклика. И самое вкусное это дата истечение ssl сертификатов. ...

April 25, 2023 · 10 min · 2078 words · Tony
netbox-py-wall.png

Netbox - IPAM, автоматизация на коленке

В прошлой заметке подготовили к работе сервер netbox для работы с ним. Сегодня реализуем костыль, который поможет держать в актуальном состоянии ipam. При динамических изменениях в инфре, трудоемкая задача каждый раз обновлять адреса в сетевом пространстве. Особенно когда в команде несколько админов и каждый добавляем по своему. Начинает появляться хаос, тратится больше времени на то что бы все причесать к порядку. Спустя 30 минут ручного труда, ты решаешься сесть за написание скрипта. ...

April 20, 2023 · 6 min · 1200 words · Tony
k8s-pv-wall

K8s - Pv, Pvc

Немного теории Ранее разбирались с деплойментами, запускали наши (stateless) приложения и демонстрировали фишки self-healing в кубернетес. В рамках этого топика разберемся томами (volumes), поймем как мы может запускать приложения с сохранением состояния. В кубернетес есть несколько разновидностей типов томов. Некоторые из типов являются универсальными и подходят для локального хранения данных, какие-то могут быть приспособлены для специфичных задач. Один pod может использовать одновременно несколько типов томов. Тип volume может быть: emptyDir - пустой каталог, который может использоваться для хранения временных файлов. Время жизни этого тома тесно связанно с жизнью пода. Все данные теряются после сметри пода. hostPath - этот тип используется для монтирование каталогов из файловой системы самого хоста. Данные остаются, после завершения цикла жизни пода и могут быть переиспользованы другим подом. gitRepo - том, который инициализируется при проверке содержимого git-репозитория. nfs - общий nfs ресурс, монтируемый в под. local - локальные смонтированные устройства на узлах. cephfs, glusterfs, rdb, vsphereVolume - тип используемый, для монтирования сетевых файловых хранилищ. confingMap, secret - специальны тип, используемый для предоставления поду определенных ресурсов kubernetes. persistentVolume, persistentVolumeClaim - способ использования заранее и динамически резервируемые постоянные хранилища. В рамках этой записи упор будет на постоянных томах и дополнительных абстракциях вокруг постоянных томов. Название типа - PV (PersistentVolume) постоянные тома, обусловлено способу хранение данных, то есть хранилище не привязывается сроку жизни пода. Данные не теряются, если pod умрет, перезапустится или запуститься на другой ноде. Существует многожество реализации постоянных томов, например: nfs, glusterfs, cephfs, fc, iscsi, googleDisk. ...

April 12, 2023 · 9 min · 1757 words · Tony

MariaDB, Репликация master-to-master (Active/Passive)

Как я упоминал ранее, для реализации высокой доступности MFA сервиса буду поднимать несколько экземпляров PrivacyIdea серверов. PrivacyIdea все свое состояние хранит в субд. И для решение всей задачи, мне достаточно обеспечить высокую доступность на уровне баз. В документации к сервису предлагается два решения: Использование централизированной менеджмент системы СУБД (Например: Mariadb Galera, Pgpool); Использование два инстанса MySQL в режиме master-master. Разумеется в моем случаи целесобразнее будет использование второго варианта. Вообщем я взялся за изучения вопроса эсплуатации master-to-master субд. И мнения у большинства - нигативные, из основных притензий к такому подходу, это нарватся на рассихронизацию данных в обоих бд. Также при вставке уникального значения столбца в обе базы, приведет к вылету инстансов или к прерыванию репликации. Выход из подобных ситуаций это создание active/passive кластера. Мы добавляем выше какой либо балансировщик (keepalived, например) и пишем данные в одну мастер ноду вторая же нода используется как горячий бекап. В случаи падения первого мастера, мы продолжаем писать уже во второй мастер. ...

April 10, 2023 · 6 min · 1176 words · Tony
privacyidea-guide-wall.jpg

PrivacyIdea + Radius - MFA для удаленного доступа

В прошлых итерациях настраивали сервис двухфакторной авторизации, для интеграции его с Cisco ISE. На этот раз решил попробовать проинтегрировать аналогичную LinOTP прилу - PrivacyIdea. На самом деле PrivacyIdea это форк LinOTP, который активно развивается разрабами и имеет более симпотичный WebUI. Да и стоит отметить, что некоторые фичи уже добавленые в приложение из коробки. И не нужно реализовывать костели, которые я делал ранее. Стоит отметить, что стабильная версия LinOTP работает на втором python2, что на сегодня уже считаеться немного легаси =). Я пробовал собирать приложение на python3, но из-за различных проблем в процессе использования сервиса, у меня просто опустились руки. ...

April 7, 2023 · 8 min · 1652 words · Tony