Архів за рік: 2025

FreeBSD: Home NAS, part 4 – локальний DNS з Unbound

21 Грудня 2025
 

 В попередньому пості FreeBSD: WireGuard VPN, Linux peer та routing між мережами підняли VPN для поєднання двох мереж – моєї офісної та домашньої, все працює. Але зараз, аби підключитись до якогось хосту в мережах треба вказувати IP-адресу. Можна, звісно, прописувати все в файлах /etc/hosts, але це і не дуже зручно, і будуть клієнти типу Android-телефонів,… Читати далі »

FreeBSD: Home NAS, part 3 – WireGuard VPN, Linux peer та routing

18 Грудня 2025
 

 Продовжую налаштування свого домашнього сервера на FreeBSD 14.3, де планується мати NAS. В попередньому пості FreeBSD: знайомство з Packet Filter (PF) firewall познайомились з фаєрволами, наступний крок – це налаштувати VPN для доступу. Основна ідея – поєднати (нарешті!) мій “офіс” і квартиру, а пізніше, можливо, ще і підключити сервер, на якому зараз працює rtfm.co.ua –… Читати далі »

FreeBSD: Home NAS, part 2 – знайомство з Packet Filter (PF) firewall

17 Грудня 2025
 

 Продовжую потрохи налаштовувати домашній NAS на FreeBSD, і перше, з чим хочеться розібратись – це FreeBSD firewalls. Колись я працював з IPFW – FreeBSD: начальная настройка IPFW, 2012 рік. Зараз в системі є три “штатних” фаєрволи – Packet Filter (PF), IP Firewall (IPFW) та IP Filter (IPF): pf: зараз фактично дефолтна опція, був портований до FreeBSD… Читати далі »

FreeBSD: Home NAS, part 1 – налаштування ZFS mirror (RAID1)

7 Грудня 2025
 

 Є в мене ідея підняти собі вдома NAS на FreeBSD. Для цього купив машинку Lenovo ThinkCentre M720s SFF – тиха, компактна, є можливість встановити 2 SATA III SSD + окремо M.2 слот під NVMe SSD. Що планується: на NVMe SSD: UFS і FreeBSD на SATA SSD: ZFS з RAID1 Поки чекаю на диски, можна спробувати… Читати далі »

VictoriaMetrics: Recording Rules для логів AWS Load Balancer

5 Грудня 2025
 

 В продовження теми логів AWS Load Balancer: в попередньому пості  Golang: запис логів AWS Loab Balancer до VictoriaLogs зробили збір логів з власним logs collector на Golang, тепер треба з цих логів отримати щось корисне. Раніше, коли у нас на проекті була Loki, ми з її RecordingRules створювали метрики, з яких потім малювали дашборди в… Читати далі »

FreeBSD: установка на ThinkPad X200 Tablet у 2025 році

30 Листопада 2025
 

 Я давно фанат ThinkPad, дуже люблю всю їхню лінійку. Нещодавно десь зустрів модель X200, які випускались з 2008 року – просто десь побачив картинку, і дуже захотів собі в “колекцію”. Неочікувано – але він навіть знайшовся в продажу на OLX, тому купив собі цей чудо-девайс. ThinkPad X200 overview Він… Ну – це просто бімба 🙂… Читати далі »

Golang: запис логів AWS Loab Balancer до VictoriaLogs

26 Листопада 2025
 

 Наступна задача, яку хочеться вирішити з Go – це написати власний logs collector для збору логів AWS Load Balancer з AWS S3 і запису їх до VictoriaLogs. Це, звісно, можна було б вирішити просто з Vector.dev, як це робив для AWS VPC Flow Logs, див. Vector.dev: знайомство, логи з AWS S3 та інтеграція з VictoriaLogs,… Читати далі »

Golang: інтерфейси, типи та методи на прикладі io.Copy()

22 Листопада 2025
 

 Почав писати log collector з S3 до VictoriaLogs з використанням AWS GO SDK, і в коді достатньо багато використовуються різні Input/Ouput операції, бо треба отримати лог, розпарсити, записати дані. В попередньому пості по інтерфейсам – Golang: interfaces – “магія” виклику методів через інтерфейси – вже трохи торкався теми того, що таке інтерфейси і як саме… Читати далі »

Golang: створення OpenAI Exporter для VictoriaMetrics

17 Листопада 2025
 

 Є задачка на моніторинг костів на OpenAI – бачити скільки за добу витрачено кожним проектом, і слати алерти в Slack, коли витрати завеликі. Потикав кілька готових експортерів для OpenAI, але не побачив там метрик саме по костам, тому просто напишемо свій. Писати будемо на Golang, ідея дуже проста – з OpenAI API отримуємо дані, генеруємо… Читати далі »

Golang: interfaces – “магія” виклику методів через інтерфейси

11 Листопада 2025
 

 Інтерфейси в Go дозволяють описати доступ до даних або методів без створення самих реалізацій в цих інтерфейсах. Таким чином ми створюємо “загальну шину”, яку далі можемо використовувати для “підключення” зовнішніх “систем”. Тобто інтерфейс – це абстракція, яка описує доступ до іншого типу, але конкретна реалізація цієї поведінки вже буде залежати від того, що саме ми… Читати далі »