Что может zabbix для windows

И есть ли в этом смысл?

Вот так, при помощи нехитрых манипуляций, можно смотреть красивые графики про десяток машин и один сервер. Но зачем?..

Вот так, при помощи нехитрых манипуляций, можно смотреть красивые графики про десяток машин и один сервер. Но зачем?..

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

Мониторинг вообще штука полезная, бесспорно. У меня лично в какой-то период возникло сразу несколько задач:

  1. Круглосуточно и непрерывно мониторить одну специфическую железку по ряду параметров;

  2. Мониторить у рабочих станций информацию о температурах, ЦП в первую очередь;

  3. Всякие мелочи в связи с широким внедрением удалёнки: количество подключений по VPN, общее состояние дополнительных виртуальных машин.

Подробнее про локальные задачи:

  1. Надо было оценить и наглядно представить данные об интернет-канале. Канал на тот момент представлял собой 4G-роутер Huawei. Это устройство было последним, но далеко не первым в огромном количестве плясок с бубном в попытках избавиться от разного рода нестабильностей. Забегая вперёд: забирать с него данные напрямую о качестве сигнала более-менее стандартными средствами оказалось невозможно, и даже добраться до этих данных — отдельный квест. Пришлось городить дендрофекальную конструкцию, которая, на удивление стабильно, и стала в итоге поставлять данные. Данные в динамике и в графическом представлении оказались настолько неутешительными, что позволили убедить всех причастных таки поменять канал, даже и на более дорогой;

  2. Данные о температуре процессора дают сразу несколько линий: можно обнаружить шифровальщик в процессе работы, наглядно сделать вывод о недостаточной мощности рабочей станции, найти повод провести плановую чистку, узнать о нарушении условий эксплуатации. Последний пункт особенно хорош: множество отказов оборудования и BSOD’ов в итоге нашли причину в «я ставлю обогреватель под стол, ну и свой баул, ну да, прям к этой решётке. А что? А я канпуктер развернула, а то неудобно»;

  3. Интерфейс того же OpenVPN… ну, он в общем даже и не интерфейс и оставляет желать любого другого. Отдельная история.

Как большой любитель велосипедить всё подряд, сначала я решил свелосипедить и это. Уже валялись под рукой всякие скрипты по сбору статистки, и html проекты с графиками на js, и какие-то тестовые БД… Но тут сработала жадность (и лень, чоужтам). А чего это, подумал я, самому опять корячиться, если в том же Zabbix уже куча всяких шаблонов, и помимо задач из списка можно будет видеть много чего ещё? Да и он бесплатный к тому же. Всего-то делов, виртуалку поднять да клиенты централизованно расставить. Потренируюсь с ним, опять же, он много где используется.

Итак, нам понадобятся:

  1. Виртуальная машина или физический хост. Zabbix нетребователен к ресурсам при небольшом количестве хостов на мониторинге: мне хватило одного виртуального процессора на 2ГГц и 4 Гб RAM за глаза;

  2. Любой инструмент для автоматического раскидывания zabbix-agent. При некотором скилле это можно делать даже через оригинальный WSUS, или просто батником с psexec, вариантов много. Также желательно запилить предварительно сконфигурированный инсталлятор агента — об этом ниже;

  3. Много желания пилить напильником. Скажу честно и сразу: из первоначального списка 3 из 3 реализовывалось руками на местности. Zabbix стандартной комплектации в такое не может.

У Zabbix много вариантов установки. В моём случае (я начинал с 4 LTS) сработала только установка руками в чистую, из собственного образа, OC в виртуальной машине на Hyper-V. Так что, коли не получится с первого раза, — не сдавайтесь, пробуйте. Саму процедуру подробнее описывать не буду, есть куча статей и хороший официальный мануал.

Вот так красиво это выглядит, когда применяется по назначению. Автор: Dotneft - собственная работа, CC BY-SA 4.0 https://commons.wikimedia.org/w/index.php?curid=73459928

Вот так красиво это выглядит, когда применяется по назначению. Автор: Dotneft — собственная работа, CC BY-SA 4.0 https://commons.wikimedia.org/w/index.php?curid=73459928

Про формирование инсталлятора агента: один из самых простых способов — использовать утилиты наподобие 7zfx Builder . Нужно будет подготовить:

  • файл zabbix_agentd.conf ;

  • файлы сторонних приложений и скриптов, используемых в userParameters (об этом ниже) ;

  • скрипт инсталлятора с кодом наподобие этого:

SETLOCAL ENABLEDELAYEDEXPANSION 
SET INSTDR=C:\Zabbix\Agent 
SET IP=192.168.100.10 
set ip_address_string="IPv4-адрес"

for /f "usebackq tokens=2 delims=:" %%F in (ipconfig ^| findstr /c:%ip_address_string%) do SET IP=%%F 
SET IP=%IP: =% 
ECHO SourceIP=%IP%>> "%INSTDR%\conf\zabbix_agentd.conf" 
ECHO ListenIP=%IP%>> "%INSTDR%\conf\zabbix_agentd.conf" 
ECHO Hostname=%COMPUTERNAME%>> "%INSTDR%\conf\zabbix_agentd.conf"

"%INSTDR%\bin\zabbix_agentd.exe" -c "%INSTDR%\conf\zabbix_agentd.conf" -i 
net start "Zabbix Agent" 
ENDLOCAL

Кстати, об IP. Адрес в Zabbix является уникальным идентификатором, так что при «свободном» DHCP нужно будет настроить привязки. Впрочем, это и так хорошая практика.

Также могу порекомендовать добавить в инсталлятор следующий код:

sc failure "Zabbix Agent" reset= 30 actions= restart/60000

Как и многие сервисы, Zabbix agent под Windows при загрузке ОС стартует раньше, чем некоторые сетевые адаптеры. Из-за этого агент не может увидеть IP, к которому должен быть привязан, и останавливает службу. В оригинальном дистрибутиве при установке настроек перезапуска нет.

После этого добавляем хосты. Не забудьте выбрать Template – OS Windows. Если сервер не видит клиента — проверяем:

  1. IP-адрес;

  2. файрвол на клиенте;

  3. работу службы на клиенте — смотрим zabbix_agentd.log, он вполне информативный.

По моему опыту, сервер и агенты Zabbix очень стабильны. На сервере, возможно, придётся расширить пул памяти по active checks (уведомление о необходимости такого действия появляется в дашборде), на клиентах донастроить упомянутые выше нюансы с запуском службы, а также, при наличии UserParameters, донастроить параметр timeout (пример будет ниже).

Что видно сразу, без настроек?

Сразу видно, что Zabbix заточен под другое :) Но и об обычных рабочих станциях в конфигурации «из коробки» можно узнать много: идёт мониторинг оперативной памяти и SWAP, места на жёстких дисках, загрузки ЦП и сетевых адаптеров; будут предупреждения о том, что клиент давно не подключался или недавно перезагружен; агент автоматически создаёт список служб и параметров их работы, и сгенерирует оповещение о «необычном» поведении. Практически из коробки (со скачиванием доп. template’ов с офсайта и небольшой донастройкой) работает всё, что по SNMP: принтеры и МФУ, управляемые свитчи, всякая специфическая мелочь. Иметь алерты по тем же офисным принтерам в едином окне очень удобно.

