Zabbix – Блог страуса https://ostrich.kyiv.ua Tue, 08 Jul 2025 11:54:04 +0000 uk hourly 1 https://wordpress.org/?v=6.8.3 https://ostrich.kyiv.ua/wp-content/uploads/2024/02/ostrich-150x150.png Zabbix – Блог страуса https://ostrich.kyiv.ua 32 32 Налаштування email сповіщення в Zabbix https://ostrich.kyiv.ua/uk/2025/05/28/%d0%bd%d0%b0%d0%bb%d0%b0%d1%88%d1%82%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-email-%d1%81%d0%bf%d0%be%d0%b2%d1%96%d1%89%d0%b5%d0%bd%d0%bd%d1%8f-%d0%b2-zabbix/ https://ostrich.kyiv.ua/uk/2025/05/28/%d0%bd%d0%b0%d0%bb%d0%b0%d1%88%d1%82%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-email-%d1%81%d0%bf%d0%be%d0%b2%d1%96%d1%89%d0%b5%d0%bd%d0%bd%d1%8f-%d0%b2-zabbix/#respond Wed, 28 May 2025 19:29:39 +0000 https://ostrich.kyiv.ua/?p=1244 Вступ

Переглядаючи метрику в Zabbix, іноді недостатньо лише переглядати розділ Current problems на дашборді. В Zabbix є багато додаткових методів сповіщення адміністратора про певні події. Одна з них, яка мене цікавить – це налаштування SMTP для відправки пошти засобами самого Zabbix. Як зробити ці налаштування я опишу детально.

В дійсності таке важливе налаштування реалізовується в три етапи:

  • Налаштування пошти користувача
  • Налаштування SMTP
  • Налаштування сповіщень

По завершенню цих налаштувань необхідно буде перевірити коректність роботи.

Налаштування пошти користувача

Щоб користувач отримав пошту, її необхідно прописати в обліковому записі, для цього треба внести зміни в меню Users -> Users, вибрати із списку потрібного користувача та перейти на вкладку Media.

В розділі Media клацнути Add. Відкриється вікно Media в якому достатньо прописати емейл користувача, та клацнути Add. Також в цьому вікні можна налаштувати графік надсилання пошти та тип події при спрацюванні якої буде надіслана пошта. Тобто можна вважати ці налаштування доволі гнучкими.

Після збереження змін, до користувача буде прикріплена адреса поштової скриньки, і можна переходити до наступних налаштувань.

Налаштування SMTP

Основні налаштування знаходяться в меню Alerts -> Media types. В списку можливих варіантів вибираємо пункт Email. Спочатку необхідно заповнити значення в формі Media type, вкладки Message templates та Options можна буде налаштувати пізніше.

Для тестування я створив поштову скриньку спеціально для Заббікса. Від імені цього користувача будуть надсилатися емейли. Тепер необхідно використовуючи ці данні заповнити наступні поля:

Media type

  • Name – Email
  • Type – Email
  • Email provider – Generic SMTP
  • SMTP server – mail.yourdomain.com
  • SMTP server port – 465
  • Email[email protected]
  • SMTP helo – <mail.yourdomain.com>
  • Connection security – SSL/TLS
  • SSL verify peer – Checkbox
  • SSL verify host – Checkbox
  • Authentication – Username and password
  • Username[email protected]
  • Password – <password>
  • Message format – HTMLPlain text
  • Description – Postfix server для відправки сповіщень з Zabbix
  • Enabled – Checkbox

Щоб впевнитися в правильності налаштувань, можна одразу протестувати роботу відправки тестового листа. Для цього необхідно натиснути на кнопку Test вибрати отримувача, за потреби написати повідомлення і надіслати цей тестовий лист.

Після отримання тестового листа, можна переходити до наступного етапу – налаштування сповіщень.

Налаштування сповіщень

Налаштування сповіщень знаходяться в меню Alerts -> Actions -> Trigger actions. В цьому вікні вже буде список створених тригерів сповіщень, проте ми створимо ще один, клацнувши на кнопку Create action.

У вікні New action заповнимо наступні поля

На закладці Action

  • Name – Email notification
  • Conditions – Вибираємо потрібний тригер, наприклад тригер, який відповідає за температуру ЦП
  • Enabled – Checkbox

На закладці Operations я налаштував тільки Operations action, клацнувши в цьому блоці на кнопку Add. В цьому вікні достатньо змінити два поля:

  • Send to users – вибрати отримувача із списку
  • Send to media type – вибрати із списку раніше створений media typeemail

Користувач повинен мати принаймні права на «читання» для хоста, щоб отримати сповіщення.

Я вирішив прибрати чекбокси з наступних пунктів: Pause operations for symptom problems, Pause operations for suppressed problems, Notify about canceled escalations, під час тестування нотифікацій, при потребі можна буде їх поставити.

По завершенню треба зберегти налаштування та сповіщення.

Перегляд активності

Щоб подивитися активність відправки пошти, можна зайти в меню Reports -> Action log і там можна буде побачити всі успішні або неуспішні події які були виконані.

Висновки

Налаштування SMTP для надсилання сповіщень у Zabbix — це важливий крок для забезпечення оперативного реагування на події в системі моніторингу. Як видно з описаних кроків, процес не є складним, але потребує уважності на кожному етапі: від прив’язки поштової адреси до користувача, до правильного заповнення параметрів SMTP-сервера і створення тригерів для дій. Успішне тестування надсилання пошти підтверджує коректність конфігурації, а журнал подій дозволяє відслідковувати, чи доходять повідомлення до адресатів. Водночас, проблема з тим, що сповіщення отримує лише адміністратор, вказує на потребу додаткового вивчення прав доступу та налаштувань користувачів у Zabbix. Сподіваюся, ця інструкція допоможе вам швидко реалізувати сповіщення через email і зробити моніторинг ще ефективнішим.

]]>
https://ostrich.kyiv.ua/uk/2025/05/28/%d0%bd%d0%b0%d0%bb%d0%b0%d1%88%d1%82%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-email-%d1%81%d0%bf%d0%be%d0%b2%d1%96%d1%89%d0%b5%d0%bd%d0%bd%d1%8f-%d0%b2-zabbix/feed/ 0
Cloudflare: реальний досвід відбиття DDoS атаки з росії https://ostrich.kyiv.ua/uk/2025/05/25/cloudflare-%d1%80%d0%b5%d0%b0%d0%bb%d1%8c%d0%bd%d0%b8%d0%b9-%d0%b4%d0%be%d1%81%d0%b2%d1%96%d0%b4-%d0%b2%d1%96%d0%b4%d0%b1%d0%b8%d1%82%d1%82%d1%8f-ddos-%d0%b0%d1%82%d0%b0%d0%ba%d0%b8-%d0%b7-%d1%80/ https://ostrich.kyiv.ua/uk/2025/05/25/cloudflare-%d1%80%d0%b5%d0%b0%d0%bb%d1%8c%d0%bd%d0%b8%d0%b9-%d0%b4%d0%be%d1%81%d0%b2%d1%96%d0%b4-%d0%b2%d1%96%d0%b4%d0%b1%d0%b8%d1%82%d1%82%d1%8f-ddos-%d0%b0%d1%82%d0%b0%d0%ba%d0%b8-%d0%b7-%d1%80/#respond Sun, 25 May 2025 13:26:52 +0000 https://ostrich.kyiv.ua/?p=1220 Вступ

Коли я купив домен і прийняв рішення на своїй Raspberry Pi розгорнути публічний сайт (цей блог, який ви зараз читаєте) я знав, що DDoS-атака відбудеться, обов’язково, але це було питання часу. Цей час настав. В цьому дописі я поділюся своїм досвідом, як я відбив DDoS-атаку за допомогою Cloudflare на безкоштовному тарифі. Я тут надам графіки та результати роботи по факту завершення атаки, проте вони будуть доволі інформативними для візуального сприйняття.

Превентивні заходи

Я продовжую вивчати сучасні мережеві можливості, нові технології, розбираюся в налаштуваннях та сервісах. На моєму сервері наразі встановлено декілька веб сервісів, але з точки зору безпеки, я для них обмежив доступ із інтернету, залишивши лише локальну мережу. Такі заходи не можуть стосуватися публічного веб ресурсу – цього блогу. Після написання десь 5ї статті я подумав про захист від DDoS-атак, і перше що прийшло на думку це був сервіс Cloudflare.

Cloudflare – це потужна платформа для забезпечення безпеки, оптимізації швидкодії та підвищення стабільності веб ресурсів. Завдяки глобальній мережі дата-центрів Cloudflare діє як проміжна ланка між сайтом і відвідувачем: кешує контент, блокує небажаний трафік і надає аналітику.

На початковому рівні я вибрав безкоштовний тарифний план, який має певні обмеженні на відміну від комерційного, проте цього цілком достатньо для базових потреб захисту сайту. Щоб почати користуватися Cloudflare необхідно виконати декілька простих кроків:

  • Зареєструватися на Cloudflare
  • В адмін панелі реєстратора домена необхідно прописати DNS записи серверів Cloudflare
  • В адмін панелі Cloudflare додати DNS записи свого фізичного сервера

Після внесення змін почнеться переіндексація DNS записів яка може тривати до 72 годин, проте в моєму випадку це сталося менше ніж за добу. Після цього я видихнув і почав вже користуватися сайтом повноцінно покладаючись на Cloudflare.

Визначення DDoS атаки

Для моніторингу ресурсів своєї локальної мережі я використовую Zabbix. Зазвичай я відслідковую активність поштового серверу, температури Raspberry Pi та інші метрики. Візуально на дашборді розмістив декілька віджетів, щоб наглядно і швидко можна було визначати аномалії в роботі сервісів.

Зазвичай температура становить приблизно 60 – 65°C, проте я звернув увагу на завищену температуру на майже 10 градусів, до 70 – 75°C. В цей час я перевів погляд на навантаження ЦП, і він був на рівні 50%, я відразу зрозумів що щось коїться не те.

Я передивився метрики сервера і майже всі значення графіків свідчили про позаштатну ситуацію

Візуальні графіки показують лише загальну картину. Тепер моя мета була визначити корінь зла. Для цього я підключився до сервера, та почав переглядати стан процесів та роботи сервісів. На жаль під час діагностики я не зробив скріншотів проте скопіював текст з консолі. По історії команд спробую відтворити хід подій.

Ресурс CPU

Першою командою я визначив перші 15 процесів із високим споживанням ресурсу CPU.

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 15

Я отримав таку видачу:

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 15
    PID    PPID CMD                         %MEM %CPU
2366770 1943100 /usr/sbin/apache2 -k start   1.1 12.4
2373538 1943100 /usr/sbin/apache2 -k start   1.2 12.2
2374705 1943100 /usr/sbin/apache2 -k start   1.2 11.8
2374940 1943100 /usr/sbin/apache2 -k start   1.2 11.3
2376091 1943100 /usr/sbin/apache2 -k start   1.0 11.1
2370641 1943100 /usr/sbin/apache2 -k start   1.2 10.4
2355557 1943100 /usr/sbin/apache2 -k start   1.2 10.4
    709       1 /opt/networkoptix/mediaserv  5.7  9.6
2375784 1943100 /usr/sbin/apache2 -k start   1.0  9.3
2373539 1943100 /usr/sbin/apache2 -k start   1.2  7.8
2375416 1943100 /usr/sbin/apache2 -k start   1.2  7.1
2376564 1943100 /usr/sbin/apache2 -k start   0.8  6.9
2372672 1943100 /usr/sbin/apache2 -k start   1.2  6.9

Звісно значення були по 10-20% CPU на процес, що в сумі давало доволі велику сумарну навантаженість.

Джерело трафіку

Другою командою треба було визначити, які IP генерують багато трафіку. Цією командою виводиться перші 10 IP адрес по кількості запитів.

awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -n 10

Я отримав таку видачу:

 118852 127.0.0.1
   7169 162.158.239.23
   7168 162.158.238.232
   6304 162.158.238.233
   5810 162.158.239.24
   5068 162.158.238.106
   4848 162.158.238.107
   3871 162.158.238.120
   3843 162.158.238.121
   2875 104.23.217.65

Ця інформація відображає локальні запити (127.0.0.1) – понад 118 тис. звернень, тобто хтось із самого сервера активно запитує сайт. Пул IP-адрес 162.158.x.x і 104.23.x.x – належить Cloudflare, як проксі, отже, реальний трафік прихований за Cloudflare і певні правила мого роутера не працюють.

В мене додатково на роутері вже налаштована гео-фільтрація трафіку, яка виключає будь який трафік з росії та білорусі.

Причетність віртуального хоста

Наступним етапом можна визначити який саме сайт або віртуальний хост грузить сервер. Для цього проаналізуємо перші 100 рядків логу, проте для покращеної статистики можна це число збільшити. Оскільки я цю атаку визначив на ранній стадії, то 100 рядків достатньо.

sudo tail -n 100 /var/log/apache2/access.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -20

Я отримав таку видачу:

29 /wp-login.php
22 /wp-admin/images/
7 /zabbix/zabbix.php?action=widget.item.view
4 /zabbix/zabbix.php?action=widget.svggraph.view
1 /wp-cron.php?doing_wp_cron=1748089832.8370869159698486328125
...

Можна знехтувати зверненнями до zabbix, адже основні запити йдуть на WordPress. Якщо підсумувати, то результат діагностики наступний:

  • apache2 – споживає більш за всізх ресурсу процесора
  • локальне IP та IP Cloudflare – має найбільшу кількість запитів
  • запити до сторінок WordPress

На першому етапі цих діагностичних даних виявилося достатньо для визначення подальших дій.

Безпекові дії на Cloudflare

Я не очікував, що Cloudflare настільки потужний інструмент, навіть в безкоштовній версії. За замовчанням багато функцій вимкнуто, і при певних атаках їх треба активувати вручну, а по завершенні атаки рекомендується деактивувати ці налаштування. Основним режимом є I’m under attack mode.

I’m under attack mode

I’m Under Attack Mode – це спеціальна функція Cloudflare, призначена для захисту веб сайтів від DDoS-атак, зокрема на рівні HTTP-флуду (наприклад, атаки через масове надсилання GET/POST-запитів). Основний принцип дії цього режиму наступний:

  • Перед кожним візитом до сайту відображається проміжна сторінка перевірки, яка триває кілька секунд.
  • Cloudflare виконує JavaScript-челендж — тобто змушує браузер «довести», що він не є ботом.
  • Якщо перевірка проходить успішно — користувач потрапляє на сайт.
  • Боти та прості скрипти, які не можуть виконати JS — автоматично відсіюються.

Цей режим можна включити в розділі Security -> Settings, там є перемикач I’m under attack mode, його треба активувати, і робота відбиття атаки почнеться негайно.

В новому інтерфейсі, цей пункт перенесли на вкладку All settings в самий низ, і назвали Security Level. При натисканні на Edit можна включити або виключити режим I’m under attack mode.

Після активації цього режиму на дашборді з’явиться повідомлення:

Under Attack Mode is active
Under Attack mode is used when a website is under a DDoS attack. All visitors will be shown an interstitial page for a short duration.

В такому режимі відбувається невеличка затримка із перевіркою, яка має такий вигляд:

В розділі Security -> Events можна побачити записи про ініціатора запитів, відображається доволі вичерпана та впорядкована інформація. В новому інтерфейсі розділ Events перенесено в меню Analytics та створено закладку Events де інформація так само структурована.

Custom та IP access rules

Враховуючи, що DDoS атака відбулася з однієї IP адреси, то можна для неї застосувати правила.

  • IP access rules – для блокування IP адрес поодиноко чи використовуючи маску підмережі
  • Custom rules – більш гнучке налаштування правил

Спочатку я вирішив створити правило яке б блокувало атакуючий сервер по IP адресі, для цього в новому інтерфейсі треба перейти в розділ Security -> Security rules -> IP access rules та натиснути на кнопку +Create. Для створення правила достатньо заповнити лише 4 поля:

  • IP, IP range, country name, or ASN – 194.67.196.50
  • Action – Block
  • Zone – This website
  • Notes – Fucking russian hacker

З самого початку я хотів заблокувати взагалі всю росію по геолокації, але в безкоштовному тарифному плані, на рівні IP access rules так реалізув не можна, після застосування цього правила я бачу помилку: Sorry, block by country is only available on the Enterprise plan.

Виявляється, в безкоштовній версії існує фільтр по геолокації, проте його можна налаштувати в розділі Custom rules.

  • Rule name (required) – Block_country_404
  • Field – Country
  • Operator – equals
  • Value – Russian Federation
  • Then take action – Block
  • Place at – First

Таким чином правило буде виглядати так

Звіти

В розділі Security -> Overview можна побачити графік співвідношення – обмеженого, обробленого Cloudflare та оброблено сервером трафіка, до загальної кількості запитів. При активній роботі Cloudflare, значення обмеження трафіку (Mitigated) буде збільшуватися, також буде збільшуватись кількість кешованих запитів, адже Cloudflare в такому режимі працює без прямого трафіку і має ряд обмежень, для запобігання хакерських дій, по типу підбору пароля брутфорсом.

На дашборді – Overview відображено багато корисних графіків. Я зробив кілька скріншотів, на початку атаки та під її завершення. Графік відображає останні 24 години активності, тому я наклав ці два графіки, щоб показати вам загальну картину активності. Червоним прямокутником я позначив діапазон роботи сервісу Cloudflare від початку до кінця.

Графіки доволі інформативні, а налаштування Cloudflare не викликає труднощів. Згідно із графіком атака тривала 17 годин від початку, а завдяки моїй пильності, на початку атаки, на 6й годині я застосував засоби захисту Cloudflare, та вже за 11 годин атака була припинена, думаю через її нераціональність для зловмисника.

Після завершення атаки я вимкнув режим I’m under attack mode та продовжую моніторинг активності сервера, щоб бути готовим в будь який час запобігти повторним викликам!

Висновки

Досвід боротьби з DDoS-атакою на власному сервері показав, що навіть з мінімальними ресурсами — Raspberry Pi, власний блог і безкоштовний тариф Cloudflare — можна ефективно захищатися від загроз, якщо мати базове розуміння роботи мережі, серверів і систем моніторингу.

Я переконався, що:

  • Превентивні дії важливі. Встановлення Cloudflare заздалегідь дозволило оперативно увімкнути захисні механізми.
  • Засоби моніторингу, такі як Zabbix, допомагають швидко виявити аномалії і локалізувати джерело проблеми.
  • Cloudflare виявився надзвичайно ефективним навіть у безкоштовному варіанті, зокрема завдяки режиму I’m Under Attack, який дозволяє відсіяти шкідливий трафік ще до потрапляння на сервер.
  • Відкритість до навчання та аналізу логів — ключ до швидкої реакції. Команди ps, awk, аналіз access.log допомогли не лише виявити джерело навантаження, а й зробити висновки щодо типу атаки.

Цей випадок підтвердив, що надійний захист — це не завжди дорога інфраструктура, а в першу чергу уважність, готовність до реагування та вміння працювати з доступними інструментами.

Мій блог залишився онлайн, і це найкращий показник ефективності застосованих рішень.

]]>
https://ostrich.kyiv.ua/uk/2025/05/25/cloudflare-%d1%80%d0%b5%d0%b0%d0%bb%d1%8c%d0%bd%d0%b8%d0%b9-%d0%b4%d0%be%d1%81%d0%b2%d1%96%d0%b4-%d0%b2%d1%96%d0%b4%d0%b1%d0%b8%d1%82%d1%82%d1%8f-ddos-%d0%b0%d1%82%d0%b0%d0%ba%d0%b8-%d0%b7-%d1%80/feed/ 0
Моніторинг друку HP LaserJet MFP M141w через SNMPv3 та Zabbix https://ostrich.kyiv.ua/uk/2025/04/30/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d0%b4%d1%80%d1%83%d0%ba%d1%83-hp-laserjet-mfp-m141w-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-snmpv3-%d1%82%d0%b0-zabbix/ https://ostrich.kyiv.ua/uk/2025/04/30/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d0%b4%d1%80%d1%83%d0%ba%d1%83-hp-laserjet-mfp-m141w-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-snmpv3-%d1%82%d0%b0-zabbix/#respond Wed, 30 Apr 2025 20:14:24 +0000 https://ostrich.kyiv.ua/?p=1070 Вступ

