+38 063 731 76 76; +38 096 446 96 48 info@астериск.укр

Моніторинг версії медок за допомогою zabbix.

Налаштування моніторингу версії медок за допомогою zabbix, або як досягти автоматизації 🙂

Почну з того, що на превеликий жаль медок не розуміє необхідності в подібному функціоналі, напевно через те що думає що їх продукт ідеальний, і процес авто оновлення теж, але в мене в підпорядкуванні більш як 100 серверів з медком, термінальних серверів, де також працює і 1С або перевзутий BAS і “медова стиковка”, і для того, щоб автоматичне оновлення не спрацювало достатньо одного запущеного екземпляра 1С (BAS), тому довелось вигадувати, отже що ми маємо:
1. На сайті медка на сторінці /download в нас є остання версія, яку можно легко отримати, і я думав оперувати нею, але, на сервері медка я не можу ввести якусь команду, чи бодай якось отримати встановлену версію, щоб хоч якось порівняти, але там є дата виходу останнього оновлення, тому будемо оперувати цим значенням, тільки його треба буде дещо відкорегувати )
2. На сервері Zabbix створимо шаблон який потім присвоїмо серверам медка
2. На сервері під час встановлення оновлення в нас змінюється дата зміни файлу, тому підемо в забікс додавати елемент данних:
vfs.file.time[“C:\Program Files\Medoc\MedocSRV\ezvit.exe”,modify]
Він дасть нам дату зміни файла ezvit.exe в unix форматі


3. На сервері zabbix додамо скрипт, який вичитає з сайту дату останньої версії та переформатує її в unix формат, створимо файл check_medoc_date.sh в каталозі /usr/lib/zabbix/externalscripts/ з наступним вмістом: (не забудьте chmod +x /usr/lib/zabbix/externalscripts/check_medoc_date.sh)
!/bin/bash
current_date=$(curl -s https://medoc.ua/download | sed -n ‘s/.class=”date”>([^<])<.*/\1/p’ | head -n 1)
date –date=”$(echo “$current_date” | awk -F. ‘{ print $3″-“$2”-“$1 }’)” +’%s’
4. Додамо елемент данних для цього скрипта


Отже наш сервер знає коли вийшла остання версія і коли ми встановили оновлення, тому додаємо наступний тригер для визначення необхідності оновлення:
(last(/Medoc/check_medoc_date.sh) – last(/Medoc/vfs.file.time[“C:\Program Files\Medoc\MedocSRV\ezvit.exe”,modify])) > 86400

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

65 − = 57