PromStack - упрощенный запуск через compose-файл

Привет! В этой заметке поговорим о мониторинге. Ранее уже были отражены схожие инсталяции в записях моего блога, где использовалось много ручного труда по вводу команд. И когда вновь возникла задача настроить мониторинг, я решил пойти другим путем и упростить установку всего процесса за счет использования docker. Такой подход освобождает от необходимости многократного ввода команд вручную и ускоряет развертывание сервисов.. Настройка Prometheus, Grafana, Nginx Собственно, мы имеем небольшой сервер с установленным docker. (Как установить докер, ссылочка - тык). Далее на сервере создадим структуру, где и будем хранить необходимые файлики. ...

January 14, 2025 · 16 min · 3253 words · Tony

Обучаем Alertmanager отправлять в телеграмм топик

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

November 4, 2023 · 4 min · 851 words · Tony
wall.png

Pushgateway - скрапим при помощи Bash

Привет всем, В этой заметке хотелось бы показать пример, как можно извлекать данные из командной оболочки (Bash) и отдавать их в Prometheus. Представим на нас упала таска, по заданию которой требуется извлекать значения из файлов с переменными и слать алерт в мессенджер при случаи изменения этих значений. Более опытные из нас, наверное пошли бы по пути написания небольшого скрипта, который бы полностью решал бы эту задачу. В моем же случаи, я преследую интерес реализации этой же задачи более нативным методом. А именно с использованием связки: ...

June 20, 2023 · 4 min · 709 words · Tony
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
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
Post wall

Zabbix Agent - Установка/Деплой через GPO

Парадокс нашей админской жизни - как бы мы не стремились в Unixway, все равно приходится админить сервера на Windows. Вообщем и эта заметка будет про автоматизацию процесса установки zabbix-агентов на windows сервера. Собственно раскатывать агентов будем через груповые политики AD, ранее я уже писал об этом в прошлых заметках. Остается только придумать как реализовать процесс добавления хоста в заббикс. Этот поинт будем решать, через скриптец, который напишем далее. Подготовка На стороне заббикс-сервера, нужно внести некоторые приготовления. По моему замыслу, все новые хосты должны назначаться в определенную группу, и далее администратор заббикса распределит хосты по нужным группам. Поэтому создаем хост-группу - Unassigned : ...

March 10, 2023 · 5 min · 1029 words · Tony

Zabbix - мониторинг памяти на AIX

В процессе добавления на мониторинг aix серверов в zabbix, заметил что в стандартном шаблоне нету метрик собирающих данные по памяти. Сервера мониторятся через агентов, поправить это будет не сложно. Для начала напишем скриптец, который дергает нужные данные, и добавим скрипт на выполнение заббикс-агенту. Сам сниппет: #!/bin/bash totalmem=`lsattr -El sys0 -a realmem | awk {'print $2'}` usedmem=`svmon -G -O unit=KB | head -4 | tail -1 | awk {'print $3'}` freemem=`expr $totalmem - $usedmem` case $1 in "--free") echo "$freemem" ;; "--used") echo "$usedmem" ;; "--total") echo "$totalmem" ;; *) echo "Flags:" echo " --free - Free mem" echo " --used - Used mem" echo " --total - Total mem" esac В переменную totalmem, записывается результат выполнения команды (lsattr). Команда lsattr отобразит все атрибуты определенного объекта или устройства системы, в нашем случаи мы дергаем все аттрибуты устройства sys0, ключ -a отобразит определенный аттрибут, мы берем значение аттрибута - realmem. В переменную usedmem, также указывается результат выполнение команды svmon. Команда svmon, отобразит информацию о текущем состоянии памяти. В значение переменной freemem, вычесляется из переменных $totalmem и $usedmem. (Кстати говоря, эту метрику можно сделать средствами заббикса) Далее идет условный оператор case, в котором перечисляются ключи. В зависимости от ключа, будет пролистено значение одной из трех переменных. Сам скрипт можно разместить в домашнем каталоге пользователя - zabbix, обычно это - /var/lib/zabbix или /home/zabbix: ...

December 19, 2022 · 3 min · 591 words · Tony