Я використовую багатофункціональний пристрій (БФП) HP LaserJet MFP M141w. Цей пристрій досить зручний для домашнього використання завдяки своїм компактним розмірам — його можна легко розмістити на тумбочці або на столі, де він займатиме мінімум місця порівняно з іншими моделями.

Нещодавно мені довелося багато друкувати, і я зацікавився, чи можна отримати звіт про використані ресурси. Базової інформації в додатку HP Smart не вистачає. Застосунок рекомендує перейти до розширених налаштувань:

«Ця функція недоступна для вибраного принтера. Щоб надрукувати звіти або переглянути інформацію про принтер, відкрийте Розширені налаштування або скористайтеся панеллю керування принтером».

Окей, спробуємо переглянути звіт через веб-інтерфейс принтера — для цього потрібна авторизація.

Порада: код (пароль) знаходиться під кришкою принтера, збоку, поруч із картриджем.

Звіт про використання

На головній сторінці, у вкладці Home, потрібно вибрати меню Supplies Status — там відображається загальна інформація про стан картриджа:

  • Status: Low
  • Approximate Pages Remaining: < 50
  • Pages Printed With This Supply: 376
  • Serial Number: 0100733310-2I29
  • Last Used Date: 20250428

Однак мені хочеться регулярно й автоматично моніторити використання ресурсу. У цьому допоможе Zabbix — система моніторингу ресурсів. Цей принтер підтримує сучасну версію SNMP – v3, тому потрібно налаштувати параметри на обох сторонах: HP і сервер Zabbix.

Налаштування SNMP на МФП

В розділі Networking вибрати SNMP. У вікні поставити галочку в пункті Disable SNMPv1/v2, щоб цей протокол відключити в цілому. Натомість поставити галочку в розділі SNMPv3 – Enable SNMPv3 та заповнити поля відповідно до їх призначення. Тут нема фіксованої інформації, ви можете надавати будь які паролі та логіни та імена користувача, важливо щоб вони потім в такому ж вигляді були внесені на сереврі заббікс.

Натискаємо кнопку Apply щоб дії вступили в силу.

Перевірка налаштувань SNMP

Щоб перевірити доступність Hewlett-Packard для Zabix, потрібно використовувати програми snmpget та snmpwalk. Встановіть їх одним пакетом. Виконайте наступну команду на сервері, де встановлено Zabix. У моєму випадку це все ще мій Raspberry Pi.

sudo apt-get install snmp

F після встановлення утиліти запустити вже саму команду:

snmpget -v3 -u ostrich -l authPriv \
  -a SHA1 -A <Your Authentication Protocol password> \
  -x AES-128 -X <Your Privacy Protocol password> \
  -n Jetdirect \
  192.168.99.216 .1.3.6.1.2.1.43.10.2.1.4.1.1

Результатом виконання цієї команди повинен бути схожий рядок:

iso.3.6.1.2.1.43.10.2.1.4.1.1 = Counter32: 687

Цей параметр називається prtMarkerLifeCount – його значення це кількість надрукованих аркушів за весь час роботи принтера, і в моєму випадку це 687 аркушів.

Створення нового Host у Zabbix

Щоб відстежувати активність, вам потрібно створити новий хост у Zabbix. Виконайте такі кроки:

  • Перейдіть Data collection меню
  • Виберіть Hosts підменю
  • Натисніть Create host кнопку

На вкладці Host заповніть наступну інформацію:

  • Host name: HP M141w
  • Host groups: вибрати із списку
  • Interfaces: вибрати SNMP та ввести IP адресу принтера, а порт 161 залишити без змін.

Цієї інформації для хоста недостатньо, адже коли він буде звертатися до принтера, йому необхідно буде пройти авторизацію. Параметри авторизації вносяться на вкладці Macros, як значення – параметр.

  • {$SNMPV3_CONTEXTNAME} – Jetdirect
  • {$SNMPV3_SECURITYNAME} – ostrich
  • {$SNMPV3_AUTH_PROTOCOL} – SHA1
  • {$SNMPV3_AUTH_PASSPHRASE} – <Your Authentication Protocol password>
  • {$SNMPV3_PRIV_PROTOCOL} – AES-128
  • {$SNMPV3_PRIV_PASSPHRASE} – <Your Privacy Protocol password>
  • {$SNMPV3_SECURITYLEVEL} – authPriv

Це виглядає так, як на скріншоті

Оскільки значення вже прописані, то можна повернутися на вкладку хоста і розкрити значення SNMP, в якому вибрати із списку SNMPv3. Миттєво відобразяться додаткові поля, які треба заповнити значеннями macro щоб на пряму не писати значення паролів.

Після збереження або оновлення інформації, в рядку хоста, в колонці Availability буде зелене значення SNMP, що свідчить про правильні налаштування заббікса.

Створення нового айтема для хосту HP M141w

Необхідно в розділі хостів клацнути на посилання items і створити новий айтемс. У з’явившомуся вікні треба ввести наступні дані:

  • Name: Printer Usage
  • Type: SNMP agent
  • Key: page.count.total
  • Host interface: should already be available
  • SNMP OID: .1.3.6.1.2.1.43.10.2.1.4.1.1
  • Units: pages

Після цього треба протестувати цей айтемс на очікуваний результат. Клацаємо на кнопку Test? всі необхідні значення підставляються з макроса автоматично, тому результат ми маємо очікуваний

Це означає, що щохвилини буде відбуватися запит щодо загальної кількості надрукованих сторінок, проте мета інша – отримувати значення, скільки і коли було надруковано аркушів. Таку функцію можна реалізувати через Preprocessing steps айтемса, як вираз чи умову.

Тож треба створити другий айтем на основі першого.

  • Name: Printed pages
  • Type: SNMP agent
  • SNMP OID: iso.3.6.1.2.1.43.10.2.1.4.1.1
  • Key: pagesPrinted.delta
  • Type of information: Numeric (unsigned)
  • Units: pages

Проте внести додатову зміну на вкладці Preprocessing

  • клацнути add
  • із випадаючого списку вибрати Simple change
  • та протестувати результат

Результат має бути 0 (нуль), оскільки між попередніми та поточними значеннями немає змін. Коли ви почнете друк, ви побачите різницю між старим та новим загальним значенням – це буде результат роздрукованих сторінок на поточний час, який буде фіксуватися на графіку.

Додавання віджетів до Dashboard

