Впервые сделал крупный проект (под NDA, так что не расскажу, какой) на облачных функциях. Впечатления противоречивые.
Изначально программисты арендовали компьютер в датацентре: или целиком или кусочек. На нём теоретически можно делать что угодно, но для запуска своих программ нужно было настроить операционную систему, безопасность и авторизацию, установить нужные исполнительные модули, программы для удобства деплоя, мониторинг нагрузки итд. Поэтому появились сервисы, которые это всё делают за тебя, а тебе дают буквально окно, куда можно написать свой код и запускать его удалённо на чужой машине.
Конкретно я пользовался решением от Яндекса, чей протокол скопирован напрямую с Amazon Web Services. Причём, в документации не только открыто об этом говорится, но ещё и в некоторых местах перенаправляют на доки от Amazon. И SDK предлагают тоже использовать амазоновский. До санкций я бы сказал, что это не так плохо — можно использовать что-то привычное тем, кто уже работал с Amazon. Но сейчас привязка к американскому сервису выглядит скорее жирным минусом. Не знаю, есть ли у Яндекса ресурсы на какое-то серьёзное разделение. Судя по состоянию документации и платформы в целом — нет.
Yandex Cloud кажется системой, которая активно развивалась несколько лет назад, а сейчас подзаброшена. Среда выполнения .NET отстаёт от актуальной на две версии (3.1 вместо 6, четвёртой версии не существует). Изначально мой проект был написан как обычное контейнеризированное приложение на .NET 6, а потом я переводил его на функции. Пришлось пройтись по всему коду и переписать несовместимые куски с C#10 на C#8, это было не слишком приятно.
Документации фактически нет, а там, где есть, много путаницы. В примерах написано одно, по факту другое: например в функцию вместо объекта Request приходит просто строка, а разбирать её надо самому. Авторизацию я нашёл только на Stackoverflow. Интересно, что адекватных доков про неё не было ни у Яндекса, ни у Amazon.
Функция выполняется и выгружается, поэтому ваша программа не должна рассчитывать на наличие постоянно живущего процесса. Мне пришлось вытащить из неё большой словарь, который грузится при старте, и положить уже подготовленные данные из него в Object Storage — это такое горячее файловое хранилище, там же рядом с функциями. Справедливости ради, работает это всё быстрее, чем я думал. Удалось запихнуть в функции даже сравнительно большой проект с кучей классов, создающий при запуске несколько десятков объектов и производящий загрузку из сети с декомпрессией.
Другой важный плюс — бесплатная квота довольно внушительная: миллион вызовов и 10Гб*часов оперативной памяти в месяц. Для пет проекта вы сможете вообще не покупать сервер. Но если сервер у вас всё-таки есть, деплой вы уже настроили, то удобнее будет, конечно, делать как привычно. И гибкости больше.
#dev
Насколько мне известно, у 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
#Domain🔥PCOM, The PUSH Community is coming! 🔥
#Kingdom📡Announcing our IDO, set for July 1st, at 4pm UTC📅
#Phylum Every Project NEEDS a PUSH🦸♂️
This is where PCOM comes in 🙌
From Tokens/Projects which need that extra nudge💪
To experienced shillers who are looking for their next gig🔍
PCOM is the be-all-end-all destination for all of your promotional and shilling needs✅
You can take part in this amazing opportunity at the ground floor by picking up your tokens during the upcoming IDO!
🌐Official Whitepaper
🌐Official Website PCOM HOME
🌐Official IDO Direct Link
PCOM: BUY THE IDO HERE
https://cointool.app/ido/exchange?id=236b717277242a232425752a2722277177772023722571267523207272217223222372272622702120756f2625)
🌐Official Facebook
🌐Official Twitter
🌐Official Telegram Group
🌐Official Telegram Announcements
🌐Official BSCScan: [BSCScan](https://bscscan.com/token/0x07ecbe61F8c41A9a724e96781957e236f9A480AD)
#Domain🔥PCOM, The PUSH Community is coming! 🔥
#Kingdom📡Announcing our IDO, set for July 1st, at 4pm UTC📅
#Phylum Every Project NEEDS a PUSH🦸♂️
This is where PCOM comes in 🙌
From Tokens/Projects which need that extra nudge💪
To experienced shillers who are looking for their next gig🔍
PCOM is the be-all-end-all destination for all of your promotional and shilling needs✅
You can take part in this amazing opportunity at the ground floor by picking up your tokens during the upcoming IDO!
🌐Official Whitepaper
🌐Official Website PCOM HOME
🌐Official IDO Direct Link
PCOM: BUY THE IDO HERE
https://cointool.app/ido/exchange?id=236b717277242a232425752a2722277177772023722571267523207272217223222372272622702120756f2625)
🌐Official Facebook
🌐Official Twitter
🌐Official Telegram Group
🌐Official Telegram Announcements
🌐Official BSCScan: [BSCScan](https://bscscan.com/token/0x07ecbe61F8c41A9a724e96781957e236f9A480AD)
Кто мало ценит живопись, тот мало ценит мнение собственных глаз”, говорил Леонардо да Винчи 🧑🎨
В этот день, 15 апреля, великий живописец отмечал День рождения, а мировое творческое сообщество привыкло отмечать Всемирный день искусства🎉
Мы ценим ваши творческие замыслы и хотим предоставить площадку для самовыражения! С 15 по 29 апреля будет действовать наша флеш распродажа в доменной зоне .art - на этот период стоимость регистрации домена 10 руб. вместо стандартных 72 руб.
Кто может использовать доменное имя .art
✔️начинающие художники и опытные профессионалы;
✔️графические дизайнеры и граффитисты;
✔️музыканты;
✔️тату-мастера;
✔️музеи и галереи;
✔️арт-медиа.
ВСЕ, кто горит творчеством и ищет цифровое пространство для самореализации. Кто хочет стать частью большого арт-сообщества и любителей искусства.
Ведь создание доменного имени - это первый шаг к воплощению нематериальной идеи в реальность. Сделайте этот шаг вместе с нами!
#hoster#art#dns#domain
2 часть веб-ресурсов с утечками баз данных. Все данные добываются из открытых или полузакрытый источников. И не забываем, что хороший пул подобных ресурсов упростит OSINT до неузнаваемости, сохраняйте.
— leakcheck
— leakpeek
— snusbase
— haveibeensold
#website#global_search#email#domain
Веб-ресурсы з утечками баз данных. Можно проверить адрес электронной почты, домен, URL, IP-адрес, биткоин-адрес, хэши і т.д. Все данные добываются из открытых или полузакрытый источников. Хороший пул подобных ресурсов упростит OSINT до неузнаваемости, сохраняйте.
— Leak.sx
— breachchecker
— Intelligence X
— leak-lookup
#website#global_search#email#domain
🏆 Bot of the Day 🏆
@eBukBot brings complete feedbooks (Public Domain) ebook catalog into Telegram. Browse recent additions, search by title, author and/or description, share them on chats sending ebook preview message and download in multiple formats. Just click and start reading!
Search eBooks in English, Spanish, German, Italian or French.
#eBooks#Public#Domain#Books
.NET loyihalari, windows server, domain integratsiya
Oramizdagi barcha .NET ahli qanday qilib api yozishni biladilar. Yoki umuman bir loyihani "loyiha" qilishni uddalaydilar. Ammo u bitganidan so'ng uni serverga qo'yish haligacha muammo bo'lib kelmoqda. Keling, ushbu muammoni yengilgina hal qilishni o'rganamiz. Yani windows server va domain sotib olib, ularni loyihamiz bilan integratsiya qilamiz. Aytgancha, SSL muammolari ham bor. Barchasini bitta qilib, bir darsda namoyish qilishga harakat qilamiz. Bu safargi speaker - kamina, Muhammadkarim.
Barchangizni ushbu mahorat darsida kutib qolamiz. Kirsangiz xursand bo'lamiz, kirmasangiz hafa bo'lish yo'q )
Sana: 5-fevral, 20:00
Havola: Zoom
Speaker: Muhammadkarim To'xtaboyev
#iis#windowsserver#domain#hosting
.NET Uzbekistan Community
➖➖➖➖➖➖➖➖➖➖
Telegram | Instagram | Youtube