tm

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

   Приступим. В первую очередь нам нужно подготовить конфигурацию. Для этого в файле zabbix_agentd.win.conf достаточно поместить содержимое:

zabbix_agentd.win.conf

LogFile=c:\windows\zabbix32\zabbix_agentd.log
#
LogFileSize=5
#
EnableRemoteCommands=1
#
LogRemoteCommands=1
#
Server=192.168.50.21
#
ListenPort=10050
#
ServerActive=192.168.50.21
#
HostnameItem=system.hostname[host]
# SMART HDD
# RAW_VALUE
UserParameter=smart.raw.[*], for /F "tokens=10" %a in ('C:\Windows\zabbix32\smart\smartctl.exe -A $1 -d $2 ^| find "$3"') do @echo %a
# VALUE
UserParameter=smart.value.[*], for /F "tokens=4" %a in ('C:\Windows\zabbix32\smart\smartctl.exe -A $1 -d $2^| find "$3"') do @echo %a
# WORST
UserParameter=smart.worst.[*], for /F "tokens=5" %a in ('C:\Windows\zabbix32\smart\smartctl.exe -A $1 -d $2 ^| find "$3"') do @echo %a
# THRESOLD
UserParameter=smart.thresh.[*], for /F "tokens=6" %a in ('C:\Windows\zabbix32\smart\smartctl.exe -A $1 -d $2 ^| find "$3"') do @echo %a
# WHEN_FAILED
UserParameter=smart.when.failed.[*], for /F "tokens=9" %a in ('C:\Windows\zabbix32\smart\smartctl.exe -A $1 -d $2 ^| find "$3"') do @echo %a
# HEALTH Status
UserParameter=smart.health.[*], for /F "tokens=6" %a in ('C:\Windows\zabbix32\smart\smartctl.exe -H $1 -d $2 ^| find "test"') do @echo %a

Для мониторинга "жизненно важных" значений SMART HDD, достаточно использовать только строки с RAW_VALUE и VALUE. Остальные значения SMART может быть пригодятся, их можно оставить.

Или если на команду

C:\Windows\zabbix32\smart\smartctl.exe --scan

диски определяются как

csmi disk zabbix

то в конфигу Zabbix агента нужно добавить строку

zabbix_agentd.win.conf
UserParameter=smart.csmi.[*], for /F "tokens=10" %a in ('C:\Windows\zabbix32\smart\smartctl.exe -A $1^,$2 ^| find "$3"') do @echo %a

Ключ в элементах данных будет выглядеть, например, так:

smart.csmi.[/dev/csmi1,0,Airflow_Temperature_Cel]

Об остальных параметрах Zabbix-Агента рассказывать нет смысла, всё должно быть предельно понятно.

Пришло время распространить Zabbix-агент и smartmontools на рабочие станции. Весь этот пакет файлов я запихал в один архив. Кому нравится устанавливать отдельно, милости просим сюда и сюда. Директорию zabbix32 из архива мне показалось правильным запихать в директорию Windows, что бы особо продвинутые пользователи её не удалили. Хотя, с нашим скриптом который будет распространять директорию и запускать службу нам и это не страшно.

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

ZabbixAgentInst.cmd

@echo off 
sc query "Zabbix Agent" | find /i "RUNNING"
if not ERRORLEVEL 1 (
echo service is running
) else (
xcopy /y /s /d \\damain.local\SysVol\domain.local\Policies\{368FA9F7-CE3F-443D-B74F-6762FEAC663C}\Machine\Applications\zabbix32 c:\windows\zabbix32\ && "C:\windows\zabbix32\zabbix_agentd.exe" --config "C:\windows\zabbix32\zabbix_agentd.win.conf" --install && "C:\windows\zabbix32\zabbix_agentd.exe" --config "C:\windows\zabbix32\zabbix_agentd.win.conf" --start
)

Этот скрипт, при запуске на рабочей стануции, проверяет запущена ли служба с именем Zabbix Agent. Если да, то "что-то" незаметно сообщает. Если нет, то запускает копирование директории zabbix32 из директории с GPO в папку Windows на рабочей станции, устанавливает и запускает службу. Уникальный код политики не забываем поменять в пути скрипта.

Если служба установлена, порт TCP 10050 открыт, можно проверить работоспособность схемы. На Zabbix сервере должен быть установлен пакет zabbix-get:

apt-get install zabbix-get

и проверяем работоспособность, например:

zabbix_get -s 192.168.50.233 -k smart.raw.[/dev/sda,ata,Temperature_Celsius]

Если в ответ получили значение, то всё отлично. Можно приступать к созданию графиков. Их можно создать по аналогии с зарисовкой по настройке мониторинга SMART, но для компов на Linux.

Комментарии  
0 # nasipad 01.03.2017 21:36
а если на станции несколько дисков?)))
P.S: Самый верный способ это LLD, т.е на станции формировать JSON с жесткими дисками и отсылать на zabbix сервер
Сообщить модератору
0 # Admin 01.03.2017 22:05
Ну, для небольшого парка машин я создал пару групп элементов данных вручную... Можно и Вашим способом, но я что-то не допёр до этого)
Сообщить модератору

Комментарии отключены