Я додав три віджети:

  • Graph – використовує Printed pages айтем
  • Item value – використовує Printed pages айтем
  • Item value – використовує Printer Usage айтем

Як фінальний результат в мене вийшло доволі привабливо організувати блок моніторингу друку принтера на дашборді.

Висновок

Моніторинг друку через Zabbix + SNMPv3 – це надійний спосіб відстеження роботи принтера у домашній або офісній мережі. Модель HP M141w підтримує сучасний протокол SNMPv3, який забезпечує безпечну передачу даних. Завдяки налаштуванню макросів і елементів даних у Zabbix, можна автоматизувати збір статистики друку та виводити зручні звіти – наприклад, кількість надрукованих сторінок за день, тиждень або місяць. Такий підхід корисний як для контролю витрат паперу, так і для аналізу навантаження на принтер.

]]>
https://ostrich.kyiv.ua/uk/2025/04/30/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d0%b4%d1%80%d1%83%d0%ba%d1%83-hp-laserjet-mfp-m141w-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-snmpv3-%d1%82%d0%b0-zabbix/feed/ 0
Zabbix: 24 годинний формат часу https://ostrich.kyiv.ua/uk/2025/04/18/zabbix-24-%d0%b3%d0%be%d0%b4%d0%b8%d0%bd%d0%bd%d0%b8%d0%b9-%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82-%d1%87%d0%b0%d1%81%d1%83/ https://ostrich.kyiv.ua/uk/2025/04/18/zabbix-24-%d0%b3%d0%be%d0%b4%d0%b8%d0%bd%d0%bd%d0%b8%d0%b9-%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82-%d1%87%d0%b0%d1%81%d1%83/#respond Fri, 18 Apr 2025 05:46:35 +0000 https://ostrich.kyiv.ua/?p=953 Вступ

Zabbix — це потужний інструмент моніторингу, який дозволяє в реальному часі контролювати стан серверів, мереж, додатків та інших IT-ресурсів. Однак, при базовій інсталяції, Zabbix використовує американські локалі (English US), що означає відображення часу у 12-годинному форматі (AM/PM). Для користувачів, які звикли до 24-годинного формату, це може бути незручним або викликати непорозуміння при читанні графіків. У цій статті я покажу, як змінити формат часу в інтерфейсі Zabbix з 12-годинного на 24-годинний за допомогою зміни локалі системи на британську (en_GB.UTF-8), а також поділюся практичними порадами, які можуть знадобитися під час цього процесу.

Визначення поточних налаштувань

Для визначення поточних налаштувань мови, треба перейти в розділ Administration – General і на сторінці GUI в полі Default language буде відображена поточна мова інтерфейсу. Також користувач побачить, повідомлення: You are not able to choose some of the languages, because locales for them are not installed on the web server.

Що свідчить про необхідність налаштування локалей на сервері.

Налаштування локалі

За відображення поточної локалі відповідає команда лінукса:

locale -a

Виконавши цю команду ми отримуємо результат:

C  
C.utf8  
en_US.utf8  
POSIX

Тобто локаль сервера налаштована на English (US). Для того щоб додати мову необхідно переналаштувати локаль, для цього треба виконати команду:

sudo dpkg-reconfigure locales

Відкриється графічне вікно, де за допомогою клавіатури в списку треба червоний курсор поставити навпроти EN_GB. UTF-8 UTF-8 і позначити цей пункт клацнувши на пробліл на клавіатурі. Натисканням кнопки таб вибрати ОК і натиснути ентер, щоб перейти до наступного розділу налаштувань.

Тепер треба визначити мову за замовчанням, я також виберу EN_GB. UTF-8 та підтверджу вибір.

Вивід консолі після збереження змін. Локаль буде перегенеровано, після цього можна буде перевірити результат знову виконавши команду locale -a

Generating locales (this might take a while)...
  en_GB.UTF-8... done
  en_US.UTF-8... done
Generation complete.

Далі необхідно перезавантажити вебсервер.

sudo systemctl restart apache2

Важливо: мова English (en_GB) стане активною, проте це не вплине на час який відображається під графіками.

 Необхідно змінити локаль в файлі:

sudo nano /etc/default/locale

Результат повинен виглядати так:

LANG=en_GB.UTF-8  
LC_ALL=en_GB.UTF-8  
LANGUAGE=en_GB.UTF-8

Після цього необхідно перезавантажити сам сервер, а моєму випадку мою распбері пай.

sudo reboot

Після перезавантаження Zabbix почне відображати час у 24-годинному форматі на графіках.

Висновок

Налаштування локалі сервера має безпосередній вплив на вигляд і зручність користування системами моніторингу, зокрема Zabbix. Як ми побачили, лише зміна мови в інтерфейсі не гарантує переходу на 24-годинний формат часу. Важливо правильно налаштувати локалі на сервері, зокрема вказати їх у файлі /etc/default/locale, а також не забути перезавантажити систему. Після виконання цих кроків графіки Zabbix почнуть відображати час у звичному для європейських користувачів форматі. Це просте, але корисне покращення, що робить роботу з дашбордом значно зручнішою та інтуїтивно зрозумілою.

]]>
https://ostrich.kyiv.ua/uk/2025/04/18/zabbix-24-%d0%b3%d0%be%d0%b4%d0%b8%d0%bd%d0%bd%d0%b8%d0%b9-%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82-%d1%87%d0%b0%d1%81%d1%83/feed/ 0
Двофакторна аутентифікація MFA в Zabbix https://ostrich.kyiv.ua/uk/2025/04/17/%d0%b4%d0%b2%d0%be%d1%84%d0%b0%d0%ba%d1%82%d0%be%d1%80%d0%bd%d0%b0-%d0%b0%d1%83%d1%82%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d1%96%d0%ba%d0%b0%d1%86%d1%96%d1%8e-mfa-%d0%b2-zabbix/ https://ostrich.kyiv.ua/uk/2025/04/17/%d0%b4%d0%b2%d0%be%d1%84%d0%b0%d0%ba%d1%82%d0%be%d1%80%d0%bd%d0%b0-%d0%b0%d1%83%d1%82%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d1%96%d0%ba%d0%b0%d1%86%d1%96%d1%8e-mfa-%d0%b2-zabbix/#respond Thu, 17 Apr 2025 09:33:48 +0000 https://ostrich.kyiv.ua/?p=904 Вступ

У сучасному світі, де кібератаки стають дедалі витонченішими, безпека облікових записів — критично важлива. Одним із найбільш ефективних методів захисту є багатофакторна аутентифікація (Multi-factor Authentication, MFA). Вона додає ще один рівень безпеки до звичайного входу за допомогою логіна і пароля.

Zabbix, популярна система моніторингу, підтримує MFA з використанням TOTP (Time-based One-Time Password). У цій статті розглянемо, як увімкнути MFA у Zabbix, щоб підвищити безпеку вашого середовища моніторингу.

Активація глобальних налаштувань MFA

Для початку необхідно увійти до Zabbix під обліковим записом супер-адміністратора, адже зміни глобальних налаштувань доступні лише йому.

  1. Перейдіть до меню Users → Authentication.
  2. Відкрийте вкладку MFA settings.
  3. Активуйте опцію Enable multi-factor authentication, поставивши відповідну галочку.

Це дозволить Zabbix використовувати багатофакторну аутентифікацію для користувачів.

Для продавження, необхідно встановити чекбокс та додати метод

Додавання методу аутентифікації

Після активації MFA, необхідно додати метод, за яким Zabbix буде обробляти запити авторизації.

  • Натисніть кнопку Add у розділі Methods.
  • У вікні виберіть:
    • Type: TOTP (Time-based One-Time Password)
    • Name: Zabbix RPI — ця назва буде відображатись у вашому додатку аутентифікації (наприклад, Google Authenticator або Authy)
    • Hash function: SHA-256
    • Code length: залиште значення 6 — це стандартна довжина для одноразових кодів

Примітка: Після додавання цього методу, користувачі, які матимуть доступ до MFA, зможуть налаштувати свої мобільні додатки для генерації кодів.

В цьому випадку користувачів ще нема. Необхідно додати групу та долучити в цю групу користувачів, як описано далі.

Створення групи користувачів для MFA

У Zabbix зручно застосовувати політику MFA не до кожного користувача окремо, а до групи. Це дозволяє легко керувати тим, хто має використовувати двофакторну аутентифікацію.

Налаштування групи:

  1. Перейдіть до Users → User groups.
  2. Створіть нову групу з такими параметрами:
    • Group name: TOTP group
    • Users: додайте користувача Admin (або будь-кого, кому потрібно активувати MFA)
    • Multi-factor authentication: виберіть створений раніше метод (Zabbix TOTP), якщо він не встановлений за замовчуванням

Тепер всі користувачі в цій групі повинні самостійно налаштувати MFA у своїх профілях — наприклад, відсканувати QR-код у мобільному додатку.

Важливо: налаштування MFA застосовуються на рівні групи, а не конкретного користувача. Тому важливо правильно додати користувачів до потрібної групи.

Перевірка результату

Щоб перевірити як працює цей сервіс, необхідно вийти з облікового запису та знову зайти, буде проінійоване вікно, яке запропонує сторити код.

Мій андроїд додаток Google Google Authenticator створив такий запис.

Висновок

Увімкнення багатофакторної аутентифікації — це один із найпростіших і найефективніших способів захистити вашу систему моніторингу Zabbix від несанкціонованого доступу. З використанням TOTP і політик на рівні груп — налаштування займає лише кілька хвилин, але суттєво підвищує рівень безпеки.

]]>
https://ostrich.kyiv.ua/uk/2025/04/17/%d0%b4%d0%b2%d0%be%d1%84%d0%b0%d0%ba%d1%82%d0%be%d1%80%d0%bd%d0%b0-%d0%b0%d1%83%d1%82%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d1%96%d0%ba%d0%b0%d1%86%d1%96%d1%8e-mfa-%d0%b2-zabbix/feed/ 0
Як обмежити доступ до Zabbix лише з локальної мережі через Apache https://ostrich.kyiv.ua/uk/2025/04/16/%d1%8f%d0%ba-%d0%be%d0%b1%d0%bc%d0%b5%d0%b6%d0%b8%d1%82%d0%b8-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf-%d0%b4%d0%be-zabbix-%d0%bb%d0%b8%d1%88%d0%b5-%d0%b7-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d0%be/ https://ostrich.kyiv.ua/uk/2025/04/16/%d1%8f%d0%ba-%d0%be%d0%b1%d0%bc%d0%b5%d0%b6%d0%b8%d1%82%d0%b8-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf-%d0%b4%d0%be-zabbix-%d0%bb%d0%b8%d1%88%d0%b5-%d0%b7-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d0%be/#respond Wed, 16 Apr 2025 09:48:31 +0000 https://ostrich.kyiv.ua/?p=939 Вступ

Zabbix — це потужна система моніторингу, яка часто використовується для відстеження стану серверів, мережевого обладнання та сервісів. Проте, після встановлення Zabbix веб-інтерфейс стає доступним не лише локально, але й через інтернет, що може становити загрозу безпеці. У цій статті ми розглянемо, як обмежити доступ до веб-інтерфейсу Zabbix тільки з локальної мережі, використовуючи можливості веб-сервера Apache.

У мене є цей домен і я маю доступ до інтерфейсу адміністратора Zabbix через інтернет.

Основна частина

Zabbix зазвичай інтегрується в Apache через файл конфігурації /etc/apache2/conf-enabled/zabbix.conf, де прописано, з якої директорії завантажуються веб-ресурси:

<Directory "/usr/share/zabbix/ui">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    ...
</Directory>

Нас цікавить блок <Directory "/usr/share/zabbix/ui">, у якому потрібно змінити правила доступу.

Ось як має виглядати оновлений блок:

<Directory "/usr/share/zabbix/ui">
    Options FollowSymLinks
    AllowOverride None
    Require ip 192.168.99.0/24
    Require all denied
</Directory>

Це означає:

  • Дозволити доступ тільки з IP-адрес у підмережі 192.168.99.0/24
  • Заборонити усім іншим користувачам

Після редагування — збережіть файл і застосуйте зміни:

sudo systemctl reload apache2

Verifying the Changes

Спробуйте відкрити Zabbix:

  • З локальної мережі: сторінка повинна відкриватися.
  • З інтернету (через домен): ви отримаєте помилку 403 Forbidden.

Це означає, що Apache успішно блокує зовнішній доступ до адмінки.

Висновок

Забезпечення безпеки Zabbix є важливою частиною адміністрування системи моніторингу. Просте обмеження доступу за IP-адресою дозволяє значно зменшити ризики несанкціонованого доступу до веб-інтерфейсу. Такий підхід підходить для приватних середовищ і лабораторій, де Zabbix не повинен бути доступним ззовні.

]]>
https://ostrich.kyiv.ua/uk/2025/04/16/%d1%8f%d0%ba-%d0%be%d0%b1%d0%bc%d0%b5%d0%b6%d0%b8%d1%82%d0%b8-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf-%d0%b4%d0%be-zabbix-%d0%bb%d0%b8%d1%88%d0%b5-%d0%b7-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d0%be/feed/ 0
Моніторинг температури Raspberry Pi за допомогою Zabbix https://ostrich.kyiv.ua/uk/2025/04/14/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d1%82%d0%b5%d0%bc%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d1%83%d1%80%d0%b8-raspberry-pi-%d0%b7%d0%b0-%d0%b4%d0%be%d0%bf%d0%be%d0%bc%d0%be%d0%b3/ https://ostrich.kyiv.ua/uk/2025/04/14/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d1%82%d0%b5%d0%bc%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d1%83%d1%80%d0%b8-raspberry-pi-%d0%b7%d0%b0-%d0%b4%d0%be%d0%bf%d0%be%d0%bc%d0%be%d0%b3/#respond Mon, 14 Apr 2025 19:11:34 +0000 https://ostrich.kyiv.ua/?p=884 Вступ

