ITСooky

IT-рецепты съедобные и не очень!

Система мониторинга NetXMS установка на FreeBSD 9.2

дата 07.04.2014

Zabbix — не предлагать, знаю пробовал(один триггер даже удалось создать). NetXMS — интересно что из себя представляет если просто наглядно красивая вещь надо поставить.

netxms_itcooky_013

И вообще, забегая вперед скажу — отличная штука!!! Можно с ПК или мобилки смотреть кто в сети, можно перезагрузить ПК который в сети с установленным агентом. Можно составлять и хранить графики с разными параметрами исп. памяти, CPU, HDD. Может карты строит по обнаруженным IP красивые(автоматом только картинки с агентами на Windows, остальные руками)!

Устанавливаем NetXMS

NetXMS есть в портах.
cd /usr/ports/net-mgmt/netxms
make

===>  netxms-1.0.13_2 is marked as broken: Does not fetch.
*** [all] Error code 1

Не работает!

Обновляем порты
portsnap fetch extract && portsnap fetch update

Не помогает, ну и ладно, будем ставить из дистрибутива!
Делаем папку
mkdir /usr/local/netxms
cd /usr/local/netxms

Скачиваем с сайта http://www.netxms.org/download/ последнею версию
fetch http://www.netxms.org/download/netxms-1.2.13.tar.gz
Распаковываем
tar zxvf netxms-1.2.13.tar.gz
Кладем в нашу папку, а то он распаковал в свою
mv /usr/local/netxms/netxms-1.2.13/* /usr/local/netxms/
Запускаем установку
sh ./configure --with-server --with-mysql --with-agent
make
make install

Теперь копируем файл настроек туда где они лежат по умолчанию
cp contrib/netxmsd.conf-dist /etc/netxmsd.conf
cp contrib/nxagentd.conf-dist /etc/nxagentd.conf

MySQl 5.1 у нас стоит, если не стоит поставьте!
Самое время создать пользователя для базы netxms
mysql -u root -p mysql
mysql> CREATE DATABASE netxms;
mysql> GRANT ALL ON netxms.* TO netxms@localhost IDENTIFIED BY 'PasSwOrd';
mysql> exit

Доводим до вида файл настроек
vi /etc/netxmsd.conf

DBDriver = mysql.ddr
DBServer = localhost
DBName = netxms
DBLogin = netxms
DBPassword = PasSwOrd
LogFile = /var/log/netxmsd
LogFailedSQLQueries = yes

Редактируем файл агента
vi /etc/nxagentd.conf

Добавляем строчку, пишем сюда IP интерфейсов сервера!

MasterServers = 127.0.0.1, 192.168.1.200, 192.168.2.200

Также заполним

LogFile = /var/log/nxagentd.log
FileStore = /var/netxms

Делаем папку
mkdir /var/netxms/

Создаем базу
/usr/local/bin/nxdbmgr init /usr/local/share/netxms/sql/dbinit_mysql.sql

Запускам сервер и агента
/usr/local/bin/nxagentd -d
/usr/local/bin/netxmsd -d

Чтобы каждый раз самому их не запускать руками — и потому что в crontab загонять нельзя(раньше так было), и потому что скриптов запуска в дистрибутиве нет то делаем скрипт по совету этому!

Создаем файл
vi /usr/local/etc/rc.d/netxmsd
туда вставляем

#!/bin/sh
# PROVIDE: netxmsd
# REQUIRE: DAEMON mysql-server
# BEFORE: LOGIN
# KEYWORD: shutdown
netxmsd_enable=${netxmsd_enable-"NO"}
netxmsd_flags=${netxmsd_flags-"-c /etc/netxmsd.conf -d"}
. /etc/rc.subr
name="netxmsd"
rcvar=`set_rcvar`
command="/usr/local/bin/netxmsd"
load_rc_config $name
start_cmd="echo \"Starting ${name}.\";  ${command} ${netxmsd_flags}"
run_rc_command "$1"

делаем его исполняемым
chmod +x /usr/local/etc/rc.d/netxmsd

В rc.conf
vi /etc/rc.conf
Пишем, одна страка чтобы включить в другой параметры
netxmsd_enable="YES"
netxmsd_flags="-d"

Создаем файл
vi /usr/local/etc/rc.d/nxagentd
туда вставляем

#!/bin/sh
# PROVIDE: nxagentd
# REQUIRE: DAEMON netxmsd
# BEFORE: LOGIN
# KEYWORD: shutdown
nxagentd_enable=${nxagentd_enable-"NO"}
nxagentd_flags=${nxagentd_flags-"-c /etc/nxagentd.conf -d"}
. /etc/rc.subr
name="nxagentd"
rcvar=`set_rcvar`
command="/usr/local/bin/nxagentd"
load_rc_config $name
start_cmd="echo \"Starting ${name}.\";  ${command} ${nxagentd_flags}"
run_rc_command "$1"

делаем его исполняемым
chmod +x /usr/local/etc/rc.d/nxagentd

В rc.conf
vi /etc/rc.conf
Пишем, одна страка чтобы включить в другой параметры
nxagentd_enable="YES"
nxagentd_flags="-d"

Для управления можно установить вебинтерейс на сервере но он работает на Java, или можно установить Management Console на ПК, но он тоже на Java на на ПК это не так страшно как на сервере (250 мегабайт лишними не бывают, да и не заработал он у меня).

Идем на Windows 8.1 ставим на нем Java с сайта жавы. И скачиваем с сайта www.netxms.org/download/ для вашей ОС Management Console Binaries. Это архив, его надо разархивировать и запустить nxmc.
netxms_itcooky_001

Имя: admin Пароль: netxms

Если все хорошо появится вот такая картинка!
netxms_itcooky_002

Естественно ничего нет кроме правильно отражаемых интерфейсов сервера.

Идем в Configuration > Network Discovery добавляем Active Discovery Targets и ставим галку на Active and Passive в General
netxms_itcooky_003

Не сразу но раздел Entire Network начнет заполнятся IP. Если нажать на IP правой мышкой и выбрать IP Neighbors то будут показаны IP из той же подсети
netxms_itcooky_004

Для более подробной информации нужно на каждом ПК установить Agent Packages качаем с того же сайта www.netxms.org/download/

При установке главное указать IP сервера, галочку тоже поставим может пригодится.
netxms_itcooky_005

И на способах сбора информации тоже все галочки ставим — ну может пригодятся же!
netxms_itcooky_006
Вот на ПК с агентом Netxms можно посмотреть в Software Inventory что из ПО на нем установлено… И отображает такой ПК сразу как Windows оэсный. Можно перезагрузить или выключить этот ПК!

Есть агент для Виндовс(проверил на 7, 8 и на XP — должно пройти какое то время — час-пол часа чтобы все функции появились), Мак, Линукс и для Android. Для Android смысла ставит нет, информации-функции ноль, а подключать сложно — надо в Infrastracture Service добавляет каждое устройство прописывая его ID!

А вот Management Console стоит установить — чтобы с телефона видеть кто в сети, и выключать ПК которым пора спать(на них должен стоять агент)!
netxms_itcooky_007

Займемся наглядным представлением. У нас есть Node наш сервер на котором уже стоит агент — а значит должно быть много полезной информации онем.

Нажимаем в Infra Stracture на наш сервер правой мышкой и выбираем Data Collection Configuration. Появляется страница с собираемыми параметрами их очень мало. Добавим еще один, с права вверх найдите характерный значок добавить New Parametr. В окне Parametr жмем Select и выбираем интересующий нас праметр.

netxms_itcooky_008

Что показывают параметры можно понять из названия, а вот работают они или нет написано в этой таблице: wiki.netxms.org/wiki/Agent_Parameters_Compatibility_Matrix

По умолчанию все устраивает, собирает раз в 60 секунд, хранить 30 дней!
netxms_itcooky_009

Чтобы посмотреть что набралось над нажать на этот Data Collaction в списке правой мышкой и выбрать, Last Value понятный список со значениями. Непонятное — неправильно время его забора(ни совпадает ни со времением сервера ни пк с Console Manager), это помешает строить графики.

Как выясняется время NetXMS вообще по барабану он берет часовой пояс сервера и смотрящего ПК и добавляет-вычитает разницу, но Manager Console NetXMS берет время смотрящего ПК и если неправильные часовые пояса или неправильное время — на графике ничего не видно — инфа далеко в прошлом ночью или в будущем!

Один часовой пояс у вас и на сервере — чтобы смотреть в реальном времени, время тоже надо точно поставить.

Следующая опасность это графики — тут надо самому выставит временные интервалы и единицы измерения.
Нажимаем на Data Collaction > Average CPU load for last minute правой мышкой Line Chart (если все правильно уже должно чтото видется, что больше единицы)

Нажимаем на график в любом месте Properties и выбираем
netxms_itcooky_010

Time period — надо ставить 60 и Minutes, для просмотра за час
Y Axis Range — среднее значение нагрузки прыгает от 0 до 1, больше 2 это уже бэда — сервер кряхтит! Так что ставим от 0 до 3

Если график вам понравился сохранейте его — он появится в разделе графиков, слева вверху иконочка — папочка с вылезающей картиночкой — и его можно будет смотреть!
netxms_itcooky_011

И вот на Android телефоне график по памяти! Andorid показывает графики по мере поступления данных вот за 24 часа но пока есть только с обеда
Screenshot_2014-04-07-15-26-19

Также можно добавить предупреждения, если значения будет больше-меньше заданного. Нажимаем на Data Collaction > Average CPU load for last minute левой мышой два раза это Edit. Идем в Thresholds и жмем Add
netxms_itcooky_012

Здесь grater then 2 и у нас будет предупреждение, значение превышено — своего предупреждения нельзя написать но уже будет понятно, что, что-то происходит.

Свой текст сообщения предупреждения можно добавить создав Event в Configuration > Event Configuration и потом его добавить в качестве Thresholds в событие в Data Collaction Configuration

Красота сидим смотрим графики на пк
netxms_itcooky_014
или мобилке
Screenshot_2014-04-08-13-36-31
Жалко что у меня ни одна из сетевых коробок не поддерживает SNMP а то с них тоже можно было потянут всякой инфы для графиков!

UPD: Все таки установим вебинтерфейс для Netxms
А как не поставить то если жава уже стоит! Вот тут написано что надо еще wiki.netxms.org Да и честно говоря подключение из локальной программы работает у меня только с Windows, а он у меня только пробник на виртуалке.

К ней надо поставить
cd /usr/ports/www/tomcat6
make
make install

Он обновить версию Javaно, вродебы это не страшно

Добавляем в
vi /etc/rc.conf
строку
tomcat60_enable="YES"
и стартуем
/usr/local/etc/rc.d/tomcat6 start

Идем на
http://192.168.2.200:8180/
и вот он там… и того уже 5-ый или 6-ой вебсервер…
Apache_Tomcat_-_2014-11-09_12.06.46
Тут парли не нужны, они отключены вместе с доступам к настройкам всяким

Теперь надо положить в него вебинтерфейс NetXMS

идем в
cd /usr/local/apache-tomcat-6.0/webapps

и кладем сюда войну той же версии что и у вас сервер NetXMS
wget http://www.netxms.org/download/archive/webui/nxmc-1.2.13.war

переименовывем его в nxmc.war это важно
cp nxmc-1.2.13.war nxmc.war

запускаем
http://192.168.2.200:8180/nxmc/
и вот он
netxms_webgui_001

На этом скриншоет ничего не видно, а вот как выглядят графики
netxms_webgui_002

  • Татьяна

    «Здесь grater then 2 и у нас будет предупреждение, значение превышено — своего предупреждения нельзя написать но уже будет понятно, что, что-то происходит.»

    Предупреждение можно задать своё. Для этого нужно создать свой Event.

  • AlexandrBu

    +1