Доброго
времени суток. Продолжаем настраивать систему мониторинга Zabbix. И в
данной статье мы поговорим о мониторинге устройств под управлением
операционной системы Windows. Как Вы знаете, что Windows из коробки не
поддерживает SNMP, поэтому по SNMP Zabbix не сможет забирать данные с
устройства наблюдения. Но у нас есть сервера под управлением Windows,
есть локальная сеть в которой находятся машины под Windows и все это нам
надо мониторить. Как же быть? Да простую проверку (например,
доступность узла сети) мы легко можем организовать, а вот загрузку
системы, время работы узла. Для этого есть специальная программа,
которая передает все эти данные zabbix-серверу. И дальше мы установим
zabbix-agent на Windows, настроим zabbix агента. А также настроим zabbix
сервер для получения данных от zabbix агента.
Первое,
что нам надо сделать - это скачать zabbix агента для Windows. Для этого
перейдите по ссылке . Дистрибутив
агента Zabbix для Windows включает в себя следующие файлы:
zabbix_agentd.exe, zabbix_get.exe и zabbix_sender.exe.
Установка и настройка zabbix-агента.
Создайте папку “c:\program files\zabbix". скопируйте в нее следующие файлы zabbix_agent.exe, zabbix_get.exe и zabbix_sender.exe.
Дальше создаем в этой папке log файл для zabbix агента: zabbix_agentd.log.
Следующим шагом создаем конфигурационный файл zabbix_agentd.conf и помещаем в него следующий код:
Server=
#ServerPort=10051
# Unique hostname. Required for active checks.
Hostname=host.local
# Listen port. Default is 10050
ListenPort=10050
# Name of log file.
LogFile=c:\program files\zabbix_agentd.log
# Maximum size of log file in MB. Set to 0 to disable automatic log rotation.
LogFileSize=10
где:
Всем, доброго времени! Довелось недавно настраивать систему мониторинга zabbix. Настраивал в первый раз. Поэтому решил сделать заметку здесь. Примеров на просторах интернета достаточно, но версии обновляются, новые «фичи» появляются.
Цель статьи, чтобы знания были открыты, кому нужно смог ими воспользоваться, а самое главное развитие it сообщества в рунете.
Содержание
Sudo apt update && sudo apt upgrade
Далее установим mysql сервер и веб сервер apache (в процессе нужно придумать пароль для root mysql).
Sudo apt install mysql-server mysql-client apache2
Затем переходим в директорию со временными файлами: cd
/tmp
Скачаем и установим пакет, который добавит репозиторий для Zabbix сервера, для Ubuntu 16.04 необходимо выбрать версию “xenial”. Пакет скачиваем из офф.сайта .
Sudo wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
Добавим репозиторий zabbix:
Sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
Обновляем кэш менеджера пакетов и убедимся в том, что репозиторий для Zabbix добавился:
Sudo apt update
cat /etc/apt/sources.list.d/zabbix.list
Zabbix-сервер будет хранить всю информацию в MySQL и поэтому устанавливаем пакет для Zabbix сервера с поддержкой MySQL:
Sudo apt install zabbix-server-mysql zabbix-frontend-php
Встречаются случаи, когда возникает ошибка с зависимостями., чтобы этого избежать запустим команду исправления зависимостей:
Sudo apt-get -f install
Теперь нужно создать в MySQL базу данных. Подключимся к MySQL:
Mysql -uroot -p
Здесь мы подключились к бд, создаю бд с именем zabbix, дали полные права пользователю zabbix@localhost и установили для этого пользователя пароль.
Create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix_test";
quit;
Затем необходимо зайти в директорию где лежит скрипт, который создаст структуру для БД. Файл называется create.sql.gz
cd /usr/share/doc/zabbix-server-mysql
Запустить скрипт (файлов достаточно много в архиве придется подождать)
Sudo zcat create.sql.gz | mysql -uroot zabbix -p
На этом этапе необходимо указать Zabbix-у, что нужно использовать локальную базу данных. Для этого необходимо раскомментировать параметр:
DBHost=localhost
Параметры DBName и DBUser будут активны, их трогать не придется.
Идем по пути в файл и редактируем параметры:
sudo vim /etc/zabbix/zabbix_server.conf
Настройки моего конфигураицонного файла:
Grep -v "^#\|^$" /etc/zabbix/zabbix_server.conf
Также следует создать А-запись для zabbix сервера с отмеченной галочкой PTR. Запускаем Zabbix сервер и смотрим его статус:
Sudo systemctl start apache2.service
sudo systemctl status apache2.service
Затем необходимо зайти в конфиг apache и выбрать необходимый часовой пояс. Эти два параметра необходимо раскомментировать из блоков:
Название параметра: php_value date.timezone Europe/Minsk
На следующем этапе можно зайти по ip_адрес/zabbix и увидеть веб-интерфейс Zabbix.
Нужно пройти настройку мастера, но я на втором шаге “словил” ошибку. Поэтому нужно установить недостающие пакеты и ребутнуть веб-сервер:
Sudo apt install php-mbstring php-bcmath php-xml
sudo systemctl reload apache2.service
Затем снова идем по пути ip_адрес/zabbix
, жмем на мастере “next”. Из интересного, нужно указать пароль, который указывали при создании БД mysql, порт оставить по умолчанию, имя хоста оставить либо по умолчанию либо дать как у хоста. Затем проверяются все настройки и мы попадаем на веб-интерфейс управления Zabbix. Системный логин/пароль Admin/zabbix
Далее в веб-интерфейсе zabbix создаем точно такого же пользователя как в AD.
“Administration-Users-Create user”
добавить в группу Zabbix administrators и установить пароль. Во вкладке “Permission”
добавить права Zabbix Super Admin
. (Всегда нужно создать пользователя в AD и аналогичного в zabbix).
Затем заходим в Zabbix под созданным пользователем, идем по пути “Administration-Authentification” на вкладку LDAP нужно заполнить поля Bind DN для созданного пользователя (zabbix). Чтобы ничего не перепутать берем значение из оснастки AD. Active Directory Administrative Center (Центр администрирования Active Directory) .
Выбрать текущий домен и “пр.кн мыши” -“Свойства”, “Расширения”, “Редактор атрибутов”. Найти атрибут “distinguishedName” и скопировать значения в настройку zabbix поле Bind DN (к примеру example.lan ).
Когда мы войдем в zabbix от пользователя AD, то стандартный пользователь UserName: Admin Password: zabbix уже не сможет зайти.
Существует ситуации когда домен AD недоступен, LDAP не отвечает и при попытке войти в zabbix будет выводиться сообщение “Login name or password is incorrect”. В такой ситуации необходимо переключатся на внутреннюю аутентификацию zabbix.
Для этого проделываем “пару” действий:
Подключаемся к mysql:
Mysql -uroot -p
Выполняем команду которая отключит LDAP аутентификацию и активирует внутреннюю zabbix аутентификацию.Стандартный логин/пароль Admin/zabbix:
Mysql> UPDATE `zabbix`.`config` SET `authentication_type` = "0" WHERE `config`.`configid` =1;
На моем Linux сервере уже установлен zabbix агент, но для «перфекционизма» я хочу использовать последнюю версию агента. Для просмотра версии zabbix агента выполняем команду:
Sudo dpkg -s zabbix-agent
или
Sudo aptitude show zabbix-agent
Переходим во временную директорию, скачиваем последнюю версию zabbix и устанавливаем агента:
cd /tmp
Wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
sudo apt update
sudo dpkg -s zabbix-agent
sudo apt install zabbix-agent
Затем настроем конфигурационный файл zabbix. Лично у меня опыт с zabbix не большой и по примеру я брал параметры из статей в разделе мануал и изучал их в официальной документации zabbix. Этих параметров хватило для стабильной работы агента. Проблем с ним не возникало.
sudo vi /etc/zabbix/zabbix_agentd.conf
Необходимо отредактировать следующие параметры:
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=10
Server=zabbix.example.lan
ServerActive=zabbix.example.lan
Hostname=Ubuntu-server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
Параметры «Server»
и «ServerActive»
- это полное имя (FQDN) пк, на котором крутится zabbix сервер.
«Hostname» - имя пк на который устанавливаем агента.
После редактирования нужных параметров, перезагружаем zabbix агент:
Sudo systemctl restart zabbix-agent.service
Добавим zabbix агент в автозагрузку:
Sudo systemctl enable zabbix-agent.service
Настройки Linux хоста на zabbix сервере
В веб-интерфейсе zabbix создаем хост, который будем «мониторить» (скрин расписан по шагам)
Указываем его имя и добавляем в нужную группу. Хост я указываю по DNS имени, так как на хосте Zabbix у меня корректно настроены параметры для взаимодействия с внутренней DNS инфраструктурой. Если у вас есть домен и настроен DNS, то вам следует в конфигурационный файл сетевых настроек добавить две записи.
sudo vi /etc/network/interfaces
dns-nameservers 192.168.1.100 # ip_адрес_домена
dns-search example.lan # поисковое_имя_домена
*Имя должно совпадать с именем пк в сети.
Затем переходим во вкладку «host» и наблюдаем индикатор zabbix агента, его рабочее состояние отображается в зеленом цвете. Статус должен быть «Enabled» . После того как мы применили шаблон, стандартный набор параметров начал мониториться. Их посмотреть можно в настройках хоста вкладка “items” и “triggers” .
Также возможно редактировать «items» и «triggers» удалять или добавлять параметры.
На скриншоте показано рабочее состояние, это означает, что производится мониторинг.
Установим zabbix агент на Windows. В моем случае это Hyper-V Server 2012R2 без Gui.
Агента скачиваем с официального сайта Zabbix, выбрать для платформы Windows.
На консольном Hyper-V у меня установлен бесплатный двухпанельный файловый менеджер Unreal Commander. Поэтому распаковываю архив я с помощью него, затем сохраняю два файла в корень “диска C”:
zabbix_agentd.exe
zabbix_agentd.conf
На начальном этапе конфигурируем Брандмауэр Windows. Следует добавить входящее правило разрешающее подключение к TCP порту 10050. Перехожу к установке агента zabbix и импортирую конфиг.файл:
C:\zabbix_agentd.exe --config c:\zabbix_agentd.conf --install
Затем по аналогии с настройкой агента для Linux вношу необходимые параметры в конфигурационный файл zabbix_agentd.conf
Изменение файла производится с помощью текстового редактора notepad ++.
Если всё прошло успешно, то никаких предупреждений не увидим. Затем нужно запустить службу Zabbix Agent.
В cmd ведем taskmgr и правой кнопкой запустим службу. Аналогично через консоль:
Zabbix_agentd.exe -c c:\zabbix_agentd.conf -s
Если необходимо удалить службу и конфигурационный файл, то выполняем команду:
C:\zabbix_agentd.exe --config c:\zabbix_agentd.conf --uninstall
Процедура создание хоста в Zabbix аналогична Linux, отличие заключается в том, что применяется стандартный шаблон для Windows систем
(Template OS Windows)
.
Просмотр какие установлены локализаций:
Sudo locale -a
Просмотр доступных локализаций (относительно русской):
Cat /usr/share/i18n/SUPPORTED | grep ru_
Устанавливаю нужную локализацию:
Sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
sudo dpkg-reconfigure locales
Перезагрузить apache и выбрать русский язык в веб- интерфейсе Zabbix:
Sudo systemctl restart apache2.service
P.S Если будет интересно опишу как прикрутить Telegram к Zabbix.
Одной из отличительных возможностей мониторинга Zabbix, является использование агентов. Zabbix Agent — это специальная программа которая устанавливается на системе о которой нужна информация и общается с сервером. Сервер в свою очередь рисует нужные графики. Простота в использовании очень ускоряет настройку хостов и графиков, так как на просматриваемом хосте нам нужен только агент и больше никаких настроек производить не потребуется.Zabbix Agent поставляется для Windows и Linux\Unix like систем. В этой статье мы рассмотрим установку и настройку как на Windows , так и на Linux (дистрибутив Ubuntu ) хост.
Первым шагом будет конечно же скачивание и установка агента. Для начала скачивания перейдите пожалуйста по ссылке . Скачали архив, распаковали и видим 2 папки, одна с установщиками для разных систем, вторая с примером файла конфигурации. Распакуем на диск С:\ файл конфигурации и установщик для вашей системы(32/64bit ).
Перед установкой нужно внести изменения в файл конфигурации. Откроем файл, ищем строки и подставляем свои значения.
LogFile={путь к логфайлу} Server={ip адрес zabbix сервера} Hostname={имя хоста}
Hostname обязательно должно совпадать с именем хоста в панели управления Zabbix иначе работать не будет. Эти настройки обязательно нужны для работоспособности системы, хотя и лог писать не обязательно, но это не будет лишним.
Откроем командную строку и переходим в корень диска C:\
, делается это командой cd C:\ . Если установщик вы распаковали не в корень, а в иную папку, перейдите в эту директорию. Выполняем команду zabbix_agentd.exe --install .
Если файл конфигурации находится не в корне или имеет имя отличное от стандартного, выполните zabbix_agentd.exe --config {файл_конфигурации} --install .
Если установка прошла успешно, выполняем zabbix_agentd.exe --start . Теперь zabbix agent работает как сервис в нашей системе. Для того чтобы узнать какие параметры агент будет отправлять серверу можно выполнить команду zabbix_agentd.exe --print .
Для скачивания агента для вашей системы нужно перейти по ссылке . Ищем нужный нам файл, при помощи команд скачиваем и устанавливаем, у меня они выглядят таким образом:
Cd /tmp wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix/zabbix-agent_3.0.0-1+trusty_amd64.deb dpkg -i zabbix-agent_3.0.0-1+trusty_amd64.deb
Если в процессе установки возникают проблемы с зависимости и выскакивает ошибка, что чего-то не хватает, выполняем команду apt-get -f install .
Исполняемый файл агента находится по адресу /usr/sbin/zabbix_agentd , файл конфигурации /etc/zabbix/zabbix_agentd.conf . Файл конфигурации такой же как и для Windows ОС. Поэтому настройка идентична. Единственным нюансом является то, что агент нужно запускать от имени отдельного пользователя, если вы не используете агент на машине вместе с сервером, то можно оставить пользователя zabbix , однако, если используется на одной машине вместе с сервером, желательно изменить пользователя на другого, делается это в файле конфигурации редактированием параметра User .
Запускаем агент командой /usr/sbin/zabbix_agentd и переходим к шагу добавления хоста в панель управления Zabbix .
С установкой агента закончили, теперь нужно создать и настроить хост в панели управления zabbix. Переходим в Configuration->Hosts->Create host .
Host Name - имя хоста которое мы прописывали в конфиге Zabbix agent; Groups - группа к которой относится хост; Agent interfaces - заполняем ip адрес хоста и нажимаем "add" ;
Теперь переходим на вкладку «Templates» , нажимаем «Select» из списка выбираем «Template OS Windows» , после чего нажимаем на ссылку(не кнопку) «Add» . Все, шаблон добавили, нажимаем кнопку «Add» и наш хост добавлен.
Теперь осталось немного подождать пока графики заполнятся данными и их можно будет увидеть в разделе «Dashboard->Graphs» .
Как видите, особых сложностей с добавлением хостов с ОС Windows/Linux на борту нету. В следующей статье я опишу процесс создания шаблона для сетевого оборудования D-link.
Если у вас возникли трудности или проблемы с установкой и настройкой, пишите ваши комментарии, обязательно разберемся.
Рассмотрим как установить и настроить Zabbix-агенты для наблюдения за системами ОС Windows и Linux . По данной у меня развернут Zabbix-сервер 3.2.5 , соответственно все агенты будут устанавливаться версии 3.2 .
Скачиваем с оф. сайта Zabbix-агента для Windows систем.
Распаковываем скачанный архив и запускаем Командную строку от администратора . Переходим в каталог с установочными файлами агента (для корректной работы агента, учитываем разрядности системы):
Cd C:\zabbix_agents_3.2.0.win\bin\win64
Для установки одиночного экземпляра Zabbix-агента с файлом конфигурации c:\zabbix_agentd.conf по-умолчанию, выполняем:
Zabbix_agentd.exe --install
Так же есть возможность при установке указать путь к файлу конфигурации, отличный от c:\zabbix_agentd.conf . для этого выполняем:
Zabbix_agentd.exe --config <полный_путь_к_файлу_конфигурации> --install
Можно установить несколько экземпляров Zabbix агента службами, примерно следующим образом:
Zabbix_agentd.exe --config <файл_конфигурации_для_экземпляра_1> --install --multiple-agents zabbix_agentd.exe --config <файл_конфигурации_для_экземпляра_2> --install --multiple-agents ... zabbix_agentd.exe --config <файл_конфигурации_для_экземпляра_N> --install --multiple-agents
Теперь нужно выполнить настройку файла конфигурации агента. Шаблон конфигурации находится в установочном каталоге агента в папке conf , файл zabbix_agentd.win.conf .
Если была выполнена обычная установка, то копируем шаблон zabbix_agentd.win.conf в корень диска C:\ и переименовываем файл в zabbix_agentd.conf .
Если была выполнена установка с указанием пути к файлу конфигурации, то копируем шаблон zabbix_agentd.win.conf в папку которую указывали при установке Zabbix-агента и переименовываем файл в zabbix_agentd.conf .
Выполняем настройку файла конфигурации. Приводим следующие параметры в файле к виду:
Server= ServerActive= HostnameItem=system.hostname
Запускаем службу Zabbix-агента. Пуск — Панель управления — Администрирование — Службы . Находим службу Zabbix Agent и нажимаем Запустить .
Запустить службу можно так же из командной строки . Для запуска одиночного экземпляра Zabbix-агента с файлом конфигурации по умолчанию:
Zabbix_agentd.exe --start
Для запуска одиночного экземпляра Zabbix-агента с отличным от умолчания файлом конфигурации:
Zabbix_agentd.exe --config <ваш_файл_конфигурации> --start
Для запуска одного из нескольких экземпляров Zabbix-агента:
Zabbix_agentd.exe --config <файл_конфигурации_этого_экземпляра> --start --multiple-agents
Остановка службы Zabbix-агента. Пуск — Панель управления — Администрирование — Службы . Находим службу Zabbix Agent и нажимаем Остановить
.
Остановка Zabbix-агента, который запущен с файлом конфигурации по умолчанию:
Zabbix_agentd.exe --stop
Остановка Zabbix-агента, который запущен с другим файлом конфигурации:
Zabbix_agentd.exe --config <ваш_файл_конфигурации> --stop
Остановка одного из нескольких экземпляров Zabbix-агента:
Zabbix_agentd.exe --config <файл_конфигурации_этого_экземпляра> --stop --multiple-agents
Удаления Zabbix-агента, который использует файл конфигурации по-умолчанию:
Zabbix_agentd.exe --uninstall
УдаленияZabbix-агента, который не использует файлом конфигурации по-умолчанию:
Zabbix_agentd.exe --config <ваш_файл_конфигурации> --uninstall
Удаления нескольких экземпляров Zabbix-агента из служб Windows:
Zabbix_agentd.exe --config <файл_конфигурации_экземпляра_1> --uninstall --multiple-agents zabbix_agentd.exe --config <файл_конфигурации_экземпляра_2> --uninstall --multiple-agents ... zabbix_agentd.exe --config <файл_конфигурации_экземпляра_N> --uninstall --multiple-agents
Если удалить службу выше перечисленными способами не удается, то можно удалить службу средствами Windows, предварительно остановив работу службы и выполнив в командной строке с правами администратора:
Sc delete [имя службы]
На этом установка Zabbix-агента на ОС Windows завершена, теперь рассмотрим как установить агента на ОС Linux .
Установку Zabbix-агента буду рассматривать на Ubuntu Server 14.04 .
Скачиваем необходимый пакет и устанавливаем его:
Wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+trusty_all.deb sudo dpkg -i zabbix-release_3.2-1+trusty_all.deb
Обновляем данные репозиториев и устанавливаем самого агента:
Sudo apt-get update sudo apt-get install zabbix-agent
Выполняем настройку Zabbix-агента, файл конфигурации располагается в /etc/zabbix/zabbix_agentd.conf . Отредактируем его:
Sudo nano /etc/zabbix/zabbix_agentd.conf
И вносим следующие изменения:
Server= ServerActive= HostnameItem=system.hostname Include=/etc/zabbix/zabbix_agentd.conf.d/
Сохраняем изменения в файле и перезапускаем службу Zabbix-агента :
Sudo service zabbix-agent restart
На этом установка и настройка Zabbix-агента выполнена. Теперь рассмотрим как заводить хосты на самом Zabbix-сервере .
Заходим на Zabbix-сервер , посредством Web-интерфейса. Переходим Настройка (Configuration)- Узлы сети (Hosts) и нажимаем Создать узел сети (Create host)
Вкладка Узел сети (Host). Задаем Имя узла сети (Host name), добавляем узел в группу, если нужной группы нет в списке, то в поле Новая группа (New Group) указываем название группы. В поле Интерфейсы агента , можно выбрать каким методом добавить узел сети, по IP-адресу или по его DNS имени.
Переходим во вкладку Шаблоны (Templates). В пункте Соединить с новыми шаблонами (Link new templates):
Нажимаем Добавить (Add), чтобы закрепить выбранный шаблон к данному узлу сети.
Видим что в графе Присоединенные шаблоны (Linked templates), появился выбранный шаблон. Нажимаем Добавить (Update).
Все теперь добавленный узел сети будет под присмотром Zabbix-сервера . Для наглядности процесса посмотрим мониторинг в действии, переходим Мониторинг — Графики , выбираем какой график мы хотим посмотреть, в моем случае я выбрал отобразить сколько занято места на диске D .
Вот по такому принципу добавляются узлы сети в Zabbix-сервер. Хочу обратить внимание что представленный пример является базовым методом добавления и использования входящих в состав Zabbix шаблона. На самом деле Zabbix является конструктором, в котором можно реализовать сложный системы мониторинга узлов сети, дальше только ваш полет фантазии.