Retifff's Blog

Мой ИТ блог

Установка агента NetXMS на Ubuntu и CentOS

Posted by Retifff на 23.09.2019

Установка агента на Linux довольно существенно различается для разных дистрибутитов, поэтому в этой статье я рассмотрю два основных варианта, установку на Ubuntu (Debian аналогично) и CentOS (Red Hat, Fedora аналогично).

Установка агента на Ubuntu Server

В консоли NetXMS наш обнаруженный сервер с Ubuntu без агента выглядит примерно так:

Для Ubuntu установка агента NetXMS довольно проста. В качестве операционной сиcтемы я использовал версию Ubuntu 18.04 LTS. Так как пакета агента NetXMS в репозиториях Ubuntu нет, скачиваем пакет с официального сайта (актуальный релиз лучше посмотреть на https://packages.netxms.org/):

wget https://packages.netxms.org/netxms-release_1.5_all.deb

Устанавливаем пакет в систему:

sudo dpkg -i netxms-release_1.5_all.deb

Обновляем списки пакетов:

sudo apt-get update

Собственно установка агента NetXMS:

sudo apt-get install netxms-agent

Агент установлен, проверим его статус:

systemctl status nxagentd
● nxagentd.service - NetXMS Agent
   Loaded: loaded (/lib/systemd/system/nxagentd.service; disabled; vendor preset
   Active: active (running) since Sat 2019-09-21 14:31:41 UTC; 1min 38s ago
 Main PID: 2139 (nxagentd)
    Tasks: 18 (limit: 3500)
   CGroup: /system.slice/nxagentd.service
           └─2139 /usr/bin/nxagentd -d

Sep 21 14:31:37 test-ubuntu-server systemd[1]: Starting NetXMS Agent...
Sep 21 14:31:37 test-ubuntu-server systemd[1]: nxagentd.service: Can't open PID
Sep 21 14:31:41 test-ubuntu-server systemd[1]: Started NetXMS Agent.

В статусе видно, что агент запущен, но не стартует автоматически при загрузке системы. Исправляем это:

sudo systemctl enable nxagentd

Еще раз проверяем статус:

С сервисом всё отлично. Теперь стоит посмотреть на содержимое файла конфигурации, созданного инсталлятором:

cat /etc/nxagentd.conf
# Log File
LogFile=/var/log/nxagentd

# IP white list, can contain multiple records separated by comma.
# CIDR notation supported for subnets.
MasterServers=127.0.0.0/8

Как видим, сервер NetXMS там не указан (вернее, указан 127.0.0.1), субагенты не прописаны. Поэтому нужно там прописать то, что нужно нам. Выполняем:

sudo nano /etc/nxagentd.conf

И дополняем конфигурацию агента нужной информацией, именем сервера NetXMS в параметре MasterServers и субагентами для Linux:

# Log File
LogFile=/var/log/nxagentd

# IP white list, can contain multiple records separated by comma.
# CIDR notation supported for subnets.
MasterServers = netxms.corp.testcompany.ru
SubAgent = netsvc.nsm
SubAgent = dbquery.nsm
SubAgent = filemgr.nsm
SubAgent = ping.nsm
SubAgent = portcheck.nsm

Получилось как-то так:

Чтобы агент перечитал конфигурацию, нужно его рестартовать:

sudo systemctl restart nxagentd

Теперь порядок. В консоли через некоторое время будет видно, что агент работает и появилось много дополнительной информации о системе:

Обратите внимание на версию агента, из этого пакета ставится последняя версия, 3.0. Впрочем, с сервером версии 2.2.16 она вполне себе работает. С Ubuntu закончили, переходим к CentOS.

Установка агента на CentOS Server

На CentOS установка агента несколько сложнее. Из исходников его собирать не нужно (хотя так написано в изрядно устаревшей документации), но повозиться придется.

Скачиваем дистрибутив агента:

wget https://netxms.org/download/releases/2.2/2.2.16/nxagent-2.2.16-linux-x86_64.tar.gz

Внутри архива уже имеется структура каталогов /opt/*, так что есть смысл её использовать, поэтому распаковываем его в корень файловой системы:

sudo tar zxvf nxagent-2.2.16-linux-x86_64.tar.gz -C /

Архив распаковывается в каталог /opt/netxms/. Сам бинарник агента лежит по следующему пути: /opt/netxms/bin/nxagentd. Файла конфигурации у нас нет (почему-то), поэтому нужно его создать. Создаем командой:

sudo touch /etc/nxagentd.conf

Редактируем (если с vi сталкиваетесь в первый раз, лучше погуглить сначала на тему «как выйти из vi»):

sudo vi /etc/nxagentd.conf

Содержимое туда помещаем ровно такое же, как и для Ubuntu:

# Log File
LogFile=/var/log/nxagentd

# IP white list, can contain multiple records separated by comma.
# CIDR notation supported for subnets.
MasterServers = netxms.corp.testcompany.ru
SubAgent = netsvc.nsm
SubAgent = dbquery.nsm
SubAgent = filemgr.nsm
SubAgent = ping.nsm
SubAgent = portcheck.nsm

Сервиса агента NetXMS у нас нет, потому что был не инсталлятор полноценный, а просто распаковка архива, поэтому придется его создать самим. Cоздаем файл сервиса:

sudo touch /etc/systemd/system/nxagentd.service

Редактируем:

sudo vi /etc/systemd/system/nxagentd.service

и пишем туда следующее содержимое:

[Unit]
Description=NetXMS Monitoring Agent

[Service]
Type=forking
ExecStart=/opt/netxms/bin/nxagentd -d

[Install]
WantedBy=multi-user.target

Сохраняем. Если мы сейчас посмотрим статус сервиса:

systemctl status nxagentd

то увидим, что он не запущен и не стартует при загрузке системы:

● nxagentd.service - NetXMS Monitoring Agent
   Loaded: loaded (/etc/systemd/system/nxagentd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

Нужно запустить его и выставить старт при загрузке:

sudo systemctl enable nxagentd
sudo systemctl start nxagentd

Если опять посмотрим статус, то увидим, что сейчас всё отлично:

Если прямо сейчас мы попытаемся в консоли NetXMS посмотреть подключение агента, то ничего у нас не выйдет. Всё потому, что по умолчанию в CentOS работает установлен файрвол — firewalld. Можете проверить телнетом с сервера NetXMS доступность порта 4700 и убедиться, что он недоступен.

Для решения этой проблемы создаем правило для порта 4700 в firewalld:

sudo firewall-cmd --permanent --zone=public --add-port=4700/tcp

которое открывает порт 4700. Можно ограничиться конкретным IP-адресом, на который открывать порт. Это будет выглядеть так:

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule  family="ipv4" source address="192.168.1.55/24" port protocol="tcp"  port="4700" accept'

Где 192.168.1.55 — это адрес сервера NetXMS. И после этого перегрузить правила firewalld:

sudo firewall-cmd --reload

После этого всё должно заработать:

С агентами под Linux всё, можно двигаться дальше.

комментария 2 to “Установка агента NetXMS на Ubuntu и CentOS”

  1. Линус said

    А что делать если в системе нет vi и systemd?

    • Retifff said

      Любой текстовый редактор подойдет. А насчет отсутствия systemd, тут не подскажу, значит надо init скрипты писать, наверно.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

 
%d такие блоггеры, как: