TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #577 · 1.10

Закончился второй этап конкурса "Код Петербурга". На первый я отправил скилл для Маруси, позволяющий гибко искать события по базе KudaGo. Но с самого начала говорили, что среди критериев оценки будут метрики: число пользователей и так далее. Там, где есть метрики, нужно делать развлекательный проект или игру, без вариантов. У "полезных" самостоятельных приложений (не связанных с внешним бизнесом) метрик нет почти никогда. Я посмотрел на топ развлекательных приложений в каталоге ВК и увидел, что местная аудитория любит кликеры / idle. Это такие игры, которые максимально абстрагируют игровой процесс: буквально конвертируют время вашей сессии и совершение простейших действий во внутриигровой ресурс. Грубо говоря, вы получаете очки, потому что просто сидите в игре, и на этом все. Ну, иногда нужно нажимать на экран. О причинах популярности и кажущейся примитивности этого жанра я сейчас рассуждать не берусь, но во второй этап решил сделать кликер про музеи Петербурга. Напомню, что одно из условий конкурса: использовать API городских сервисов. Здесь я взял базу данных Министерства Культуры. В игре "Музейный Барон" вам нужно нажимать на посетителей с разными предпочтениями, получать с них деньги, на которые строить музеи, позволяющие получать еще больше денег, в том числе автоматически. Музеи, разумеется, настоящие. Я, кстати, пока подбирал, узнал о нескольких новых, которые хочется посетить. Еще есть, например, возможность в реальности зачекиниться по GPS у нужного музея и получить его со скидкой. И, конечно, я не отказал себе в удовольствии сделать отдельный режим "Ночь Музеев", генерирующий в разы больше посетителей. Вообще, делать кликер было интереснее, чем кажется. Отдельно пришлось придумывать, как не допустить написание игроками ботов для автоматизации. Ну и математику тоже пришлось продумывать, строя графики, хотя, кажется, есть куда улучшать. #dev#games

Hashtags

Резултати

Намерени 1 подобни публикации

Търсене: #zabbix

当前筛选 #zabbix清除筛选
DOFH - DevOps from hell

@dofh_ru · Post #3753 · 12.06.2025 г., 07:41

Насколько мне известно, у Zabbix до сих пор нет стандартного шаблона для мониторинга за временем оплаты домена. Про крайней мере мне такой неизвестен. Если он уже есть и я его упустил, прошу подсказать. В разное время я реализовывал различные способы решения этой задачи. Все они один за одним собирались в статью на сайте: ⇨ Мониторинг времени делегирования домена в zabbix Все способы, описанные там, актуальны и работают. Основное их неудобство - реализация через скрипты, от чего уже давно хочется уйти, потому что неудобно ходить в консоль и править там список доменов. Можно собрать простенький пайплайн для этого, но это тоже перебор для такой простой задачи. Я её однажды реализовал полностью в шаблоне без скриптов с помощью внешнего сервиса Whois API и его бесплатного тарифа. В принципе, вариант рабочий, но не всегда удобно регистрироваться во внешнем сервисе, получать от него токен и в целом зависеть от его доступности. Прикинул, как можно сделать так же удобно, реализовав всю логику только в шаблоне Zabbix, в том числе в нём же в макросах вести список доменов, но при этом без внешнего сервиса. Решил для этого воспользоваться готовым экспортером для Prometheus. Он удобен тем, что отдаёт метрики по HTTP, а значит их можно забирать заббиксом напрямую через его HTTP Агент. Рассказываю по шагам, как всё настроил. 1️⃣ Поднимаю на любой своей машине в докере domain_exporter. Можно тут же на сервере Zabbix. 2️⃣ В шаблоне Zabbix создаю правило обнаружения с любым типом. Для примера взял тип Внутренний Zabbix и ключ zabbix[boottime]. Значения этого ключа нам не нужны, так как мы их сразу же будем преобразовывать. 3️⃣ В правиле обнаружения настроил предобработку типа JavaScript с таким кодом: var domains = '{$DOMAINS}'.split(/\s+/); var data = []; for (var i = 0; i < domains.length; i++) { data.push({ "{#DOMAIN}": domains[i] }); } return JSON.stringify({ data: data }); Берём список доменов из макроса {$DOMAINS} и преобразуем их в строку: { "data": [ { "{#DOMAIN}": "serveradmin.ru" }, { "{#DOMAIN}": "example.com" } ] } Это формат, который принимают прототипы айтемов и триггеров. 4️⃣ Создал в шаблоне макросы: ◽️{$DOMAINS} = serveradmin.ruexample.com # разделитель доменов - пробел; ◽️{$PROM_URL} = http://10.30.52.9:9222/probe # адрес экспортера; ◽️{$WARN_DAYS} = 30 # порог в днях для триггера со статусом предупреждение; ◽️{$CRIT_DAYS} = 5 # порог в днях для триггера со статусом критический. 5️⃣ Создал прототип айтема с типом HTTP Agent. В качестве урла указал {$PROM_URL}, а для передачи имени домена использовал поля запроса: target ⇨ {#DOMAIN} То есть итоговый урл для получения данных будет такой: http://10.30.52.9:9222/probe?target={#DOMAIN}. А если развернуть lld-макрос, то такой: http://10.30.52.9:9222/probe?target=serveradmin.ru. 6️⃣ В прототипе айтема сделал предобработку: Шаблон Prometheus ⇨ domain_expiry_days Так как у нас данные поступают в формате Prometheus, с помощью этой предобработки мы сразу получаем данные о времени оплаты в формате целого числа. 7️⃣ В это же правило автообнаружения добавил 2 триггера. На выходе мы имеем шаблон для мониторинга за оплатой доменов, где все настройки можно выполнять в веб интерфейсе Zabbix Server через макросы. Не нужны никакие скрипты на хостах. Единственное, что нужно сделать на сервере - запустить экспортер от Prometheus и убедиться, что с Zabbix Server есть к нему доступ. Решение придумал и реализовал полностью сам. Не исследовал, что уже есть готового на эту тему. Мне видится такая реализация вполне удобной и функциональной. Если кто-то знает решение удобнее без скриптов, поделитесь информацией. Шаблон публикую отдельно следующей публикацией. Проверял на версии Zabbix 7.0. Необходимо его импортировать на сервер и заполнить макросы либо в самом шаблоне, либо переопределить их после прикрепления к любому хосту. ❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки. #zabbix