В общем-то, очень неплохо, но…

Что доделывать?

Оооо. Ну, хотел повелосипедить, так это всегда пожалуйста. Прежде всего, нет алертов на события типа «критические» из системного лога Windows, при том, что механизм доступа к логам Windows встроенный, а не внешний, как Zabbix agent active. Странно, ну штош. Всё придётся добавлять руками.

Например

для записи и оповещения по событию «Система перезагрузилась, завершив работу с ошибками» (Microsoft-Windows-Kernel-Power, коды 41, 1001) нужно создать Item c типом Zabbix agent (active) и кодом в поле Key:

eventlog[System,,,,1001]

По этому же принципу создаём оповещения на другие коды. Странно, но готового template я не нашёл.

Cистема автоматизированной генерации по службам генерирует целую тучу спама. Часть служб в Windows предполагает в качестве нормального поведения тип запуска «авто» и остановку впоследствии. Zabbix в такое не может и будет с упорством пьяного сообщать «а BITS-то остановился!». Есть широко рекомендуемый способ избавления от такого поведения — добавление набора служб в фильтр-лист: нужно добавить в Template «Module Windows services by Zabbix agent», в разделе Macros, в фильтре {$SERVICE.NAME.NOT_MATCHES} имя службы в формате RegExp. Получается список наподобие:

^RemoteRegistry|MMCSS|gupdate|SysmonLog|
clr_optimization_v.+|clr_optimization_v.+|
sppsvc|gpsvc|Pml Driver HPZ12|Net Driver HPZ12|
MapsBroker|IntelAudioService|Intel\(R\) TPM Provisioning Service|
dbupdate|DoSvc|BITS.*|ShellHWDetection.*$

И он не работает работает с задержкой в 30 дней.

После добавления служб в фильтр триггеры будут висеть ещё 30 дней. Этот срок, впрочем, тоже можно настроить

После добавления служб в фильтр триггеры будут висеть ещё 30 дней. Этот срок, впрочем, тоже можно настроить

Про службы, автоматически генерируемые в Windows 10, я вообще промолчу.
Нет никаких температур (но это, если подумать, ладно уж), нет SMART и его алертов (тоже отдельная история, конечно). Нет моих любимых UPS.

Некоторые устройства генерируют данные и алерты, работу с которыми надо выстраивать. В частности, например, управляемый свитч Tp-Link генерирует интересный алерт «скорость на порту понизилась». Почти всегда это означает, что рабочая станция просто выключена в штатном режиме (ушла в S3), но сама постановка вопроса заставляет задуматься: сведения, вообще, полезные — м.б. и драйвер глючит, железо дохнет, время странное…

Некоторые встроенные алерты требуют переработки и перенастройки. Часть из них не закрывается в «ручном» режиме по принципу «знаю, не ори, так надо» и создаёт нагромождение информации на дашборде.

Короче говоря, многое требует допиливания напильником под местные реалии и задачи.

После допиливания – примерно так

После допиливания – примерно так

О локальных задачах

Всё, что не встроено в Zabbix agent, реализуется через механизм Zabbix agent (active). Суть проста: пишем скрипт, который будет выдавать нужные нам данные. Прописываем наш скрипт в conf:

UserParameter=имя.параметра,путь\к\скрипту 

Нюансы:

  • если хотите получать в Zabbix строку на кириллице из cmd — не надо. Только powershell;

  • если параметр специфический – для имени нужно будет придумать и сформулировать дерево параметров, наподобие «hardware.huawei.modem.link.speed» ;

  • отладка и стабильность таких параметров — вопрос и скрипта, и самого Zabbix. Об этом дальше.

Хотелка №1: температуры процессоров рабочих станций

В качестве примера реализуем хотелку «темература ЦП рабочей станции». Вам может встретиться вариант наподобие:

wmic /namespace:\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature

но это не работает (вернее, работает не всегда и не везде).
Самый простой способ, что я нашёл — воспользоваться проектом OpenHardwareMonitor. Он свои результаты выгружает прямо в тот же WMI, так что температуру получим так:

@echo OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
SET TMPTMP=0 
for /f "tokens=* skip=1 delims=" %%I in ('wmic /namespace:\root\OpenHardwareMonitor PATH Sensor WHERE Identifier^="/intelcpu/0/temperature/1" get Value') DO (     
	SET TMPTMP=%%I && GOTO :NXT 
) 
:NXT  
ECHO %TMPTMP% 
ENDLOCAL 
GOTO :EOF

Конечно, при условии, что OHM запущен. В текущем релизе OHM не умеет работать в качестве Windows service. Так что придётся либо смущать пользователей очередной иконкой в трее, либо снова городить свой инсталлятор и запихивать OHM в сервисы принудительно. Я выбрал поcледнее, создав инсталляционный cmd для всё того же 7zfx Builder наподобие:

nssm install OHMservice "%programfiles%\OHM\OpenHardwareMonitor.exe" 
timeout 3 
net start "OHMservice" 
del nssm.exe /Q

Два момента:

  1. NSSM — простая и достаточно надёжная утилита с многолетней историей. Применяется как раз в случаях, когда ПО не имеет режима работы «сервис», а надо. Во вредоносности утилита не замечена;

  2. Обратите внимание на «intelcpu» в скрипте получения температуры от OHM. Т.к. речь идёт о внедрении в малом офисе, можно рассчитывать на единообразие парка техники. Более того, таким образом лично у меня получилось извлечь и температуру ЦП от AMD. Но тем не менее этот пункт требует особого внимания. Возможно, придётся модифицировать и усложнять инсталлятор для большей универсальности.

Работает более чем надёжно, проблем не замечено.

Хотелка № 2: получаем и мониторим температуру чего угодно

Понадобятся нам две вещи:

  1. Штука от братского китайского народа: стандартный цифровой термометр DS18B20, совмещённый с USB-UART контроллером. Стоит не сказать что бюджетно, но приемлемо;

  2. powershell cкрипт:

param($cPort='COM3')

$port= new-Object System.IO.Ports.SerialPort $cPort,9600,None,8,one

$port.Open()
$tmp = $port.ReadLine()
$port.Close()

$tmp = $tmp -replace "t1="
if (([int]$tmp -lt 1) -or ([int]$tmp -gt 55)){

	#echo ("trigg "+$tmp)
	$port.Open()
	$tmp = $port.ReadLine()
	$port.Close()

	$tmp = $tmp -replace "t1="
} 
echo ($tmp)

Связка работает достаточно надёжно, но есть интересный момент: иногда, бессистемно, появляются провалы или пики на графиках:

Тесты показали, что проблема в самом Zabbix, а данные с китайских датчиков приходят верные. Детальное рассмотрение пиков и провалов выявило неожиданный факт: похоже Zabbix иногда получает и/или записывает в БД не полное значение, а «хвост». Т.е., например, 1.50 от значения 21.50. При этом положение точки не важно — может получить и 1.50, и 50, и даже 0. Как так происходит, мне выяснить пока не удалось. Изменение timeout на поведение не влияет никак, ни в большую, ни в меньшую сторону.
Наверное, стоило бы написать багрепорт. Но уже вышел 6.0 LTS (у меня 5) и обновляться в текущей ситуации, пожалуй, не буду.

