- Установка и настройка Zabbix-агента на CentOS
- Шаг 1. Добавляем репозиторий
- Шаг 2. Устанавливаем Zabbix-agent
- Шаг 3. Настраиваем агента
- Шаг 4. Настраиваем брандмауэр
- Firewalld
- Iptables
- Установка и настройка zabbix агента в Ubuntu Linux
- Шаг 1: Включите репозиторий Zabbix на удаленном хосте
- Шаг 2: Установка Zabbix агента
- Шаг 3: Настройка Zabbix агента
- Шаг 4: Настройка брандмауэра
- Шаг 5: Добавление Хоста на Zabbix — Server Ubuntu Linux
- Заключение
- Мониторим всё: расширение агентов Windows и Linux при помощи скриптов
- Немного матчасти
- Мониторинг SMART через UserParameter
- Мониторинг SMART через Flexible UserParameter
- Мониторинг SMART через Flexible UserParameter c Low-level Discovery
- Контроль за установкой новых программ на Windows
- В итоге
Установка и настройка 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.
Например, мой 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 агента растут от версии к версии.
Что делать, если того, что мы хотим контролировать через 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, который делает ровно тоже самое.
Так что теперь рассмотрим пример, который уже больше будет походить на реалистичный.
Если нам интересно мониторить момент, когда пора планово менять жесткие диски, то есть два варианта:
- Если диски за аппаратным RAID-контроллером, то, как правило, сами диски операционная система «не видит». Поэтому ищем способы как вытащить информацию о состоянии жестких дисков через утилиты или SNMP-сабагента, которые нам любезно предоставил(или не предоставил) производитель RAID-контроллера. Для каждой отдельной серии контроллеров свой путь до этой информации.
- Если речь идет о просто рабочих станциях, серверах с софтовом 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), про которую мы уже говорили.
Низкоуровневое обнаружение позволяет системе мониторинга обнаруживать какое количество однотипных элементов присутствует на узле сети и динамически по шаблону создавать необходимые элементы данных, триггеры и графики для этих элементов. «Из коробки» системе доступна возможность находить файловые системы, сетевые интерфейсы и 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.
Источник