У світі IoT та домашніх серверів Raspberry Pi є незамінним помічником. Проте для забезпечення його стабільної роботи важливо постійно контролювати ключові параметри, зокрема температуру процесора. У цій статті я покажу, як за допомогою Zabbix налаштувати моніторинг температури CPU Raspberry Pi – від прав доступу до створення графіка на дашборді. Цей гайд допоможе вам не лише дізнатися поточну температуру, але й вчасно отримувати сповіщення у випадку перегріву.

В мене Zabbix встановлений на Raspberry Pi, тому для неї він виступає в ролі як сервера так і клієнта, що трошки полегшує налаштування.

Налаштування прав доступа для Zabbix агента

Щоб уникнути помилок при зборі температури необхідно додатково виконати наступні дії, вони залежать від певних помилок, з якими я стикався під час налаштування.

Try creating a device file with: sudo mknod /dev/vcio c 100 0

Оскільки девайс /dev/vcio існує, йому просто недостатньо прав для коректної роботи. Необхідно змінити дозвіл, щоб Zabbix міг використовувати /dev/vcio

sudo chgrp video /dev/vcio
sudo chmod 660 /dev/vcio

Також треба додати користувача zabbix до групи video, щоб мати доступ

sudo usermod -aG video zabbix

Щоб зміни вступили в силу, треба перезавантажити агента

sudo systemctl restart zabbix-agent

Тепер можна перейти до користувацьких налаштувань

Налаштування відстеження температури

Для того, щоб агент розумів як і звідки брати значення температури, в конфігурації агента необхідно прописати користувацький параметр за яким агент отримує оброблену інформацію про поточну температуру.

sudo nano /etc/zabbix/zabbix_agentd.conf

В кінці файлу додайте рядок:

UserParameter=system.cpu.temp,vcgencmd measure_temp | sed -n "s/temp=\([0-9]*\.[0-9]*\)[^0-9]*$/\1/p"

Детальний опис цієї команди:

  • UserParameter – це назва функції для користувацького ключа
  • system.cpu.temp – це ключ, який ми будемо використовувати
  • vcgencmd measure_temp – Це стандартна команда Raspberry Pi, яка повертає температуру CPU у форматі: temp=45.0’C
  • s/temp=\([0-9]*\.[0-9]*\)[^0-9]*$/\1/p – це регулярний вираз який прибирає зайві символи і залишає числове значення.

У результаті команда повертає тільки число, в моєму випадку це, 63.3. Для того, щоб зміни вступили в силу, необхідно перезавантажити сервіс забікс аггента

sudo systemctl restart zabbix-agent

Таким чином на стороні сервера все налаштовано, переходимо до налаштувань забікса через веб.

Додавання елемента (item) у Zabbix

У веб-інтерфейсі Zabbix відкрий: Data collection → Hosts → Zabbix server → Items → Create item

Заповнюються такі поля:

  • Name: CPU Temperature
  • Type: Zabbix agent
  • Key: system.cpu.temp
  • Type of information: Numeric (float)
  • Units: °C

Щоб впевнитися, що все правильно заповнено необхідно протестувати роботу цього айтемса, клацаємо на кнопку Test. У вікні Test item клацаємо Get value and test і отримуємо результат.

Зберігаємо цей Айтем клацнувши на Add або Update

Налаштування тригера для сповіщення

Для того, щоб я отримував сповіщення про підвищення температури, наприклад до бажаного значення в 70 градусів, потрібно створитти тригер. Він буде порівнювати поточну температуру із критичною, і якщо така подія відбудеться то на дашборді з’явиться нотифікація.

Перейди до: Data collection → Hosts → Zabbix server → Triggers → Create trigger

У вікні треба заповнити поля:

  • Name: CPU Temperature is too high
  • Event name: CPU Temperature is too high
  • Severity: Warning
  • Expression: last(/Zabbix server/system.cpu.temp)>=70

або клацнути на кнопку Add і через конструктор виразу вибрати необхідні параметри як зображено на скріншоті.

Це означає, що якщо температура перевищить 70°C, тригер спрацює.

Натисни Add, щоб зберегти цей тригер.

Віджет графа на дашборді

Було б візуально привабливо спостерігати за графіком температури пристрою в залежності від умов використання.

Для цього треба перейти на дашборд, натиснути “edit dashboard” і визначити місце нового графіку. Відкриється вікно з налаштуваннями, треба вибрати:

  • Type: Graph
  • Name: RPI Temp C
  • Host patterns: Zabbix Server
  • Item patterns: CPU Temperature

Додати цей віджет клацнувши на кнопку Add.

Таким чином дашборд заббікса буде відстежувати температуру распбері пай та візуально ілюструвати графік на дашборді.

Далі можна змінити розмір та розмістити цей віджет як буде зручно. Після цього в правому верхньому куті підтвердити збереження дашборду клацнувши на кнопку Save changes.

Висновки

Як бачимо, налаштування Zabbix для моніторингу температури CPU на Raspberry Pi не є складним, але вимагає уваги до деталей, особливо при роботі з правами доступу. Завдяки кастомному параметру, тригеру та візуалізації на дашборді, ви отримаєте потужний інструмент для контролю стану вашого пристрою. Це особливо корисно для довготривалих проєктів, серверних завдань або просто для ентузіастів, що бажають знати більше про роботу свого Raspberry Pi.

]]>
https://ostrich.kyiv.ua/uk/2025/04/14/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d1%82%d0%b5%d0%bc%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d1%83%d1%80%d0%b8-raspberry-pi-%d0%b7%d0%b0-%d0%b4%d0%be%d0%bf%d0%be%d0%bc%d0%be%d0%b3/feed/ 0
Моніторинг Postfix активності в Zabbix https://ostrich.kyiv.ua/uk/2025/03/30/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-postfix-%d0%b0%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d1%81%d1%82%d1%96-%d0%b2-zabbix/ https://ostrich.kyiv.ua/uk/2025/03/30/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-postfix-%d0%b0%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d1%81%d1%82%d1%96-%d0%b2-zabbix/#respond Sun, 30 Mar 2025 18:05:06 +0000 https://ostrich.kyiv.ua/?p=800 Вступ