Хотелка № 3: OpenVPN подключения

Template’ов для OpenVPN и Zabbix существует довольно много, но все они реализованы на том или ином sh под *nix’ы . В свою очередь, «dashboard» OpenVPN-сервера представляет из себя, по сути, вывод утилиты в консоль, который пишется в файл по событиям. Мне лень было считать трафик по отдельным пользователям и вообще делать их discover, т.к. подключений и пользователей немного. Ограничился текущим количеством подключений:

$openvpnLogPath = "C:\OpenVPN\config\"
$openvpnLogName = "openvpn-status.log"

try { 
	$logData = Get-Content $openvpnLogPath$openvpnLogName -ErrorAction Stop
}
catch{
	
	Write-Host("Missing log file")
	exit 1
}

$logHeader = "OpenVPN CLIENT LIST"
$logHeader2 = "Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since"
$logMark1 = "ROUTING TABLE"

if ($logData[0] -ne $logHeader -or $logData[2] -ne $logHeader2 ){
	
	Write-Host("Bad log file")
	exit 1
}

$i = 0
foreach ($tmpStr in ($logData | select -skip 3)) {
	
	if ($tmpStr -eq $logMark1) {break}
	$i++
}

Write-Host($i)
exit 0

Хотелка № 4: спецжелезка 1

Для большого количества специфического оборудования существуют написанные энтузиастами Template’ы. Обычно они используют и реализуют функционал, уже имеющийся в утилитах к этим железкам.

Боли лирическое отступление

установив один из таких темплейтов, я узнал, что «нормальная рабочая» температура чипа RAID-контроллера в серваке — 65+ градусов. Это, в свою очередь, побудило внимательнее посмотреть и на контроллер, и на сервер в целом. Были найдены косяки и выражены «фи»:

  1. Apaptec’у – за игольчатый радиатор из неизвестного крашеного силумина высотой чуть более чем нихрена, поток воздуха к которому закрыт резервной батарейкой с высотой больше, чем радиатор. Особенно мне понравилось потом читать у Adaptec того же «ну, это его нормальная рабочая температура. Не волнуйтесь». Ответственно заявляю: при такой «нормальной рабочей температуре» контроллер безбожно и непредсказуемо-предсказуемо глючил;

  2. Одному отечественному сборщику серверов. «Берём толстый жгут проводов. Скрепляем его, чтобы он был толстым, плотным, надёжным. Вешаем это прямо перед забором воздуха вентиляторами продува серверного корпуса. Идеально!». На «полу» сервера было дофига места, длины кабелей тоже хватало, но сделали почему-то так.

Также был замечен интересный нюанс поведения, связанный с Zabbix. Со старым RAID контроллером при наличии в системном логе специфичных репортов, отваливался мониторинг температуры контроллера в Zabbix, но! при запуске руками в консоли скрипта или спец. утилиты температура выводилась корректно и без задержек.

Но полный функционал реализован далеко не всегда. В частности, мне понадобились температуры жёстких дисков с нового RAID-контроллера (ну люблю я температуры, что поделать :) ), которых в оригинальном темплейте не было. Пришлось самому реализовывать температуры и заодно autodiscover физических дисков: https://github.com/automatize-it/zabbix-lsi-raid/commit/1d3a8b3a0e289b8c2df637028475177a2b940689

Можно видеть, какой HDD и даже SSD стоит перед отсеком с БП сервера и хуже охлаждается

Можно видеть, какой HDD и даже SSD стоит перед отсеком с БП сервера и хуже охлаждается

Оригинальный репозиторий, вероятно, заброшен, как это довольно часто бывает.

Хотелка № 5, на десерт: спецжелезка 2

Как и обещал, делюсь опытом вырывания данных из беспроводной железки Huawei. Речь о 4G роутере серии B*. Внутри себя железка имеет ПО на ASP, а данные о качестве сигнала — RSSI, SINR и прочее — в пользовательском пространстве показывать не хочет совсем. Смотри, мол, картинку с уровнем сигнала и всё, остальное не твоего юзерского ума дело. К счастью, в ПО остались какие-то хвосты, выводящие нужное в plain JSON. К сожалению, взять да скачать это wget-ом не получается никак: мало того, что авторизация, так ещё и перед генерацией plain json требуется исполнение JS на клиенте. К счастью, существует проект phantomjs. Кроме того, нам понадобится перенесённая руками кука из браузера, где мы единожды авторизовались в веб-интерфейсе, вручную. Кука живёт около полугода, можно было и скрипт написать, но я поленился.

Алгоритм действий и примеры кода:

вызываем phantomjs с кукой и сценарием:

phantomjs.exe --cookies-file=cookie.txt C:\cmd\yota_signal\scenery.js

Примеры сценариев:

//получаем общий уровень сигнала
var url = "http://192.168.2.1/html/home.html";
var page = require('webpage').create();
page.open(url, function(status) {
  //console.log("Status: " + status);
  if(status === "success") {
	
	var sgnl = page.evaluate(function() {
		return document.getElementById("status_img").innerHTML; //
	});
	
	var stt = page.evaluate(function() {
		return document.getElementById("index_connection_status").innerText; //
	});
	
	var sttlclzd = "dis";
	var sgnlfnd = "NA";
	
	if (stt.indexOf("Подключено") != -1) {sttlclzd = "conn";}
		
	if (sgnl.indexOf("icon_signal_01") != -1) {sgnlfnd = "1";}
	else {
		var tmpndx = sgnl.indexOf("icon_signal_0");
		sgnlfnd = sgnl.substring(tmpndx+13,tmpndx+14);
	}
	
	console.log(sttlclzd+","+sgnlfnd);
	
	var fs = require('fs');
		
		try {
			fs.write("C:\\cmd\\siglvl.txt", sgnlfnd, 'w');
		} catch(e) {
			console.log(e);
		}
    
  }
  phantom.exit();
});
//получаем технические параметры сигнала через какбэ предназначенный для этого "API"
var url = "http://192.168.2.1/api/device/signal"; 
var page = require('webpage').create();

  
	page.onLoadFinished = function() {
		
		//console.log("page load finished");
		//page.render('export.png');
		console.log(page.content);
		
		parser = new DOMParser();
		xmlDoc = parser.parseFromString(page.content,"text/xml");

		var rsrq = xmlDoc.getElementsByTagName("rsrq")[0].childNodes[0].nodeValue.replace("dB","");
		var rsrp = xmlDoc.getElementsByTagName("rsrp")[0].childNodes[0].nodeValue.replace("dBm","");
		var rssi = xmlDoc.getElementsByTagName("rssi")[0].childNodes[0].nodeValue.replace("dBm","").replace(">=","");
		var sinr = xmlDoc.getElementsByTagName("sinr")[0].childNodes[0].nodeValue.replace("dB","");
		
		var fs = require('fs');
		
		try {
			fs.write("C:\\cmd\\rsrq.txt", rsrq, 'w');
			fs.write("C:\\cmd\\rsrp.txt", rsrp, 'w');
			fs.write("C:\\cmd\\rssi.txt", rssi, 'w');
			fs.write("C:\\cmd\\sinr.txt", sinr, 'w');
		} catch(e) {
			console.log(e);
		}
		
		phantom.exit();
	};
	
	page.open(url, function() {
		page.evaluate(function() {
		});
    });

