В предыдущей статье CentOS: установка, настройка Zabbix-agent и добавление нового хоста в мониторинг мы добавили новый хост в систему мониторинга, которую установили по статье CentOS: установка сервера мониторинга Zabbix.
Теперь пора заняться настройкой того, что именно мы хотим мониторить.
В примерах используется Zabbix с английским интерфейсом, но названия элементов и деталей в описании есть и на русском, что бы избежать путаницы.
В статье будет показано как:
- создавать группы хостов;
- создавать шаблоны целей мониторинга;
- создавать элементы данных;
- создавать группы элементов данных;
- создавать графики.
Когда я первый раз столкнулся с Zabbix-ом – то первое время путался в определениях, принятых в этой системе. Поэтому – отдельно несколько слов о принятых в ней именах объектов.
Шаблон (teamplate) – это объект, содержащий в себе несколько элементов данных (items), каждый из которых включает в себя определённые ключи (keys), по которым выполняется проверка хоста.
Кроме того, в шаблон можно включить:
- группы элементов данных (applications) – по сути – тот же шаблон, но хранящий в себе только элементы данных (items);
- триггеры (triggers) – объект, обрабатывающий полученную информацию от элементов данных и на основе этой информации оценивающий состояние элемента хоста (например – состояние виртуальной памяти, или нагрузку на процессор) и, в зависимости от настройки, определяющий “важность” события;
- графики (graphs) – визуализированное представление полученной от элементов данных информации;
- комплексные экраны (screens) – несколько объектов, сгруппированных для отображения на одной странице – графики, карты сети, состояние триггеров, простая текстовая информация.
Это – основные объекты шаблона, с которыми мы и будем работать дальше. Хотя у Zabbix есть множество других полезных вещей – мы начнём настройку мониторинга хоста с этих объектов.
Приступим к созданию шаблона.
В первую очередь нам необходимо определить – что именно мы хотим мониторить? Для первоначальной настройки сервера Zabbix возьмём стандартные данные, которые будут интересны при мониторинге любого сервера:
CPU – общая нагрузка на сервер (load avarage
); количество процессов;
Memory – доступная и занятая физическая/виртуальная память;
Filesystem – доступное и занятое место на жестком диске сервера, скорость чтения с/на диски;
Network – количество полученной/переданной информации в байтах, количество пакетов, количество ошибок, счётчики “сброшенных” пакетов.
Особенный интерес (для автора, по крайней мере) представляет мониторинг Java, но примеры его настройки будут позже и в другой статье. Потом можно будет добавить отдельный шаблон, который будет включать в себя набор объектов мониторинга Java-приложений и этот шаблон подключить к наблюдаемому хосту. Другой вариант – добавить отдельную группу элементов данных, которую можно будет включить в создаваемый сейчас шаблон.
Теперь создадим новую группу хостов, для которой мы будем применять наш шаблон.
Переходим в раздел Configuration > Host groups, справа вверху нажимаем кнопку Create host group:
Задаём имя новой группе и определяем какие сервера будут к ней относится (это можно сделать позже, оставив группу пустой):
После нажатия кнопки Save мы возвращаемся к списку имеющихся групп, и видим созданную нами:
В колонке Members указаны хосты, состоящие в этой группе. Но поле Teampletes содержит (0) подключенных к этой группе шаблонов. Перейдём к созданию шаблона – Configuration > Teamplates, справа вверху нажимаем Create teamplate:
Заполняем поля Name (Имя шаблона), Visible name (Отображаемое имя), какая группа хостов и сервера будут связаны с этим шаблонов:
Во вкладке Linked teamplates можно выбрать уже существующие шаблоны, которые будут связаны с этим, но мы этого делать не будем, а создадим полностью новый шаблон.
Нажимаем Save, и возвращаемся к списку шаблонов, в начале списка которых видим наш – пока полностью пустой, если не считать связанного с ним хоста:
Приступим к созданию своих групп элементов данных, которые будут относится к нашему шаблону:
Кликаем по Applications:
На следующей странице видим что No applications defined и нажимаем Create application:
Начнём с набора для мониторинга CPU. Так как уже существует стандартная группа CPU, во избежание путаницы зададим имя, связанное с именем шаблона:
Жмём Save, возвращаемся в окно со списком имеющихся групп элементов данных:
Таким же образом создадим группы Memory_LMS, Network_LMS, Filesystem_LMS:
Теперь время приступить к самой интересной части – созданию непосредственно самих элементов данных. Кликаем на Items:
В следующем окне видим, что список элементов пустой и нажимаем Create item:
Остановимcя подробнее на этом моменте.
Host
– имя хоста, группы хостов, шаблона или группы шаблонов, к которым будет принадлежать этот элемент;
Name
– собственно, имя элемента;
Type
– тип элемента, к которому будет он будет принадлежать, в данном случае – Zabbix agent (именно он будет собирать необходимые данные для этого элемента);
Key
– ключ элемента, по которому будет определяться получаемая элементом данных информация. Очень удобно использовать стандартные ключи, нажав кнопку Select;
Type of information
– тип получаемых данных. Если сомневаетесь какой именно использовать – можно посмотреть на этой странице>>>, или в уже имеющихся элементах – например в шаблоне Template OS Linux имеется элемент Processor load (1 min average per core). Кликнув на нём – получите исходные данные, такие как ключ и тип информации:
Так же очень полезная опция – импорт существующего элемента. Для этого – в списке элементов отметьте необходимый, и слева внизу выберите Copy selected to:
В следующем окне выбираем группу, в которую мы хотим копировать элемент:
Теперь, если вернутся к списку связанных с нашим шаблонов элементов, мы увидим новый:
Units
– специальное значение для обработки полученных данных перед их отображением, подробнее тут>>>;
Applications
– к какой группе элементов данных будет относиться новый элемент;
Description
– опционально, просто описание элемента;
Status
– статус элемента после добавления.
Заполняем необходимые данные для нашего элемента. К примеру – создадим элемент, отслеживающий общее количество процессов:
Теперь у нас есть два элемента данных. Попробуем их визуализировать, что бы посмотреть что происходит на сервере. Нажимаем Graphs, что бы перейти к созданию графиков и на следующей странице выбираем Create graph:
Заполняем Name и подключаем элементы данных, которые будут отображаться в этом графике:
Посмотрим, что у нас получилось. Переходим в Monitoring > Graphs, выбираем Group, Host и созданный нами график:
На скриншоте видно, что присутствует уже готовый триггер, который скопировался вместе с элементом данных Processor load.
Но настройка триггеров – тема для отдельной статьи.
Что бы продемонстрировать график лучше – установим утилиту cpuburn
:
# yum -y install cpuburn
И запустим её что бы увеличить нагрузку:
# for i in {1..2}; do burnK7 & done [3] 9501 [4] 9502
Ждём некоторое время и смотрим на график ещё раз:
Теперь картина видна лучше.
В целом, на этом создание шаблона, элементов данных и графиков для сервера Zabbix можно считать выполненными.
В следующий раз приступим к настройке JMX-мониторинга и созданию/редактированию триггеров.