Після установки та налаштування поштового серверу Postfix, виникла необхідність відстежувати різні метрики цього сервера за допомогою Zabbix та відображати діаграму для візуального моніторингу.

Monitoring Postfix activity by Zabbix
Monitoring Postfix activity by Zabbix

Визначення типу відстеження

Для початку необхідно визначити що саме необхідно відстежувати, який стан відстеження вважається нормою, а який вже відхиленням. Мені цікаві дві метрики – статистика черги листів та моніторинг кількості процесів, про які поговоримо детальніше.

Статистика черги листів

Коли поштовий сервер працює коректно, то зазвичай листи обробляються миттєво, і черга не створюється, або це миттєвий процес, проте якщо сервер стає недоступним, то черга накопичується, і це є ознакою проблеми в роботі поштового сервера. При коректній роботі сервера це значення дорівнює нулю, якщо значення більше нуля, то на це вже потрібно звернути увагу.

Моніторинг кількості процесів

при коректній роботі в режимі простою сервера зазвичай запущено 5 процесів:

  • master – головний процес Postfix (управляє всіма іншими процесами).
  • qmgr – керує поштовою чергою, відповідає за доставку листів.
  • tlsmgr – керує TLS-сесіями для шифрування (якщо використовується).
  • pickup – обробляє нові повідомлення, що надходять до черги.
  • showq – показує стан поштової черги.

Під час аутентифікації, відправки або надсилання пошти кількість процесів збільшується до 9 або 10. Таким чином, якщо відбувається аутентифікація, навіть хибна, то це фіксується, і адміністратор може прийняти рішення щодо подальших дій щодо усунення атаки на сервер.ses to 9 or 10.

Підключення Postfix до Zabbix

Оскільки на сервері вже встановлено Zabbix Agent, то налаштування будуть простими, через файл конфігурації. Для цього необхідно в файлі конфігурації Zabbix Agent прописати параметри користувача для наших метрик.

Відкрити файл конфігурації, який зазвичай знаходиться за наступним шляхом:

sudo nano /etc/zabbix/zabbix_agentd.conf

Додати наступні рядки в кінець файлу:

# Settings for Postfix:
UserParameter=postfix.queue_size,postqueue -p | tail -n 1 | awk '{print ($5+0)}'
UserParameter=postfix.active_processes,ps aux | grep "[p]ostfix" | wc -l

Перезавантажити zabbix-agent:

sudo systemctl restart zabbix-agent

Створення Items у Zabbix

В меню Data Collection, вибрати підменю Hosts і в списку хостів клацнути на Items, а вже у вікні списку Items натиснути на кнопку Create item.

Для відстеження активних процесів Postfix (postfix.active_processes)

На вкладці Items:

  • Name: Postfix Active Processes
  • Type: Zabbix Agent
  • Key: postfix.active_processes
  • Type of Information: Numeric (unsigned)
  • Host interface: 127.0.0.1:10050
  • Update interval: 1m
  • Description: Postfix Active Processes
  • Enabled: checkbox

На вкладці Tags:

  • Name: Mail
  • Value: Postfix

Для перевірки коректності роботи айтемса необхідно протестувати його роботу та отримати бажане значення. Для цього натиснути кнопку TEST та GET VALUE як зображено на скріншоті

Так само створюємо другий айтемс для відстеження черги листів (postfix.queue_size), різниця буде виключно в ключі Key: postfix.queue_size, так само необхідно протестувати створений айтемс і отримати очікуваний результат – 0.

Перевірка збору даних

Через 1 хвилину Postfix починає збирати дані. Для того, щоб переглянути їх, необхідно перейти в меню Monitoring та вибрати Latest data. В фільтрі name вписати Postfix Active Processes. На сторінці Latest data буде колонка Last check, в ній повинно бути очікуване значення, в моєму випадку 5.

Створення графіку на робочому столі

Щоб графік відображався на дашборді, необхідно клацнути на кнопку ADD, автоматично відкриється вікно створення нового віджету, де необхідно заповнити наступні поля такими значеннями:

  • Type: Graph
  • Name: Mail
  • Refresh interval: Default 1m
  • Data set: select the host and items

Інші характеристики вкладки Data set, такі як колір, прозорість налаштовуються на ваш розсуд.

Визначення атаки на сервер та її усунення

Я регулярно стежу за активністю поштового сервера, і на дашборді, на графіку побачив доволі високу активність. Збільшивши діапазон дати до 2-х днів, я визначив дату та час початку такої атаки:

Подивившись логи Postfix за два останні дні, я визначив, що зловмисник брутфорсом підбирає логін для аутентифікації на моєму поштовому сервері, звісно це завершується із невдачею, проте на це витрачаються ресурси сервера:

sudo tail -f /var/log/mail.log
Mar 30 13:31:51 mail postfix/smtpd[1230298]: connect from unknown[196.251.92.50]
Mar 30 13:31:55 mail postfix/smtpd[1230298]: warning: unknown[196.251.92.50]: SASL LOGIN authentication failed: (reason unavailable), sasl_username=admin2
Mar 30 13:31:55 mail postfix/smtpd[1230298]: disconnect from unknown[196.251.92.50] ehlo=1 auth=0/1 quit=1 commands=2/3

Mar 30 13:35:13 mail postfix/smtpd[1230766]: connect from unknown[196.251.92.50]
Mar 30 13:35:17 mail postfix/smtpd[1230766]: warning: unknown[196.251.92.50]: SASL LOGIN authentication failed: (reason unavailable), sasl_username=back-up
Mar 30 13:35:17 mail postfix/smtpd[1230766]: disconnect from unknown[196.251.92.50] ehlo=1 auth=0/1 rset=1 quit=1 commands=3/4 

Для усунення цього інциденту я в налаштуваннях файерволу роутера заблокував вказану адресу і застосував правило. Після цього активність сервера повернулася в нормальний режим:

Висновки

Моніторинг активності Postfix за допомогою Zabbix дозволяє своєчасно виявляти проблеми в роботі поштового сервера, такі як накопичення черги листів або підозріла активність. Завдяки налаштуванню метрик для контролю черги та кількості активних процесів, адміністратор отримує можливість швидко реагувати на потенційні загрози та збої у роботі системи.

У процесі експлуатації сервера моніторинг також дозволяє виявляти спроби несанкціонованого доступу, як-от атаки методом перебору паролів. Використовуючи аналітику графіків і логи системи, можна оперативно вживати заходи для захисту сервера, такі як блокування зловмисних IP-адрес. Це значно підвищує рівень безпеки поштової інфраструктури та забезпечує стабільну роботу сервісу.

]]>
https://ostrich.kyiv.ua/uk/2025/03/30/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-postfix-%d0%b0%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d1%81%d1%82%d1%96-%d0%b2-zabbix/feed/ 0