Конструкция запускается из планировщика задач. В Zabbix-агенте производится лишь чтение соответствующих файлов:

UserParameter=internet.devices.huawei1.signal.level,type C:\cmd\siglvl.txt 

Особое внимание на SINR. Он должен быть 10+. Ну, иногда и правда был. Около 4-5 утра обычно

Особое внимание на SINR. Он должен быть 10+. Ну, иногда и правда был. Около 4-5 утра обычно

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

Итого

Стоит ли заморачиваться на Zabbix, если у вас 20 машин и 1-2 сервера, да ещё и инфраструктура Windows?

Как можно понять из вышеизложенного, работы будет много. Я даже рискну предположить, что объёмы работ и уровень квалификации для них сравнимы с решением «свелосипедить своё с нуля по-быстрому на коленке».

Не стоит рассматривать Zabbix как панацею или серебряную пулю.

Тем не менее, использование уже готового и популярного продукта имеет свои преимущества — в первую очередь, это релевантный опыт для интересных работодателей.

А красивые графики дают усладу глазам и часто — новое видение процессов в динамике.

Если захочется внедрить, то могу пообещать, как минимум — скучно не будет! ;)

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Мониторите малые офисы?


62.16%
Мониторю, Заббиксом
46


2.7%
Мониторю, не Заббиксом
2


2.7%
Мониторю, самописной системой
2


22.97%
Не мониторю, но вообще надо бы
17


9.46%
Не мониторю и не надо
7

Проголосовали 74 пользователя.

Воздержались 26 пользователей.

Компании заинтересованы в бесперебойной работе оборудования, устройств и веб-ресурсов, поскольку даже небольшие сбои и неисправности способны привести к ощутимым финансовым потерям. Чтобы своевременно реагировать на проблемы или вовсе не допускать возникновения внештатных ситуаций, важно контролировать функционирование серверов и сетевого оборудования. Сделать это проще, если знать, что такое система мониторинга Zabbix.

Цели и задачи Zabbix

Zabbix – одна из наиболее распространённых систем мониторинга ИТ-инфраструктуры. Её применяют для выявления и предотвращения потенциальных проблем с оборудованием или в работе сайта, домена приложений.

Ключевыми преимуществами программы считаются открытый исходный код, а также совместимость с несколькими видами операционных систем. Возможно осуществлять с помощью zabbix мониторинг служб windows, также он работает на Linux, FreeBSD, Mac OS X и других платформах.

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

Система характеризуется широким функционалом, поэтому используется для различных целей.

  • Отслеживание бизнес-показателей.
  • Контроль состояния устройств и сетевой активности.
  • Пинг для проверки доступности узлов.
  • Анализ логов и т.д.

Поскольку Zabbix обрабатывает внушительный объём информации, удаётся минимизировать риск возникновения технических проблем. Например, если каждую неделю времени запуска увеличивается на 1 секунду, это выраженная тенденция, которая, несомненно, приведёт к проблеме. Предприняв какие-либо действия, можно предотвратить сбои в работе оборудования или сервисов.

Архитектура и возможности Zabbix

Система разделена на 5 компонентов, что позволяет одновременно отслеживать работу большого количества устройств, исключив перегрузки.

Основной сервер – собирает и обрабатывает информацию. Через него происходит дистанционное управлением сетевыми сервисами. В случае обнаружения проблем с оборудованием основной сервер направляет оповещения администратору.

В базах данных хранится собранная информация. Срок хранения назначает пользователь в соответствии со своими целями. Система совместима с несколькими наиболее востребованными базами, такими как MySQL, PostgreSQL, SQL Server, Oracle и другими.

Можно сказать про zabbix agent, что это программа, осуществляющая мониторинг и формирующая статистику работы локальных ресурсов. Она умеет самостоятельно получать данные автоматически или только по запросу от сервера. Этот элемент очень важен, однако его можно заменить другими инструментами, поэтому его использование носит лишь рекомендательный характер.

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

Веб-интерфейс нужен для понятного отображения информации.

Как работает Zabbix

Данные о функционировании устройств направляется на Zabbix-сервер. Здесь они обрабатываются, после чего перенаправляются в базы данных.

Для каждого параметра задаётся периодичность сбора информации. Например, программа будет проверять температуру устройства, логи или другие показатели раз в 3 часа.

Чтобы видеть отклонения от нормы, в системе настраивают триггеры. Так называют условия, отображающие корректность работы устройства или системы. Например, процессор должен запускаться максимум за 8 секунд. Если время увеличивается хотя бы на секунду, это значит, что условия не соблюдаются. Триггер срабатывает, пользователь получает уведомление о сбое.

Оповещения возможно приостановить, при этом их всё равно можно будет посмотреть. Кроме того, допустима их отправка после завершения обслуживания, которая задаётся для узлов или группы.

Активировать мониторинг серверов zabbix можно с помощью веб-сценариев. Они формируются в формате шаблонов и применяются к различным узлам или группам. Существует стандартный комплект метрик и триггеров, которые упрощают использование программы.

Как пользоваться Zabbix

Каждое устройство, предназначенное для проверки – это «узлы сети». Комплекс метрик, определяющих сбор данных с этих узлов, называют «элементами данных». В автоматическом режиме они настраиваются через подключение шаблона или вручную.

Заббикс мониторинг предполагает 17 способов сбора информации. Рассмотрим самые популярные из них.

  • Zabbix-агент. Сервер подключается к агенту в соответствии с заданным интервалом и собирает информацию.
  • Simple check (Простые проверки). Они актуальны для простых операций, таких как пинг. Их можно применять относительно локальных служб или работающих по внешнему tcp порту. Подключение агента в этом случае не требуется, процедура выполняется с помощью внутренних инструментов. Сервер сам начинает опрашивать указанный сервис и возвращать в зависимости от его значения доступности.
  • Zabbix trapper. Трапперы можно представить в виде мостов, соединяющих подконтрольные сервисы с системой.
  • Zabbix aggregate или Zabbix-комплекс. Так называется процесс, основанный на сборе совокупной информации из базы данных.
  • SSH agent. Система подключается по SSH, а для предоставления интересующей информации нужно ввести соответствующие команды.
  • Calculate (Вычисление). В данном случае сопоставляются уже собранные данные.

Интерфейс программы и триггеры

Последняя версия zabbix сервера имеет интуитивно понятный интерфейс. В нём отображены несколько элементов управления, демонстрирующие состояние узлов сети и триггеров.

В консоли есть информация о работоспособности системы, настройках параметров. Для удобства пользователей предусмотрены группировка данных и гистограммы.

В случае отсутствия действий со стороны пользователя в течение 30 минут система автоматически отсоединяется в целях информационной безопасности.

Чтобы отразить разный уровень угрозы, используются разные цвета и звуковые оповещения. Серым цветом отображены угрозы без классификации. Голубой – это стандартное информирование. Жёлтым выделяется предупреждение. Оранжевым подсвечивается средняя угроза. Более высокая угроза выделяется светло-красным. Красный цвет означает серьёзную проблему, требующей срочной реакции.

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

