Linux zabbix agent status

Установка и настройка Zabbix-агента на CentOS

Шаг 1. Добавляем репозиторий

По умолчанию, в репозитории Linux CentOS нет пакета zabbix-agent, поэтому необходимо добавить репозиторий от Zabbix. Для этого переходим на страницу Zabbix Official Repository и переходим в каталог, соответствующий нужной версии агента (последней или такой же, как версия сервера) — затем в rhel — после версию CentOS (6, 7, 8) — x86_64 — наконец, копируем ссылку на последнюю версию релиза:

Использую данную ссылку, устанавливаем репозиторий следующей командой:

rpm -Uvh https://repo.zabbix.com/zabbix/4.3/rhel/8/x86_64/zabbix-release-4.3-3.el8.noarch.rpm

* в данном примере мы устанавливаем репозиторий для Zabbix версии 4.3 и CentOS 8.

Шаг 2. Устанавливаем Zabbix-agent

Установка выполняется одной командой:

yum install zabbix-agent

Отвечаем на все вопросы утвердительно (Y).

Шаг 3. Настраиваем агента

Открываем конфигурационный файл:

По умолчанию, достаточно просто прописать IP-адрес сервера мониторинга:

* в данном примере сервер имеет IP 192.168.0.15

Шаг 4. Настраиваем брандмауэр

Firewalld

Создаем следующее правило:

firewall-cmd —permanent —new-service=zabbix

firewall-cmd —permanent —service=zabbix —add-port=10050/tcp

firewall-cmd —permanent —service=zabbix —set-short=»Zabbix Agent»

firewall-cmd —permanent —add-service=zabbix

* в данном примере, мы создали для брандмауэра службу zabbix. По умолчанию, работает на TCP порту 10050.

и не забываем применить настройки:

Iptables

iptables -I INPUT 1 -p tcp —dport 10050 -j ACCEPT

service iptables save

* если команда вернет ошибку, установим пакет iptables-services командой yum install iptables-services.

Источник

Установка и настройка zabbix агента в Ubuntu Linux

Zabbix agent устанавливается на удаленном хосте для мониторинга жесткого диска, процессора памяти и т. д. Агент собирает данные и отправляет их обратно на Zabbix — сервер.

Агенты Zabbix могут использовать пассивные или активные проверки для передачи информации. При пассивной проверке Zabbix-сервер (poller) запрашивает у агента определенную информацию, и агент отправляет обратно значение. В активной проверке агент обрабатывает все данные и отправляет их на Zabbix-сервер. Однако агент периодически подключает сервер для сбора метрики, которую необходимо отслеживать.

Эту инструкцию мы начнем с установки Zabbix агента на удаленный хост Ubuntu 20.04, а затем добавим Хост на панель мониторинга Zabbix server.

Рекомендую. к прочтению:

Шаг 1: Включите репозиторий Zabbix на удаленном хосте

Как всегда начните с обновления списков пакетов на удаленном хосте.

Затем загрузите Zabbix файл из репозитория Центра загрузки Zabbix. Делается это следующим образом.

Затем включите его с помощью команды dpkg следующим образом:

$ sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

Далее обновите индекс пакетов Ubuntu, чтобы убедиться, что репозиторий синхронизирован

Шаг 2: Установка Zabbix агента

Как только репозиторий будет создан, установите Zabbix агент в Ubuntu Linux.

После завершения установки проверьте, работает ли демон Zabbix-agent следующим образом:

Zabbix — agent прослушивает порт 10050. Возможно, вы захотите проверить это. Сделать проверку можно с помощью команды netstat:

На изображении выше видно, что Служба Zabbix agent запущена и работает.

Шаг 3: Настройка Zabbix агента

Мы установили агент Zabbix и работает он как ожидалось. Но этого недостаточно. Нам нужно внести несколько изменений в конфигурационный файл. Сделайте изменения в файле /etc/zabbix/zabbix_agentd.conf, чтобы агент мог взаимодействовать с сервером Zabbix..

$ sudo vim /etc/zabbix/zabbix_agentd.conf

Здесь мы собираемся включить пассивные проверки агента. Сначала найдите переменные “server” и “Hostname” в файле zabbix_agentd.conf.

Читайте также:  Which file system is used in windows

Например, мой IP адрес Zabbix-сервера — 10.128.0.16, а имя хоста (client system).

Сохраните изменения и выйдите из файла. Затем перезапустите службу Zabbix agent для внесения изменений.

$ sudo systemctl restart zabbix-agent

Примечание: Если вы настраиваете активную проверку, то ищите переменную “ServerActive” и используйте порт 10051.

Шаг 4: Настройка брандмауэра

Последним шагом в настройке хоста является разрешение порта, который Zabbix агент слушает через брандмауэр. Если у вас включен брандмауэр UFW, выполните следующие команды:

Затем перезагрузите брандмауэр

А так же убедитесь, что порт был открыт и разрешен на брандмауэре.

Идеально! Теперь zabbix — агент должен работать.

Шаг 5: Добавление Хоста на Zabbix — Server Ubuntu Linux

По умолчанию Zabbix отслеживает только тот сервер, на котором он установлен. В этом разделе мы добавим Zabbix-Host на Zabbix-Server через браузер.

Итак, войдите в свой экземпляр Zabbix-сервера используя браузер.

В левой навигационной панели выберите пункт Configuration > > Hosts

Настройка хостов на Zabbix сервера

Перейдите в правый верхний угол и нажмите кнопку «Создать хост«. (Create host)

Создать хост

В появившемся окне заполните данные удаленного хоста, такие как имя хоста. видимое имя, IP-адрес, краткое описание и нажмите на кнопку «Выбрать» (Select) рядом с текстовым полем «Группы«.

Заполните все поля

В появившемся списке выберите пункт «Серверы Linux‘ и нажмите кнопку «Выбрать«.

Добавить группу хостов

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

Добавить группу серверов Linux

Затем перейдите на вкладку «шаблоны» (Templates) и нажмите кнопку «Выбрать» рядом с текстовым полем «Связать новые шаблоны» (Link new Templates).

Перейдите на вкладку шаблоны

Нажмите на кнопку «Выбрать«(Select) рядом с текстовым полем «Группа хостов«, как показано на рисунке.

Поиск группы хостов

Нажмите на опцию «Шаблоны/операционные системы» (Templates/Operating systems), как показано на рисунке.

выберите шаблоны опции операционной системы

Затем выберите опцию «Template OS Linux by Zabbix agent’ и нажмите кнопку «Выбрать» (Select).

Выберите шаблон OS Linux с помощью Zabbix агента

Затем нажмите на кнопку «Добавить» (Add).

Ссылка новый шаблон для Zabbix агента

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

Удаленный хост добавлен на в Zabbix сервер

Заключение

В этой инструкции мы подробно показали, как установить агент Zabbix в системе Ubuntu 20.04 Linux. А так же как настроить его для связи с сервером Zabbix. Это поможет вам активно отслеживать целевые локальные ресурсы и приложения.

Источник

Мониторим всё: расширение агентов Windows и Linux при помощи скриптов

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

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

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

Читайте также:  Programdata что за папка windows 10 можно ли удалить

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

Нам оставили несколько стандартных интерфейсов для того, чтобы расширить возможности Заббикса по мониторингу серверов настолько, насколько позволит нам наша фантазия и наличие свободного времени на написание скриптов. Интерфейсы эти UserParameter и zabbix_sender. О первом и пойдет речь, а в качестве примеров будет показано как можно собирать состояние S.M.A.R.T жестких дисков и контролировать, когда кто-то удаляет или устанавливает новые программы на своей Windows-машине.

Немного матчасти

Если вы уже хоть раз настраивали Zabbix агент на сервере, то начать использовать UserParameter не составит труда. Чтобы добавить новый параметр нужно сделать несколько вещей:

  • Добавить в конце конфигурационного файла zabbix_agentd.conf строчку вида

где:

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

А вот сразу очень простой пример, который лежит в каждом стандартном конфиге для Linux:

Итак, ключ здесь system.test, а выполняем команду who | wc -l, которая возвращает нам количество открытых сессий в системе. Добавляем (или раскомментируем данную строчку если уже есть), идем дальше.

  • В Веб-консоли Zabbix создать новый элемент данных с ключом, который мы использовали, если брать пример выше, то это system.test.

Для этого нажимаем «Создать элемент данных»

и затем выставляем ключ такой же, как указали в конфиг-файле, а тип Zabbix агент:

  • Перезагрузить Zabbix агента, чтобы изменения в конфиг-файле вступили в силу

Наблюдаем результат в последних данных:

Мониторинг SMART через UserParameter

Пример выше имеет мало практического применения, учитывая, что уже итак существует стандартный ключ system.users.num, который делает ровно тоже самое.

Так что теперь рассмотрим пример, который уже больше будет походить на реалистичный.

Если нам интересно мониторить момент, когда пора планово менять жесткие диски, то есть два варианта:

  1. Если диски за аппаратным RAID-контроллером, то, как правило, сами диски операционная система «не видит». Поэтому ищем способы как вытащить информацию о состоянии жестких дисков через утилиты или SNMP-сабагента, которые нам любезно предоставил(или не предоставил) производитель RAID-контроллера. Для каждой отдельной серии контроллеров свой путь до этой информации.
  2. Если речь идет о просто рабочих станциях, серверах с софтовом RAID и т.д., то тогда к дискам есть доступ из операционной системы, и мы вольны использовать различные утилиты для чтения их статуса. В случае Zabbix нам подходит утилита smartctl, из пакета SMARTMONTOOLS.

В Debian установка SMARTMONTOOLS сводится к:

и утилита готова к использованию.

Для каждого диска, который есть в системе сначала проверим, что SMART включен:

если вдруг SMART поддерживается диском, но выключен, то активируем его:

Теперь мы можем проверять статус SMART командой:

Именно эту команду мы и запишем в наш zabbix_agentd.conf:

где uHDD.health — ключ.

Мониторинг SMART через Flexible UserParameter

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

В веб-интерфейсе Zabbix в ключе мы будем подставлять параметры в квадратные скобки вместо *. Например, для одного элемента данных мы напишем sda, а для другого sdb. В команде этот параметр найдет отражение там, где стоит переменная $1.

Создадим для второго диска элемент данных:

И через некоторое время сможем наблюдать результат в последних данных:

Мониторинг SMART через Flexible UserParameter c Low-level Discovery

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

Читайте также:  See all devices linux

Низкоуровневое обнаружение позволяет системе мониторинга обнаруживать какое количество однотипных элементов присутствует на узле сети и динамически по шаблону создавать необходимые элементы данных, триггеры и графики для этих элементов. «Из коробки» системе доступна возможность находить файловые системы, сетевые интерфейсы и SNMP OID’ы. Однако, и здесь разработчики оставили возможность дополнить стандартные возможности, нужно просто передать в систему информацию о том, какие элементы обнаружены в формате JSON. Этим и воспользуемся.

Создадим маленький скрипт на perl, smartctl-disks-discovery.pl. Он будет находить все диски в системе и выводить эту информацию в JSON, передавая также информацию, включен ли у диска SMART или нет, а также попытается сам включить SMART, если он выключен:

При запуске скрипт выдает:

Теперь, для того чтобы скрипт автоматически запускался Zabbix’ом, просто добавим еще один UserParameter в zabbix_agentd.conf:

Покончив с настройкой конфига, переходим в веб-интерфейс, где создаем новое правило обнаружения для smartctl:

Обратите внимание на ключ и на фильтр, (<#SMART_ENABLED>=1) благодаря последнему будут добавляться только те обнаруженные диски, которые поддерживают SMART. Теперь мы можем переписать два наших элемента данных для дисков sda и sdb в один прототип элементов данных, просто заменив имя диска на макрос <#DISKNAME>:

Последнее, перед тем, как Zabbix сможет запускать команды, которые мы прописали в zabbix_agentd.conf из-под root и мониторить SMART, нужно добавить разрешения для его пользователя запускать эту команду без ввода пароля, для этого добавим в /etc/sudoers строчку:

Готовый шаблон для мониторинга SMART с остальными элементами данных, триггерами прикладываю, так же как и настроенный под него конфиг.

Контроль за установкой новых программ на Windows

Zabbix агент, установленный на Windows, точно также может быть расширен через UserParameter, только команды будут уже другие. Хотя, например, smartctl — кроссплатформенная утилита, и точно также можно ее использовать для контроля за жесткими дисками в Windows.

Кратко рассмотрим еще другой пример. Задача получать уведомление каждый раз, когда пользователь самостоятельно удаляет или устанавливает программы.
Для этого будем использовать наш vbs-скрипт:

Для его интеграции с Zabbix добавим UserParameter в конфиг-файл:

Добавим элемент данных в шаблон для Windows:

Добавим триггер:

и действие, которое будет отправлять e-mail уведомление:

Весь процесс мониторинга выглядит так: каждый час запускается скрипт Zabbix агентом, который сравнивает два списка программ: текущий и предыдущий. Затем скрипт выписывает все изменения в отдельный файл. Если же изменений нет, то в файл пишется 0x0

Содержимое файла уходит на Zabbix сервер, где поднимается триггер в случае, если значение элемента данных uDiffProgramms отлично от 0x0. Затем отдельное действие отправляет по почте уведомление со списком того, что было установлено или удалено на данном компьютере:

В итоге

UserParameter — отличная и простая возможность расширить функционал системы самостоятельно. Стоит упомянуть и альтернативы: zabbix_sender, который, например, подойдет для тех случаев, когда нужно отправлять данные в Zabbix не по расписанию, (как это делает UserParameter), а по какому-то событию; и system.run[], который похож на UserParameter, но удобнее тем, что не нужно вносить изменения во все конфиги агентов, достаточно просто добавить этот элемент данных в шаблон. Более того, в следующем крупном релизе Zabbix 2.2 нас ожидает еще один новый способ расширить возможности агента- это подключаемые модули. Ждем с нетерпением!

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

Источник

Оцените статью