Содержание
- 1 Скрипт Powershell для обновления клиента 1С Предприятие на нескольких доменных ПК по сети!
- 2 Заходим на домашний сервер за NAT, извне по ssh, через сервер в интернете!
- 3 Надежное хранилище важнейших данных за недорого в Soft Mirror RAID на Ubuntu!
- 4 Боремся со спам звонками на городском телефоне с Asterisk, IVR, Grandstream ht813 на OrangePi PC Plus!
- 5 Устанавливаем домашний медиа центр Kodi на Raspbery Pi 4 в корпусе Flirc!
- 6 Сравниваем поисковые движки Sphinx и Manticore для форума phpBB3!
- 7 Установка Microsoft SQL Server Express 2017
- 8 Установка NetXMS
- 9 Установка web-консоли NetXMS
Скрипт Powershell для обновления клиента 1С Предприятие на нескольких доменных ПК по сети!
Powershell оказывается тоже может быть полезным… если в него поверить… если его заставить! Есть тысяча ПК и один IT-специалист(он же системный администратор, специалист инфраструктуры, тыжайтишник, грузчик, бухгалтер), обновить 1С 8.3 Предприятие надо вчера! 1С сам по себе тоже замечательная штуковина, запускаешь базу и она привязана к определенной версии клиента, которую ищет и запускает на ПК пользователя! А версии этого клиента обновляются по цать раз в год и работают только с конкретной версией базы, это вам не SAP-GUI какой-нибудь — минорные обновления каждые 5 лет — 1С это живая система постоянно надо что-то допиливать, и пинать ссаными тряпками чтобы работала! Но, вернуемся к Powershell, чтобы он работал на компутерах они должны быть в домене AD, для них должны быть включена разрешения на исполнение Powershell Remote как-нибудь через AD GP! Читать дальше…
Заходим на домашний сервер за NAT, извне по ssh, через сервер в интернете!
Например дома есть сервер и хочется к нему подключаться по ssh (может даже по scp) ну просто посмотреть как он там чего. Раньше я делал это через VPN вот так Удаленный доступ к домашнему серверу FreeBSD через OpenVPN! и даже работало, роутер кабельного провайдера нормально форвардил порты, надо было только знать внешний IP. Но сейчас попробовал пофорвардить порты на роутере мобильного провайдера интернета — и никак, вроде как за это надо платить и работает только если статичный IP покупать… Читать дальше…
Надежное хранилище важнейших данных за недорого в Soft Mirror RAID на Ubuntu!
Для себя, незаметно, перестал обращать внимании на топовые решения в компутерной технике. Этому очень помогает здравая оценка своих нужд и возможностей техники. Всему что у меня есть скоро исполнится по 10 лет, а кому то уже давно исполнилось! Того шока и трепета, который у меня был после установки Voodoo 2 и игры в Quake II в 640×480 уже не будет, хоть ты 8K картинку нарисуй. Так что апгрейжу что-то когда ну вот уже или умерло или уже должно умереть!
Дома поток данных не такой большой так что на сервере еще SATA II справляется! Для хранения особо дорогих данных использовал 2 диска HDD в зеркальном программном массиве, но они уже ну очень старые 2008 года, для этого и зеркальный RAID чтобы страховали друг-друга! Читать дальше…
Боремся со спам звонками на городском телефоне с Asterisk, IVR, Grandstream ht813 на OrangePi PC Plus!
У вас же есть городской телефон, наверняка есть даже если не подключен и не используется за него все равно платите! У меня лично он больше двух дней не работает, какие-то начинающие музыканты звонят мне и ставят свою музыку, даже не представившись!
Идея такая городскую телефонную линию воткнуть в VOip Gateway FXS/FXO, пускать звонки на IVR на Asterisk и там простенькое меню «Если ты человек нажми 7» и дальше звонок идет на стационарный телефон! Читать дальше…
Устанавливаем домашний медиа центр Kodi на Raspbery Pi 4 в корпусе Flirc!
ОСТОРОЖНО: Февраль 2020 года — Google полностью блокирует работу Yotube на Kodi!!!
А вот например телевизор старый, в смысле не Smart, и как к нему Youtube(см дисклаймер) прикрутить и видеопроигрыватель всего? Для этого конечно подойдет любой мини компутер, у меня справлялся Raspberry Pi 3B на RetroPi с пассивным охлаждением, но решил из него окончательно сделать дэнди — а для видео проигрывателя не поскупился и выбрал самый шикарный вариант!
ДИСКЛАЙМЕР по Yotube add-on for Kodi: Ну Yotube на Kodi такой свооеобразный, ни как на smartTV, сразу все странности описываю, сами решайте нужно оно вам или нет! — Официального плагина Youtube для Kodi от Google нет, как и для фильмов — Показывать в хорошем качестве его надо еще суметь заставить — Быстро блокируется, пишет что квота(какая еще квота!!!) закончилась. Надо обманывать Google регестрироваться как девелопер — Неумеет показывать рекламу — Не любит когда много кнопок нажимают например перемотать и выйти — Kodi висит и перезагружается
Заказал на Amazon вот такой комплект CanaKit Raspberry Pi 4 Basic Kit (2GB RAM) , удивительно но по цене все равно дешевле оказалось чем покупать в офлайне(5000RUR без БП и доставки)!!! Набор стоит 62.99$ доставка 19.23$ в руки курьером! Читать дальше…
Сравниваем поисковые движки Sphinx и Manticore для форума phpBB3!
В очередной раз спас свой форум от тормозов установив на нем поиск через Sphinx и был всем доволен, но тут в английской версии статьи Lets install a super fast search engine Sphinx in to phpBB3 forum! спросили а почему не Manticore — Why not Manticore?
Мантико́ра — чудовище с телом льва, головой человека и хвостом скорпиона — видимо это символизирует мучения разработчиков этого движка! Но как я понял это тот же Sphinx его ранняя опенсурсная версия(которую мне и удалось установить Sphinx 2.2.11-release Jul 19, 2016), которую разработчики перестали поддерживать, а Мантикоры подхватили и развивают! Вот тут описаны все преимущества: manticoresearch.com/manticore-vs-sphinx/ главное для меня что в отличии от Sphinx2 она продолжает улучшаться. Читать дальше…
- Tutorial
0. Интро
Я не нашел на Хабре ни одной статьи по NetXMS, хотя очень искал. И только по этой причине решил написать сие творение, дабы уделить внимание данной системе. Это и tutorial, и how to, и поверхностный обзор возможностей системы. Данная статья содержит поверхностный анализ и описание возможностей системы. Глубоко в возможности я не закапывался по ряду причин. Да и описание всего функционала заняло бы далеко не одну статью. Так как более-менее я работал только с Zabbix’ом — в статье будет часто упоминаться именно эта система для сравнения с сабжем. К тому же как-то так повелось, что все сравнивается с чем-то общепризнанным.
1. Что и зачем?
Система мониторинга, как видно из определения, — система, позволяющая в любой момент времени получить актуальную информацию по какому-либо узлу сетимашинемаршрутизаторувписать нужное. Зачем это нужно — так же очевидно. Чтобы быть в курсе происходящего. Зачастую, система мониторинга может дать весьма исчерпывающую информацию о состоянии как инфраструктуры в целом, так и отдельных ее частей. Плюс к тому, если настроить оповещения (а без нее грош цена любому мониторингу), то на выходе мы получаем серьезный инструмент, который позволяет не только своевременно реагировать на уже возникшие аварийные ситуации, но и, в большинстве случаев, дает возможность эти аварии предотвратить.
2. Почему NetXMS?
Немного оффтопа для тех, кто любит многабукафф NetXMS оказалась довольно простой в установке и настройке системой. У нее есть версии сервера и консоли администрирования как под Windows так и под Linux, построение графиков, встроенный «браузер», который позволяет изнутри консоли администрирования коннектиться к тем же маршрутизаторам по httphttps протоколам, и интерфейс интуитивно понятный, а так же агент под любую ОС. Словом, эта система оказалась простой и удобной. На первый взгляд. Документация у них, к слову сказать, на 8 из 10. Основные вещи в ней указаны, но, чтобы вникнуть в тонкости, нужно поковыряться.Основные плюсы, обозначенные разработчикомГлубокий мониторинг сети Автоматическое обнаружение, визуализация и поиск подключенных компонентов на уровне 2 и 3 Полная поддержка SNMPv3 Активное обнаружение с помощью сканирующих «зондов» Пассивное обнаружение на основе информации от контролируемых устройств — ARP и таблиц маршрутизации, интерфейсовМониторинг приложений и серверов Все основные метрики, которые вы ожидаете: процессор, файловые системы, ввод-вывод, память, трафик Мост JMX для мониторинга приложений Java Расширения для конкретных приложений: Oracle, MySQL, PostgreSQL, MongoDB, DB2, Tuxedo и многие другие API интеграции для собственных приложенийПредназначен для больших сетей Один сервер может отслеживать сотни метрик на тысячах устройств Полная поддержка распределенного мониторинга и горизонтального масштабирования Мониторинг перекрывающихся IP-подсетей Гибкий контроль доступа для операторов и клиентов
3. Углубляемся
Как установить систему — есть целый мануал администратора, доступный на сайте разработчика, и ничего сложного в этом нет, поэтому на этом останавливаться не буду. Самое трудное в установке — подключение системы к базе данных… Тут разница будет лишь в выборе СУБД и ОС сервера. Я выбрал Windows (далее-далее-ввести данные-готово) и MSSQL, так как он у меня уже был.
3.1. Включаем автообнаружение
Автообнаружение узлов сети можно включить при установке. Если это не было сделано по каким-то причинам, то его всегда можно включить в «Configuration-Network Discovery» или щелкнув по иконке с тем же именем. В рабочей области появятся свойства обнаружения. Нужно его включить, переведя в пассивный или активный режим, и обозначить другие свойства, например, опрашиваемые подсети. Так же тут можно накрутить фильтры, причем можно как выбрать и донастроить встроенные в систему, так и написать собственные скрипты. Честно скажу — мне фильтры не понадобились. Но выглядит настройка довольно дружелюбно и понятно. Так же здесь можно указать SNMP community по умолчанию и его credentials (читай авторизацию).
3.2. Добавление узлов
При включенном автообнаружении конечные ноды (ПК, принтеры) будут добавлены и распределены по подсетям автоматически. С активным сетевым оборудованием все несколько сложнее. Начать следует с включения на сетевом оборудовании SNMP и настроив community. Если в свойствах автообнаружения узлов сети не менялось значение по умолчанию для SNMP community, то система использует public community, при этом данную настройку можно изменить для каждого узла в свойствах добавляемой ноды (node). Для удобства можно группировать девайсы по любому удобному принципу, для этого в дереве можно создавать контейнеры в ветке Infrastructure Services и биндить в них ноды из Entrie Network. После включения и настройки SNMP на маршрутизаторах и добавления их в список отслеживаемого оборудования, система сама с ними свяжется, опросит, определит, что это за девайсы, применит шаблоны, начнет сбор данных и покажет front panel для каждого маршрутизатора. Сама. Из коробки. Когда я настраивал Zabbix, о подобном я мог только мечтать. Я добавлял все свои сетевые железки вручную, так как сами они у меня по какой-то причине не обнаружились. Тут все просто. Создаем контейнер в Infrastructure Services с любым удобным названием (например switches), и ПКМ-создать-ноду, указать отображаемое имя ноды, ее IP-address и лучше поставить галку на «отключить использование NetXMS агента», так как его все равно невозможно установить на сетевое оборудование, а лишние пакеты ни к чему. Встроенный браузер. Можно просто ПКМ на нужном маршрутизаторе и открыть web-интерфейс девайса. Мне это показалось удобнее, нежели каждый раз лезть в свои записи и искать нужный IP. Правда, браузер так себе.
3.3. Построение карты сети
Прежде всего нужно создать карту сети как объект. Как обычно — в ветке Networks Map ПКМ, создать, выбрать тип карты, задать параметры, и система дальше все сделает сама. Типы карт следующие:
- Custom. Это карта, предназначенная для формирования вручную, по желанию пользователя.
- Layer 2 topology. Это карта, позволяющая автоматически сделать все за пользователя, опираясь на 2 уровень модели OSI (по-сути, строит карту основываясь на mac-адресах устройств).
- IP topology, она же Layer 3. То же самое, что и в случае с Layer 2, только карта строится на основе 3 уровня модели OSI (IP-адреса).
При выборе ручного составления карты нужно перетаскивать ноды из дерева на слой карты, соединять их и т.д. Обычное рисование. В двух других случаях нужно выбрать точку отсчета, с которой система начнет строить карту. Например, ноду какого-нибудь маршрутизатора. Система считывает с него данные о подключенных устройствах и портах, к которым они подключены, после чего считывает данные со следующего маршрутизатора, сопоставляет, и так далее. После анализа всех устройств NetXMS сама нарисует связи между устройствами сети с указанием портов, куда что подключено. Так же можно указать, чтобы система поместила на карту в том числе и конечные устройства (принтеры, ПК, серверы), просто ткнув в соответствующий пункт в свойствах карты (ПКМ — свойства — свойства карты). Так же в этом пункте можно задать «радиус обнаружения» при желании или необходимости. Маленькая рекомендация. Включите свойство Always fit layuot to screen, чтобы каждый раз обновляя карту сети не приходилось прокручивать рабочее пространство и работать зумом. При распределенной топологии сети, можно наложить объекты на карту местности. Так же можно в качестве фоновой подложки использовать, например, фотку стойки с оборудованием в серверной, наложив на нее нужные объекты. Таким образом можно быстро определить статус любого девайса в стойке. На мой взгляд это крайне полезная штука в случае необходимости передать дела преемнику или вновь прибывшему коллеге объяснить положение дел. Наглядно, удобно, самоочевидно.
3.4. Агенты
Агенты существуют как для Windows, так и для Linux. Принцип работы такой же, как и у агентов того же Zabbix: устанавливается на машину, с которой нужно снимать метрики, и передает данные на сервер мониторинга. Агента можно установить как до добавления ноды в систему, так и после. После появления агента на ноде, система через некоторое время начнет принимать от него данные, применив стандартный шаблон. Добавить отслеживаемые параметры можно как для одной ноды, так и прицепив к ней один или несколько предопределенных шаблонов. Рекомендуется, естественно, работать с шаблонами, так как эта настройка более гибкая. Список отслеживаемых параметров для агентов достаточно обширен. Полный перечень можно посмотреть в Wiki NetXMS Как только система определит, что на ноде функционирует агент, она сразу же прикрепит эту ноду к одному из дефолтных шаблонов — Windows, Linux, HP-UX, Generic UNIX, AIX, в зависимости от операционной системы ноды. Стандартный шаблон для Windows-хостов: Добавить параметр для отслеживания конкретной ноде можно щелкнув «ПКМ-Data Collection Parameter«, далее «ПКМ в рабочей области — New parameter«, и выбрать нужное из списка. Тут же можно настроить и триггеры для отслеживаемого параметра. Немаловажно, что агенты, так же как у Zabbix, умеют запускать пользовательские скрипты.Как установить?
3.5. Триггеры
Триггеры можно настроить на реагирование на определенные события в собираемых данных. Например, превышение определенного значения ping-pong до маршрутизатора. Так же настраивается способ оповещения для каждого триггера (для каких-то достаточно значка в консоли, а какие-то сразу шлют оповещения куда только можно). Реакция на событие выбирается из преднастроенных в Action Configuration. Для создания триггера: войти в Data Collection Cnfiguration ноды или шаблона, двойной щелчок по интересующему параметру (если нет, то надо его сперва создать), и в свойствах перейти на вкладку Thresholds, нажать кнопку добавить. «Function» — какое или какие значения брать для вычисления условия. Может принимать следующие значения (количество используемых для проверки значений указывается в поле Samples): — Last polled value: последнее/ние полученное/ные значение/ния — Average value: среднее значение из последних — Mean deviation: среднее отклонение — Diff with previous value: разница с предыдущим значением — Data collection error: ошибка получения данных — Sum of values: сумма значений — Script: значение, полученное в результате работы пользовательского скрипта «Operation» — условие срабатывания триггера. Может принимать значения (значение указывается в соответствующем поле Value): — <: less than: меньше, чем — <=: less than or equal to: меньше или равно — == equal to: эквивалентно — >=: great than or equal to: больше или равно — >: great than: больше, чем — !=: not equal to: не эквивалентно — like: приближенно к — not like: не приближенно к На счет двух последних параметров у меня нет уверенности в том, как они работают. По этому не буду даже предполагать какие границы в них встроены. Словом, все как в том же Zabbix, только не надо руками формулы вписывать, боясь ошибиться или очепятаться. Для восстановления триггера (deactivation event) система сама подставит значение. (В Zabbix опять надо печатать и не опечататься).
3.6. Шаблоны
ПКМ-создать шаблон, ввести имя шаблона. ПКМ-Data Collection Cnfiguration.Немного теорииСобираемая информация может поступать из нескольких источников. Это может быть агент NetXMS, работающий на машине, может быть «простой запрос» или «Internal«, отправляемый самим сервером (например тот же ping), «SNMP«, «check point SNMP«, «Push«, «Windows Performance Counters«, «SM-CLP«, или же пользовательский «скрипт«. У каждого типа информации можно выбрать тип, который система будет ожидать при получении. Например, ping будет возвращать целочисленное значение (integer), количество свободного дискового пространства в байтах так же будет integer, а вот та же температура будет уже не целочисленным, то есть real). Для сбора информации через SNMP в NetXMS есть огромный список предопределенных параметров, то есть можно не вписывать конкретный OID, а найти его в дереве MIB, что достаточно проблематично на самом деле… Но. В итоге нужно копаться в документации производителя и искать IOD значения для каждого девайса по-отдельности. Можно убить массу времени на настройку считывания информации с девайсов, натыкаясь на сообщение системы «UNSUPPORTED», а в итоге окажется, что данное конкретное устройство просто не умеет предоставлять запрошенную инфу. Тут остается только курить мануалы и надеяться. Например, чтобы собирать информацию о времени отклика ноды (ping), нужно добавить новый параметр (ПКМ-new parameter), в поле Origin выбрать Internal, нажать кнопку Select, и выбрать Ping Time. Там есть поиск, о чем в Zabbix я только мечтал. Так же есть смысл изменить период опроса ноды (по умолчанию стоит 60 секунд, то есть если маршрутизатор перестанет отвечать сразу после того, как был опрошен системой мониторинга, то пройдет почти целая минута до того, как система поймет, что с ним что-то не так, и забьет тревогу). Список Internal данных, которые можно обрабатывать: После того, как в шаблон были добавлены все необходимые настройки, нужно нажать ПКМ-apply и выбрать все ноды, к которым этот шаблон нужно применить (ctrl+ЛКМ). И все. После этого в дереве под шаблоном появится ветка, раскрыв которую, можно увидеть все ноды, к которым этот шаблон применен. При откреплении от шаблона ноды, собираемые данные не перестают собираться, чтобы отменить их сбор нужно для каждой ноды зайти в Data Collection Configuration и удалить все вручную, либо сначала удалить параметры из шаблона и только потом удалять из него ноды. Я не знаю, для чего сделано именно так, но, на мой взгляд, это крайне странная штука. Но… Уж как есть. В шаблоне можно выбрать нужные собираемые данные, и скопировать их в другой шаблон. Массово. И не надо копипастить из одного шаблона в другой руками… Я уже начинаю ненавидеть Zabbix..
3.7. Dashboards
Как это ни странно, но NetXMS Wiki по этому поводу содержит лишь одну ссылку на youtube: Creating a Dashboard, нет даже списка и описания элементов, которые можно добавить на Dashboard. В принципе, там все так же интуитивно понятно. Label — это просто… ну… Label же… Я даже не знаю, как это перевести. Словом, поле с надписью, используется для обозначения и разграничения элементов, так как сами элементы названий не содержат. Line Chart — это линейный график. Bar Chart — это диаграмма. Alarm Viewer — список предупреждений для выбранного/ных узла/ов. Словом, названия говорят сами за себя. Далее нужно открыть свойства дашборда и настроить представления. Нас интересует вкладка Dashboard Elements. Number of columns — это количество колонок, элементов, которые будут расположены по горизонтали. У каждого объекта есть свои свойства, и я бы рекомендовал снимать галку с пункта Layout-Grab execessive vertical space, чтобы минимизировать размер каждого элемента.
3.8. Action Configuration
(Configuration-Actions Configuration) По-сути, это действия в ответ на срабатывание триггеров. NetXMS умеет отправлять e-mail, sms, xmpp сообщение, в ответ на срабатывание триггера. Тут все тривиально — просто заполнить нужные поля. Также можно: — Передать оповещение на другой NetXMS сервер — Выполнить команду на сервере администрирования NetXMS — Выполнить команду на ноде с помощью агента NetXMS — Выполнить NXSL скрипт (NSXL — это свой скриптовый язык программирования NetXMS) После создания действия ему можно настроить время задержки выполнения, а так же применить макрос для выполнения. Время задержки нужно для того, чтобы не беспокоить оператора в случае, если проблема разрешится сама собой (например, время ответа на ping-запрос было больше заданного значения, но при следующей проверке оно может вернуться в норму, так зачем беспокоить по таким пустякам?).
3.9. Разграничение прав доступа
Для каждого объекта можно настроить свои права доступа. Для каждого объекта внутри другого объекта так же можно настроить права доступа. Это позволяет очень гибко распределять обязанности и возможности мониторинга для различных групп пользователей. Это все, что я хотел сказать.
4. Заключение
Я бы хотел опровергнуть название своей же статьи. NetXMS не для ленивых. Просто разработчики не сделали акцента на функциональности, как некоторые, но, помимо всего прочего, позаботились так же и об интерфейсе. Давайте так. Я пользовался Zabbix’ом и NetXMS. По этому просто напишу свои ощущения от двух этих систем. Итак. NetXMS видится мне крайне дружелюбной к пользователю системой. Ну… к админу… да, к админу. У нее есть то, что называется интуитивно понятным интерфейсом, и это прям здорово. Не нужно писать свои формулы, читать кучу сопроводительной документации, чтобы включить проверку пингов до свича или еще какую-то простейшую вещь. Но. В Zabbix эта же простейшая вещь не многим отличается от чего-то реально непростого, то есть если освоил это — то так же сделаешь и все остальное. В NetXMS есть подсказки, большинство параметров можно найти в интерфейсе, выбрать мышкой и настроить. В Zabbix нужно узнать, а может ли система вот то-то и это, и если да — то как это пишется и какие параметры возвращает. Zabbix выигрывает в комьюнити и тоннах шаблонов на все случаи жизни… если в этой горе хлама получится найти то, что нужно… С другой стороны у NetXMS так же есть куча поклонников и созданных ими добавок к этой системе. Да и сама система из коробки умеет мониторить самые популярные приложения, о чем сказано на главной странице проекта. Главным плюсом NetXMS против Zabbix для меня оказалась возможность запустить скрипт на проблемной ноде в ответ на срабатывание триггера. Поднялась температура ЦП выше порога — она сама погасит хост. А потом уже будем разбираться — в чем проблема. Возможно, в Zabbix такая штука тоже есть, но я не смог. Так же как и в мониторинг портов на маршрутизаторах. А тут само… Ну, как само… Надо освоить скриптовый язык, и все… Права доступа в NetXMS позволяют очень гибко разграничивать возможности различных пользователей системы. Но чтобы все это настроить нужно прям повозиться. В целом системы достаточно похожи, и возможности у них, на первый взгляд, кажутся как минимум сравнимыми. Хотя чувствуется, что Zabbix может больше, но эти возможности кроются глубоко под капотом и для простого смертного админа «все в одном» недостижимы. NetXMS же видится простой и понятной, дружелюбной и приятной. У Zabbix отличная документация, wiki, how to, F.A.Q., best practice, а так же всевозможные форумы и т.д., где можно найти ответы практически на все вопросы. А если что — задать собственный. Резюмируя, я бы хотел рекомендовать NetXMS для людей, которые только начинают или тем, кому не нужно глубоко погружаться в мониторинг всего и вся. Я уверен, что если разбираться с ней дальше, то можно накрутить в ней весьма и весьма тонкие наблюдения. Но все же главным плюсом я вижу именно очень приятный интерфейс и простоту настройки.
5. Использованные материалы
youtube-канал Tomas KirnakNetXMS WikiGoogle-поиск
В этой статье я рассмотрю установку серверной части системы мониторинга NetXMS на Windows Server 2019 c Microsoft SQL Server Express 2017. Вообще, мне больше нравится конфигурация Ubuntu Server + MySQL, несмотря на то, что я виндузятник. Преимущества и недостатки есть как у одного варианта, так и и другого, каждый выбирает себе подходящий.
Картинка для привлечения внимания:
На Windows недостаток — это стоимость самой операционной системы Windows Server в первую очередь. Из преимуществ — простота работы с базой MS SQL, бекапов и т.п., так как большинство виндузятников уже имеют какой-то опыт работы с MS SQL. Но не буду углубляться в сравнения, статья не об этом.
Казалось бы, чего проще, всего лишь установка, которая в принципе и в мануале описана и в Интернете статьи присутствуют (хотя подробной пошаговой статьи я не нашел). Но, с некоторыми вещами, особенно с подключением к базе во время установки, довольно часто возникают проблемы (такая ошибка, как «Unable to connect to database: [Microsoft][SQL Server native client 11.0]», к примеру), здесь же я описываю стопроцентно рабочий вариант.
Установка Microsoft SQL Server Express 2017
Из предварительных требований, имеем установленный Windows Server 2019 в домене corp.testcompany.ru с именем netxms.corp.testcompany.ru. Установка MS SQL особенно ничем не примечательна, однако на всякий случай пройду по основным пунктам установки. Использоваться будет Express-редакция MS SQL и, в принципе, её вполне достаточно даже для довольно больших сетей (исключая разве что крупные энтерпрайзы с тысячами серверов и большим объемом параметров мониторинга). К тому же, Express-редакция бесплатна.
Скачать дистрибутив SQL Server 2017 Express можно отсюда: https://www.microsoft.com/en-US/download/details.aspx?id=55994. Запускаем установку, в окне SQL Server Installation Center нажимаем ссылку «New SQL Server stand-alone installation or add features to existing installation». В появившемся окне установки соглашаемся с лицензией и нажимаем Next. Далее происходит установка необходимых файлов для инсталляции, проверка необходимых требований и т.п.. На странице Install Rules должно быть всё Passed и предупреждение Windows Firewall. Есть смысл прочитать его, если собираетесь подключаться к MS SQL по сети, чтобы открыть необходимые порты. Жмем Next:
На следующей станице нужно выбрать компоненты и каталоги для установки MS SQL. Компоненты оставляем все, они все нам пригодятся. В каталогах я обычно предпочитаю установить инстанс (экземпляр) MS SQL на отдельный диск, именно поэтому указал в поле Instance root directory расположение на диске D:
Но тут, каждый сам решает, как ему удобней.
На следующей странице Instance Configuration, оставляем всё как есть (Named instance «SQLExpress») ) и жмем Next. На странице Server Configuration на вкладке Service Accounts в принципе менять ничего не требуется, но я предпочитаю включать тип автозапуска в Automatic для SQL Server Browser, хотя это необязательно, можно сделать и после установки тем, кому понадобится. Совсем правильно будет использовать отдельную учетную запись в AD для запуска сервиса MSSQL:
А вот на вкладке Collation нужно убедиться в том, что кодировка выставлена в Сyrillic_General_CI_AS, иначе в настройках NetXMS могут быть проблемы с русским языком в элементах NetXMS:
В следующем окне Database Engine Configuration выбираем Mixed Mode (нам это понадобится для создания встроенной учетной записи netxms, используемой для доступа к базе netxms_db) и задаем пароль для встроенной учетной записи sa. После всех настроек и установки можно будет отключить её для пущей безопасности. Я еще обычно добавляю группу Domain Admins в качестве SQL Server Administrators, но тут тоже каждый сам решает, какие учетные записи и группы для этого использовать:
Остальное оставляем по дефолту и нажимаем Next и после завершения процесса установки Close.
Также нам понадобиться установить SQL Management Studio. На момент написания статьи я использовал версию 17.9.1, есть смысл ставить последнюю, проверяя совместимость с вашей версией MS SQL. В её установке ничего особенно нет, так что останавливается на ней не буду.
После установки SQL Management Studio для проверки запустим её и подключимся с MS SQL:
Запомните или скопируйте куда-то содержимое поля «Server Name», оно пригодится при запуске мастера NetXMS. В моем случае это «NETXMSSQLEXPRESS». Всё, проверили, что подключается, пока больше SQL Management Studio нам не нужна.
Установка NetXMS
Дальше установка собственно NetXMS. Скачать дистрибутив можно с официального сайта по ссылке: https://www.netxms.org/download/. Дистрибутивы выбираем в Server Binaries > Windows (x64). На момент написания статьи я использовал версию 2.2.16. Запускаем файл установки (netxms-2.2.16-x64.exe в моем случае), соглашаемся с лицензионным соглашением, на следующей странице выбираем каталог установки (C:NetXMS по умолчанию), а в окне Select Components выбираем только нужное:
Снимаем галки с: MariaDB Client Library, MySQL Client Library, PostgreSQL Client Library, Oracle Instant Client и даже с Microsoft SQL Server 2008 Native Client, потому что у нас уже установлен Microsoft SQL Server 2012 Native Client. А вот галку Java Runtime Environment наоборот нужно поставить, она будет нужна для консоли управления NetXMS. Нажимаем Next.
В окне Start Menu Folder оставляем все по умолчанию, в окне Select Additional Tasks тоже, нажимаем Next и в итоговом окне Install.
После установки запустится NetXMS Server Configuration Wizard. Нажимаем Next и попадаем в окно Select Database:
В поле Database server пишем имя сервера «NETXMSSQLEXPRESS», которое запомнили ранее, выбираем Use existing database (сколько я не бился, заставить NetXMS самостоятельно создать себе базу у меня не вышло). В полях Database name и DB login name оставляем те значения, которые туда подставляет визард, netxms_db и netxms соответственно. Придумываем какой-нибудь пароль и вводи его в поле DB password и… на это останавливаемся, кнопку Next не нажимаем, а запускаем SQL Management Studio, если она еще не запущена.
Первым делом создаем там новую базу с именем netxms_db:
В свойствах базы обязательно меняем Compatibility level на «SQL Server 2012 (110)»:
Далее, идем в Security > Logins и создаем новый логин netxms:
Выбираем SQL Server authentication и задаем пароль, тот, который вводили в поле DB Password визарда NetXMS. Не забудьте снять галки с «Enforce password expiration» и «User must change password at next login». Далее идем в User Mappings отмечаем базу netxms_db и для нее отмечаем роли db_owner и public:
Всё, этого должно быть достаточно для подключения NetXMS к нашей созданной базе. Нажимаем OK и закрываем SQL Management Studio, она нам больше не понадобится. Возвращаемся к визарду NetXMS, еще раз проверяем все данные и теперь уже нажимаем Next.
На странице Polling Configuration можно оставить всё без изменений, всё это можно настроить позднее:
В следующем окне можно указать SMTP Server и e-mail адрес сервера NetXMS, но необязательно, это тоже можно сделать позднее:
На странице Configure Logging оставляем всё как есть, на мой взгляд, забивать системные логи событиями NetXMS не очень удобно:
На странице Windows Service Configuration оставляем всё как есть, хотя правильней, конечно, создать отдельную учетную запись в AD для запуска сервиса:
На следующей странице визард рекомендует выбрать сервисы, только после запуска которых будет стартовать сам сервис NetXMS. Нам рекомендуют выбрать database engine и в этом конечно есть смысл, чтобы сервис NetXMS при запуске подключался к уже запущеной базе. Поэтому ставим галку на SQL Server (SQLExpress) и жмем Next:
В итоговом окне жмем Next:
Если все шаги выполнены верно, то мы получим успешное завершение настройки сервера:
В следующих окнах нажимаем Next и Finish. Если мастер предложит перезагрузиться, то делаем это.
После перезагрузки запускам java-консоль NetXMS, пишем там имя сервера и логин в паролем. Дефолтовые имя и пароль admin и netxms соответственно:
При первом запуске будет предложено сменить дефолтовый пароль на свой:
Меняем и наконец-то заходим в консоль управления NetXMS:
В принципе всё, установка на этом завершена. Но, я бы еще установил доступ к управлению NetXMS через web-браузер, java-консоль хотя удобней и быстрее, но веб доступ универсальней и бывает нужен, когда установленной java-консоли нет под рукой.
Установка web-консоли NetXMS
Её установка простая, в основном Next >Next > Next. Единственное, что у меня она заработала только при выборе компонентов Full Installation, несмотря на то, что Java Runtime Environment уже была установлена ранее:
Порт по умолчанию предлагается выбрать 8080:
Я его так и оставлю, однако, можно сделать его просто 80, чтобы не писать цифры в адресе. После установки проверьте, запущен ли сервис NetXMS WebUI. Если да, значит всё успешно, можно проверять доступ через веб-интерфейс по адресу http://netxms.corp.testcompany.ru:8080/nxmc:
Всё, установка завершена, надо настраивать сервер NetXMS, устанавливать агенты на серверы локальной сети т.п., но, об этом когда-нибудь в другой раз.
Используемые источники:
- https://itcooky.com/
- https://habr.com/post/443938/
- https://retifff.wordpress.com/2019/07/22/netxms-install-on-windows-server-and-mssql/