Реакцией на предупреждение об опасности или другое событие является действие (Action). Его можно выполнять вручную или задать для автоматического исполнения.

Также для событий возможно прописать операции или группу операций. Например, Remote command — это команда для удаленного управления.

Zabbix: требования к серверу

Основополагающие системные требования Zabbix – это память и операционная система. Программа совместима с большинством платформ. Для администрирования большого количества ресурсов требуется больше памяти и места на жёстком диске.

Фактические параметры зависят от количества активных элементов данных и частоты обновления этих элементов. Если подключенных устройств менее 100, достаточно недорогого VPS. Для мониторинга до 500 устройств предпочтительнее выбрать CPU 2 ядра ОЗУ 2 ГБ.

Установка, настройка и интеграция Zabbix

Самый простой способ установить Zabbix – выбрать готовый образ.

Развернуть образ можно через VirtualBox. В верхнем меню нужно выбрать кнопку «Импортировать», затем указать нужный образ и нажать «Продолжить».

Параметры уже настроены по умолчанию, поэтому достаточно нажать кнопку «Импорт», а после завершения процесса «Запустить».

Затем вводим учётные данные root / zabbix в консоли VirtualBox и вбиваем команду:

# ip a

Вы увидите настройки сети. Через браузер возможно подключение к Zabbix-серверу с стандартным логином и паролем «Admin / zabbix».

Установка Zabbix на Windows

Сначала создаём в панели управления Selectel сервер с ОС Windows. Для этого в разделе «Серверы» жмём на кнопку «Создать сервер».

В пункте «Источник» нажимаем «Выбрать источник», чтобы выбрать соответствующую операционную систему. Затем выбираем плавающий IP-адрес. Скоро статус сервера изменится на «Active», после чего подключаемся к IP-адресу по протоколу RDP.

Чтобы установить Zabbix-агент, нужно скачать дистрибутив на сайте разработчика и распаковать его в новую директорию.

В конфигурационный файл в папке conf нужно внести изменения.

Server=<ip адрес Zabbix-сервера> 

Агент устанавливаем в виде сервиса и запускаем его. Для этого выполним zabbix_agentd с реквизитами:

> zabbix_agentd.exe -c C:\Zabbix\conf\zabbix_agentd.conf -i

> zabbix_agentd.exe -c C:\Zabbix\conf\zabbix_agentd.conf –start

Теперь агента нужно добавить в разделе Configuration, подраздел Hosts. В верхнем правом углу жмём кнопку «Create Host».

Вводим данные сервера и открываем вкладку Templates. Выбираем подходящий шаблон и сохраняем изменения.

Метрики будут доступны по пути Monitoring — Latest Data.

Чтобы добавить нового пользователя, нужно открыть вкладку Administration, подраздел Users и нажать «Create User» верхнем правом углу. Достаточно указать имя пользователя, группу и пароль, оставив остальные данные по умолчанию. Дополнительно нужно задать настройки оповещения.

Заключение

Zabbix – удобный инструмент для мониторинга большого количества ресурсов, а также контроля инфраструктуры и приложений. Он помогает предотвратить внушительное количество потенциальных проблем и сбоя, обеспечивая беспрерывную работу, поэтому актуален для компаний любого масштаба.

Установку и базовую настройку системы провести довольно легко. Но для дополнительных настроек и интеграции требуются профильные знания. Подробные инструкции по настройки с перечнем необходимых команд можно найти на сайте разработчика.

3 февраля 2020

41 917

0

Время чтения ≈ 13 минут

Система Zabbix

Содержание:

  • Обзор технологии
  • Архитектура Zabbix
  • Основные возможности
  • Проверки
  • Триггеры
  • Действие
  • Операции
  • Низкоуровневое обнаружение
  • Прокси
  • Веб-интерфейс
  • Особенности Zabbix 4.4

Zabbix — это универсальный инструмент мониторинга, способный отслеживать динамику работы серверов и сетевого оборудования, быстро реагировать на внештатные ситуации и предупреждать возможные проблемы с нагрузкой. Система мониторинга Zabbix может собирать статистику в указанной рабочей среде и действовать в определенных случаях заданным образом.

В этой обзорной статье расскажем об основных принципах и ключевых инструментах, на которых построена универсальная система мониторинга Zabbix.

Обзор

Систему создал Алексей Владышев на языке Perl. Впоследствии проект подвергся серьезным изменением, которые затронули и архитектуру. Zabbix переписали на C и PHP. Открытый исходный код появился в 2001 г., а уже через три года выпустили первую стабильную версию.

Веб-интерфейс Zabbix написан на PHP. Для хранения данных используются MySQL, Oracle, PostgreSQL, SQLite или IBM DB2.

Сайт Забикс

На данный момент доступна система Zabbix 4.4. Скачать ее можно на официальном сайте. Там же можно найти официальные курсы и вебинары для начинающих пользователей системы.

Далее рассмотрим, из чего состоит и как работает технология Zabbix в доступном формате «для чайников».

Архитектура Zabbix

У Zabbix есть 4 основных инструмента, с помощью которых можно мониторить определенную рабочую среду и собирать о ней полный пакет данных для оптимизации работы.

  1. Сервер — ядро, хранящее в себе все данные системы, включая статистические, оперативные и конфигурацию. Дистанционно управляет сетевыми сервисами, оповещает администратора о существующих проблемах с оборудованием, находящимся под наблюдением.
  2. Прокси — сервис, собирающий данные о доступности и производительности устройств, который работает от имени сервера. Все собранные данные сохраняются в буфер и загружаются на сервер. Нужен для распределения нагрузки на сервер. Благодаря этому процессу можно уменьшить нагрузку на процессор и жесткий диск. Для работы прокси Zabbix отдельно нужна база данных.
  3. Агент — программа (демон), которая активно мониторит и собирает статистику работы локальных ресурсов (накопители, оперативная память, процессор и др.) и приложений.
  4. Веб-интерфейс — является частью сервера системы и требует для работы веб-сервер. Часто запускается на том же физическом узле, что и Zabbix.

Основные возможности

Функционал включает в себя общие проверки для наиболее распространенных сервисов, в том числе СУБД, SSH, Telnet, VMware, NTP, POP, SMTP, FTP и т.д. Если стандартных настроек системы недостаточно, их можно изменить самостоятельно или же пользоваться дополнением через API.

Что можно мониторить Zabbix

Стандартные функции системы

  • Контроль нагрузки на процессор, касается и отдельных процессов.
  • Сбор данных об объеме свободной оперативной и физической памяти.
  • Мониторинг активности жесткого диска.
  • Мониторинг сетевой активности.
  • Пинг для проверки доступности узлов в сети.

Проверки

Для описания системы мониторинга Zabbix существует два ключевых понятия:

  • Узлы сети — рабочие устройства и их группы (серверы, рабочие станции, коммутаторы), которые необходимо проверять. С создания и настойки узлов сети обычно начинается практическая работа с Zabbix.
  •  Элементы данных — набор самостоятельных метрик, по которым происходит сбор данных с узлов сети. Настройка элементов данных производится на вкладке «Элемент данных» или в автоматическом режиме — через подключение шаблона.

Сам Zabbix-агент способен отражать текущее состояние физического сервера, собирая совокупность данных. У него достаточно много метрик. С их помощью можно проверить загруженность ядра (Processor load), время ожидания ресурсов (CPU iowait time), объем системы подкачки (Total swap space) и многое другое.

Проверки Zabbix

В Zabbix существует целых 17 способов, дающих возможность собирать информацию. Указанные ниже, входят в число наиболее часто применяемых.

  • Zabbix agent (Zabbix-агент) — сервер собирает информацию у агента самостоятельно, подключаясь по определенному интервалу.
  • Simple check (Простые проверки) — простые операции, в том числе пинг.
  • Zabbix trapper (Zabbix-траппер) — сбор информации с трапперов, представляющих собой мосты между используемыми сервисами и самой системой.
  • Zabbix aggregate (Zabbix-комплекс) — процесс, предусматривающий сбор совокупной информации из базы данных.
  • SSH agent (SSH-агент) — система подключается по SSH, использует указанные команды.
  • Calculate (Вычисление) — проверки, которые система производит, сопоставляя имеющиеся данные, в том числе после предыдущих сборов.

У проверок есть заданные шаблоны (Templates), которые упрощают создание новых. Кроме обычных операций существует возможность регулярно проверять доступность веб-сервера с помощью имитации запросов браузера.

Проверка через пользовательский параметр

Чтобы выполнить проверку через агент, нужно прописать соответствующую команду в  конфигурационный файл Zabbix-агента в качестве пользовательского параметра (UserParameter). Сделать это можно с помощью выражения следующего вида:

UserParameter=<ключ>,<команда>

Помимо самой команды, приведенный синтаксис содержит уникальный (в пределах узла сети) ключ элемента данных, который надо придумать самостоятельно и сохранить. В дальнейшем, ключ можно использовать для ссылки на команду, внесенную в пользовательский параметр, при создании элемента данных.

Пример

UserParameter=ping,echo 1

С помощью данной команды можно настроить агент на постоянное возвращение значения «1» для элемента данных с ключем «ping».

Триггеры

Это логические выражения со значениями FALSE, TRUE и UNKNOWN, которые используются для обработки данных. Их можно создать вручную. Перед использованием триггеры возможно протестировать на произвольных значениях.

Тригеры Zabbix

У каждого триггера существует уровень серьезности угрозы, который маркируется цветом и передается звуковым оповещением в веб-интерфейсе.

  • Не классифицировано (Not classified) — серый.
  • Информация (Information) — светло-синий.
  • Предупреждение (Warning) — жёлтый.
  • Средняя (Average) — оранжевый.
  • Высокая (High) — светло-красный.
  • Чрезвычайная (Disaster) — красный.

Некоторые функции триггеров

  • abschange — абсолютная разница между последним и предпоследним значением (0 — значения равны, 1 — не равны).
  • avg — среднее значение за определенный интервал в секундах или количество отсчетов.
  • delta — разность между максимумом и минимумом с определенным интервалом или количеством отсчетов.
  • change — разница между последним и предпоследним значением.
  • count — количество отсчетов, удовлетворяющих критерию.
  • date — дата.
  • dayofweek — день недели от 1 до 7.
  • diff — у параметра есть значения, где 0 — последнее и предпоследнее значения равны, 1 — различаются.
  • last — любое (с конца) значение элемента данных.
  • max\min — максимум и минимум значений за указанные интервалы или отсчеты.
  • now — время в формате UNIX.
  • prev — предпоследнее значение.
  • sum — сумма значений за указанный интервал или количество отсчетов.
  • time — текущее время в формате HHMMSS.

Прогнозирование

Триггеры обладают еще одной важной функцией для мониторинга — прогнозированием. Она предугадывает возможные значения и время их возникновения. Прогноз составляется на основе ранее собранных данных.

Анализируя их, триггер выявляет будущие проблемы, предупреждает администратора о возникшей вероятности. Это дает возможность предотвратить пики нагрузки на оборудование или заканчивающееся место на жестком диске.

Функционал прогнозирования добавили с обновлением системы 3.0, вышедшим в феврале 2016 года.

Действие

Действие (Action) представляет собой заданную реакцию на событие (Event). Действие может устанавливаться автоматически или вручную как для одного из событий, так и для целой группы.

Журнал действий Zabbix

Параметры действий

  • Name — имя действия.
  • Event source — источник события. Источниками событий служат обнаружение (Discovery Events), авторегистрация (Auto registration Events) или заданный триггер (Trigger Events).
  • Enable escalations — разрешение на эскалацию событий.
  • Period — период времени для шага эскалации, указывается в секундах.
  • Default subject — указывается, кто извещается по умолчанию.
  • Default message — стандартный текст сообщения.
  • Recovery message — текст уведомления после решения проблемы.
  • Recovery subject — субъект, которого извещают после операции.
  • Status — статус действия, может быть «активно» и «запрещено».

Для событий, вызванных триггером или обнаружением, есть свои типы условий. Например, «Application» с операторами «=», «like» и «not like» значит, что триггер является частью указанного приложения. Или «Service type» с операторами «=», «<»и «>» предусматривает, что обнаруженный сервис совпадает с указанным.

Операции

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

Операции Zabbix

Параметры операций

  • Step — при эскалации событий.
  • Operation type — действия на определенном шаге, например, «Send message» или «Execute command».
  • Event Source — источник событий.
  • Send message to — отдельное сообщение (Single user) или групповое (User group).
  • Default message — текст по умолчанию.
  • Subject — кого оповещает система.
  • Message — текст сообщения.
  • Remote command — команда для удаленного управления.

Низкоуровневое обнаружение

Функция Низкоуровневого обнаружения (LLD) автоматически создает элементы и триггеры, которые позволяют отслеживать системы сервера, находящимся под наблюдением. Включение функции происходит через настройку атрибутов, которую можно сделать, пройдя по пути: «Настройка» → «Шаблоны» → «Обнаружение» (вкладка в строке с шаблоном) → вкладки «Правила обнаружения»/«Фильтры».

Правила обнаружения Zabbix

Что можно обнаружить

  • Распространённые OID, используемые SNMP.
  • Сетевые интерфейсы.
  • Процессоры, их ядра.
  • Файловые системы.
  • Службы Windows.
  • ODBC.

Дополнительные типы

Задать собственные типы низкоуровневого обнаружения возможно с применением формата JSON. Типы проверок, для которых можно указать список портов и интервал для них:

  • SSH;
  • LDAP;
  • SMTP;
  • FTP;
  • HTTP;
  • POP;
  • NNTP;
  • IMAP;
  • TCP.

Если хост пропадает или обнаруживается, для события можно привязать любое действие — условия и операцию для них.

Прокси

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

Прокси используется еще в нескольких случаях — если агенты находятся далеко друг от друга или ограничены локальной сетью. Это сказывается на доступности агентов и величине пингов.

Zabbix прокси функционирует как демон. Для его использования обязательно наличие отдельной базы данных.

Особенности веб-интерфейса

Система мониторинга Zabbix располагает удобным веб-интерфейсом, в котором сгруппированы элементы управления. Консоль предусматривает просмотр собранных данных, их настройку. Для безопасности входа и работы осуществляется автоматическое отсоединение через 30 минут пользовательского бездействия.

На главном экране всегда представлена информация о состоянии узлов сети и триггеров.

Zabbix веб-интерфейс

Пользователю доступны пять функциональных разделов, включая Monitoring («Мониторинг»), Inventory («Инвентарные данные»), Reports («Отчеты»), Configuration («Конфигурация») и Administration («Администрирование»).

В разделе «Конфигурации» можно найти группы хостов. По каждому элементу списка можно посмотреть более подробную информацию, например, последние события и графики данных.

Zabbix веб-интерфейс - группы хостов

Управлять шаблонами, доступными администратору, можно в соответствующем подразделе — Templates («Шаблоны»).

Zabbix веб-интерфейс - шаблоны

Версия 4.4

Узнать версию установленного Zabbix сервера можно во время запуске в файле-протоколе.

Zabbix 4.4

Основные нововведения в Zabbix 4.4

  • Новый Zabbix Agent (zabbix_agent2) создан на языке Go.
  • Опции вывода графиков данных.
  • Внешние уведомления, система отслеживания ошибок.
  • Официальная поддержка TimescaleDB.
  • База знаний для триггеров и элементов данных.
  • Группировка данных и гистограммы.
  • Официальная поддержка платформ, теперь Zabbix работает с SUSE Linux Enterprise Server 15, Debian 10, Raspbian 10, Mac OS/X, RHEL 8, MSI for Windows Agent и др.

Заключение

Zabbix по праву считается одним из самых продвинутых инструментов для удалённого мониторинга аппаратных и программных ресурсов. Система с успехом позволяет решать задачи по отслеживанию сетевой активности и работоспособности серверов, а также предупреждать о потенциально опасных ситуациях. Благодаря встроенным механизмам анализа и прогнозирования, Zabbix может стать основой для создания полноценной стратегии эффективного использования IT-инфрастуктуры в компаниях любого масштаба.

Способности Zabbix ограничены только имеющимися в распоряжении ресурсами. VDS от Eternalhost на SSD-дисках обеспечит системе максимальное быстродействие и возможность мониторить множество узлов в сети.

Оцените материал:


[Всего голосов: 3    Средний: 5/5]

Zabbix — армейский швейцарский нож крутого администратора. Инструмент выглядит как еще одна система мониторинга, но его возможности намного шире и интересней, чем у любого продукта схожего назначения.

Он позволяет собирать данные о состоянии чего угодно — от сетевых соединений до ключевых бизнес-метрик продукта. Сотни плагинов, скриптов, автоматизаций расширяют его и добавляют любое нужное поведение — от уведомлений о сбоях до сложных анализаторов метрик.

В статье разберемся, что же может Zabbix и зачем используют этот инструмент.

Основные концепции для общего понимания работы Zabbix

Zabbix состоит из нескольких частей, не связанных между собой:.

  1. Ядро, или Zabbix-сервер. Сюда поступает и здесь хранится вся информация о состоянии систем и сетей. В качестве хранилища можно использовать MySQL, PostgreSQL, SQLite или Oracle. Кроме данных, в ядре лежат все правила оповещений администраторов, настройки и конфигурации сервисов.
  2. Zabbix-агенты. Это небольшие программы-шпионы, размещенные на серверах, которые нужно мониторить. Zabbix поставляется в вариантах под разные платформы, так что можно без проблем мониторить одной программой разные операционные системы: Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, OS X, Tru64/OSF1, Windows 2000, Windows Server 2003, Windows XP, Windows Vista, Windows Server 2008, Windows 7.
  3. Zabbix-интерфейс — графическая часть и красивые кнопочки для конфигурирования и настройки мониторинга. Там же можно смотреть все события и состояния систем.

Всё вместе работает очень просто — агенты размещаются на серверах и мониторят их состояние, ежечасно/ежеминутно/ежесекундно сообщая о параметрах системы в центральное ядро. Ядро проверяет, всё ли в порядке у серверов, а если что-то идет не так — посылает администратору уведомление. Администратор заходит в веб-интерфейс и там разбирается в чем дело.

Несмотря на кажущуюся простоту концепции, Zabbix требует знаний и умений для правильного написания конфигурационных файлов. Однако в умелых руках эта штука может практически всё.

Что можно мониторить с помощью Zabbix

  • Состояние каждого сервера, на котором стоит мониторинг: скорость и нагрузку на процессоре, емкость дисков, свободное место в оперативной и постоянной памяти.
  • Следом идет состояние сети — доступность узлов с сервера, скорость соединений, время пингов.
  • Состояние операционной системы — количество и состояние процессов, наличие определенных программ в памяти.
  • Метрики и состояния прикладных программ — количество активных пользователей, запросы в СУБД, средняя скорость ответа приложения.
  • И на самом верхнем уровне — бизнес-метрики: регистрация новых юзеров, выручка, оборот средств, количество заказов, конверсии и другие цифры, которые могут заинтересовать менеджмент бизнеса.

Что может Zabbix и чем он так хорош

  1. Полноценный мониторинг сетей на тысячи и тысячи устройств. Можно выстраивать иерархические деревья, в которых старшие узлы определяют настройки и политики мониторинга младших узлов.
  2. Настроить мониторинг на многотысячный кластер не так просто, поэтому есть удобные шаблоны и группы — выбрал шаблон, поместил в него пачку серверов, и готово, всё настроилось само. Или почти само.
  3. Опрашивать целевые машины на предмет метрик можно двумя способами — агенты сами рапортуют в ядро Zabbix или Zabbix сам опрашивает агентов (прямо как в Prometheus).
  4. Есть мониторинг динамических объектов — а это означает, что можно следить за фактом появления/исчезновения файлов/соединений/папок/процессов.
  5. Если что-то пошло не так — Zabbix умеет быстро оповестить о неприятностях. Есть уведомления по почте, есть и более быстрые (например, по протоколу XMPP — любому администратору стоит сидеть в Jabber!).
  6. Поломки можно починить через удаленное выполнение команд (опциональная возможность). Можно подцепиться к неисправной машине сразу из ядра, а не сидеть и долго вспоминать ключи доступа к сломавшемуся серверу.
  7. Для диагностики неисправностей есть удобная читалка и анализатор системных логов и журналов. Всю важную для администратора информацию агенты всегда передадут на головную машину Zabbix.
  8. В систему можно добавить любые нужные функции — есть плагины и скрипты. Да и банальное автоматизированное выполнение команд в консоли на сервере очень выручает. Нет такой вещи, которой бы нельзя было научить Zabbix.
  9. Есть API — это значит, что можно подключать внешние средства обработки информации и визуализаторы. Zabbix прекрасно работает в паре с Grafana, если по каким-либо причинам стандартный интерфейс вас не устроил или хочется иметь все данные в одном месте.

К этому всему нужно добавить, что всё это добро — бесплатно, свободно и общедоступно.

Рассказываем об IT-бизнесе, технологиях и цифровой трансформации

Подпишитесь в соцсетях или по email

Минус, по сути, у Zabbix один — порог вхождения. Чтобы адекватно настроить все фичи и держать в порядке серверное хозяйство, понадобятся недюжинные навыки и опыт. Но если вы профессиональный администратор, эту систему стоит освоить.

Как крупные, так и небольшие компании постоянно анализируют работу и продуктивность устройств, которые используются при создании продукта. Поэтому существует множество мониторинговых программ. Одной из самых популярных систем такого рода является Zabbix. В этой статье мы расскажем, что такое система мониторинга Zabbix, что можно мониторить с её помощью и как эта система работает.



Zabbix

Итак, Zabbix ― что это за программа и какие возможности она даёт? Это система с веб-интерфейсом, которая позволяет собирать различные данные с устройств. С её помощью можно производить мониторинг сети, серверов, виртуальных машин, баз данных, приложений и устройств. Zabbix может получать данные о состоянии устройства: объёме памяти, скорости работы процессора, температуре машины, логах и др. Помимо этого, система способна наблюдать за бизнес-метриками ― к примеру скоростью продажи продукта. 14 мая 2021 года вышла последняя версия Zabbix-сервера ― Zabbix 5.4.

Мощный VPS со встроенной системой мониторинга

Рег.ру предлагает VPS с установленной программой для мониторинга Zabbix.

Заказать сервер с Zabbix

Как работает Zabbix

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



=957x338
Мониторинг серверов Zabbix

  1. Основной сервер. Это мозг программы. Он получает, обрабатывает и анализирует данные.
  2. Базы данных. В них вся информация, полученная с сервера, собирается и хранится в течение установленного пользователем времени.
  3. Веб-интерфейс. Позволяет легко получать доступ к настройкам Zabbix.
  4. Агент. Zabbix agent ― что это? Он работает на сервере в режиме демона. Агент может быть как в активном режиме (сам запрашивает список нужных параметров), так и в пассивном (ждёт запросов от сервера). Это необязательный элемент системы Zabbix, так как сервер может получать информацию с устройства при помощи других инструментов, с которыми можно познакомиться на официальном сайте Zabbix.
  5. Прокси. Отвечает за управление агентами. Это тоже необязательный компонент, но он снижает нагрузку на Zabbix-сервер. Прокси берёт на себя функцию предобработки данных, полученных агентами. Этот компонент актуален для тех компаний, которые мониторят сотни устройств с Zabbix-агентами.

Как пользоваться системой Zabbix

Информация с устройств попадает на Zabbix-сервер и обрабатывается им. Далее результаты обработки попадают в базу данных, где пользователь видит информацию в структурированном виде. Можно выбрать любую базу данных: MySQL, PostgreSQL, SQLite или Oracle. Для каждой метрики устанавливается пользовательский интервал. Пользовательские интервалы ― это промежутки времени, в которых собирается информация с устройства или системы. Например, программа может измерять температуру устройства каждые два часа.

Заббикс-мониторинг состояния любой системы чаще всего устанавливается, чтобы предупредить возможные технические проблемы. Благодаря Zabbix можно не только быстро узнавать об ошибках, но и предвидеть проблемы. Для этого в системе устанавливаются триггеры. Триггеры ― это условия, которые указывают, что в работе устройства или системы возникли проблемы. При срабатывании триггера Zabbix уведомляет пользователя о проблемах и может сам исправить ошибку, выполняя заранее прописанные действия для определённого триггера. Допустим мы установили, что процессор запускается в течение 7 секунд. Если запуск происходил хотя бы 8 секунд, то в программе сработает триггер и она уведомит пользователя о проблеме.

Для того, чтобы активировать мониторинг, нужно определить web-сценарии. В Zabbix web-сценарии позволяют собирать данные с узлов сети. Они настраиваются в виде шаблонов, которые можно применить к разным узлам или группам.

Приостановить отправку уведомлений о проблемах можно в настройках периода обслуживания. При этом оповещения, созданные в этот период, будут доступны для просмотра. Также их можно будет отправить после завершения обслуживания. В Zabbix период обслуживания можно настроить для отдельного узла или для группы.

Так как Zabbix собирает большие объёмы данных, он может предвидеть проблемы с устройством. Вернёмся к примеру с запускающимся процессором. Представим, что обычно запуск происходит в течение 4 секунд. Через неделю время запуска ― 5 секунд, ещё через неделю ― 6 секунд. Есть тенденция к увеличению времени запуска, и скоро сработает триггер. Заметив эту тенденцию, можно предотвратить проблему.

Чтобы пользователям было проще настраивать мониторинг, разработчики предлагают шаблоны со стандартным набором метрик и триггеров. Например, для Linux-сервера предлагают мониторинг памяти, состояния процессора и сети. Есть также специальный шаблон, который осуществляет мониторинг интернет-канала Zabbix.

Подробная установка Zabbix на Linux-системы описаны в статьях:

  • Установка и настройка Zabbix в CentOS,
  • Как установить Zabbix на Ubuntu и Debian.

В них описана пошаговая установка Zabbix, а также есть Zabbix agent настройка.

Zabbix: требования к серверу

Основные системные требования Zabbix ― это память и поддерживаемая платформа. Zabbix хорошо работает на большинстве платформ: Linux и другие операционные системы Unix, IBM AIX, FreeBSD, NetBSD, OpenBSD, HP-UX, Mac OS X, Solaris и Windows. С памятью тоже все просто. Чем больше данных вы хотите мониторить и хранить, тем больше оперативной памяти и места на жёстком диске понадобится. Подробнее о системных требованиях можно узнать на официальном сайте Zabbix.

Активные и пассивные агенты

Как мы писали выше в структуре системы мониторинга есть агент, с помощью которого можно получать данные. Он может работать в пассивном или активном режиме.

При пассивном режиме Zabbix-сервер в соответствии с настройками отправляет запросы агенту. Затем данные собираются и отправляются снова на Zabbix-сервер. Недостатки пассивного режима:

  • не работает, если узел находится за NAT,
  • большая нагрузка на сервер.

При активном режиме сам агент сначала запрашивает у Zabbix-сервера список данных, которые нужно собрать. Частота запросов устанавливается пользователем в соответствии с количеством узлов и объёмом данных, которые нужно получить. Чем чаще происходят запросы, тем больше нагружается сервер. Как только агент получает данные, он отправляет их на Zabbix-сервер для обработки.

Недостаток активного режима ― нужно самостоятельно создавать шаблоны для запросов, в то время как для пассивного режима есть готовые решения и нужно только выбрать подходящие параметры.

Какой агент лучше выбрать? Если сеть небольшая, подойдет пассивный агент. Если же сеть большая и на сервере много постоянно меняющихся данных, лучше использовать активный режим. Zabbix agent Linux установка подробно описана в документации. Для установки агента Zabbix инструкция на русском доступна по ссылке.

В этой статье мы разобрали, что такое мониторинговая система Zabbix и как она работает. Теперь администрировать бизнес будет проще.

Помогла ли вам статья?

Спасибо за оценку. Рады помочь 😊


 👍

  • Что может windows movie maker
  • Что может блокировать порты на windows 10
  • Что лучше fat32 или ntfs для загрузочной флешки windows 10
  • Что можно удалить из папки пользователи в windows 10
  • Что можно отключить в автозагрузке windows 11