Коллеги, привет!
Допустим, есть у меня энное количество филиалов. В каждом филиале есть специальный человек, который следит за состоянием ИТ-инфраструктуры. У него есть сервер NetXMS.
В головном филиале также есть сервер NetXMS и специально обученный человек, который отвечает за состояние всех филиалов. Ему также необходимо получать мониторинговую информацию с филиальной инфраструктуры.
Внимание вопрос!
Могу ли я (и если да - каким образом) настроить каскадный сбор данных с отслеживаемых устройств? То бишь, желание: сбрасывать с одного устройства информацию на два сервера. Ну, или сбрасывать с агента информацию на ближайший сервер, который бы сохранял эту информацию у себя И форвардил её вышестоящему серверу.
С уважением,
Дмитрий
+1
тоже интересуюсь как это лучше сделать.
У меня ситуация по проще. Стоит два сервака с NetXMS (у каждого своя база). Один сервер стоит в России, второй зарубежом. Оба опрашивают одни и теже железки. Как сделать так, чтоб почтовые уведомления приходили только в том случае, если оба сервера говорят что тот или иной NODE в дауне, в противном случае если один из серверов говорит что все ОК, то не нужно присылать писем.
Мысли на тему распределенного мониторинга у нас были, но готовой имплементации на данный момент нет. Простая вещь, с которой можно начать - это event forwarding. Реализовать это не очень сложно, и во многих случаях этого будет достаточно. Доделаю 0.2.20 и можно будет заняться.
Best regards,
Victor
Quote from: Dmitry on March 20, 2008, 10:11:54 AM
Могу ли я (и если да - каким образом) настроить каскадный сбор данных с отслеживаемых устройств? То бишь, желание: сбрасывать с одного устройства информацию на два сервера. Ну, или сбрасывать с агента информацию на ближайший сервер, который бы сохранял эту информацию у себя И форвардил её вышестоящему серверу.
А обязательно иметь именно форвардинг собранных данных с первого сервера на второй? Можно ведь просто настроить на втором сервере сбор данных с тех-же хостов что и на первом. А если хосты недоступны напрямую, то использовать агента на первом сервере как прокси для второго. Кстати, только что пришла в голову мысль - первым шагом можно сделать синхронизацию шаблонов между серверами - это облегчит настройку сбора одинаковых данных несколькими серверами.
Best regards,
Victor
И синхронизацию опрашиваемых нодов со списком интерфейсов, т.е. полный конфиг ноды :)
Что в принципе и означает полноценный распределенный мониторинг :) Надо двигаться в этом направлении. Вопросов там много на самом деле - например контроль доступа к объектам. Или направление синхронизации - т.е. кто главный. Или что делать если связь с серверами пропала, потом восстановилась, и какой-то объект изменен и там и там. И так далее... Может стоит открыть отдельную ветку на эту тему в feature requests, и набирать мысли - к моменту реализации лучше будем представлять что должно получиться?
Best regards,
Victor
Думаю это хорошая идея.
Меня бы вполне устроило снятие информации с агентов двумя серверами. Это возможно? Насколько я понял, в конфиге агента прописывается единственный сервер NetXMS. Скажите уже мне, что я не прав :)
А у меня задача не много другая..
Хочу два сервера, которые работают в паралеле. На обоих серверах стоят агенты и базы данных. Оба снимают информацию с одних и тех же нодов. Оба должны постоянно синхронизировать данные между собой. Плюс кореляция алармов и event-ов на обоих серверах. Делается этот на тот случай, если один из серверов умрет по какой либо причине, чтобы хотя бы на одном из серверов осталась живая база.
Ситуация 1: Если один сервер потерял связь с одним из нодов, а второй нет, то в этом случае аларма высылаться не должно. Т.е. аларм высылается тока в том случае, если оба сервера подтверждают падение.
Ситуация 2: Если один из серверов по какой-либо причине перестает работать (выключение электричества, падение канала до сервера и т.д.), то второй работает в обычном режиме. После восстановления работоспособности упавшего сервера, происходит синхронизация.
При этом каждый из серверов должен мониторить второй сервер для определения работоспособности и возможности синхронизации базы.
Если я что-то неучел, прошу дополнить. Если что-то не понятно, задавайте вопросы, попробую ответить.
Quote from: Dmitry on March 22, 2008, 09:45:44 AM
Меня бы вполне устроило снятие информации с агентов двумя серверами. Это возможно? Насколько я понял, в конфиге агента прописывается единственный сервер NetXMS. Скажите уже мне, что я не прав :)
Да, это возможно — в конфиге можно прописать несколько адресов через запятую.
Мало того, один сервер может быть прописан в "Servers", что подзволяет ему только собирать данные, а второй — в ControlServers или MasterServers, что позволит ему еще и редактировать удаленно конфиг / апгрейдить агента.
Quote from: Victor Kirhenshtein on March 20, 2008, 07:47:26 PM
Простая вещь, с которой можно начать - это event forwarding. Реализовать это не очень сложно, и во многих случаях этого будет достаточно. Доделаю 0.2.20 и можно будет заняться.
Не было ли в эту сторону движений? Мне аккурат подошла бы схема с первичным сервером/серверами(опрашивающими только свою зону) и отправкой эвентов с него на головной.
Sdelal event forwarding v 0.2.23. Tam esche mnogo chto nado budet uluchshat', no uze mozno nachinat' pol'zovatsja.
Хелпик по использованию event forwarding будет небольшой?
Quote from: isherim on December 12, 2008, 05:33:49 AM
Хелпик по использованию event forwarding будет небольшой?
Конечно :)
Во-первых, оба сервера должны знать хосты, для которых пересылаются события. Принимающий сервер определяет, к какому хосту относится события, по IP адресу. При этом на принимающем сервере объект хоста может быть UNMANAGED, если его не требуется активно мониторить, а только принимать события.
На отсылающем сервере:
1. Создать новый action типа "Forward event to other NetXMS server", в поле "Remote NetXMS server" вписать адрес принимающего сервера;
2. В event processing policy для нужных событий добавить этот action.
На принимающем сервере:
1. Выставить параметры EnableISCListener и ReceiveForwardedEvents в 1;
2. рестартовать сервер;
3. Убедится, что есть события с такими-же именами, как будут отсылаться;
4. Убедится, что отсылающий сервер может подключится к принимающему по порту 4702.
Вроде все :)
Спасибо!
Quote from: Victor Kirhenshtein on December 12, 2008, 10:54:09 AM
При этом на принимающем сервере объект хоста может быть UNMANAGED, если его не требуется активно мониторить, а только принимать события.
В таком случае на принимающем сервере не получаем алармов. Версия 0,2,26.
Da, moja oshibka. Unmanaged voobschem-to i dumalos' kak priznak togo, chto sostojanie hosta nas ne interesuet, poetomu vse sobitija dlja nego ne prohodjat cherez event policy. Nado budet sdelat' atribut "external node" - togda vse budet logichno - esli noda pomechena kak external, to server ee ne monitorit, no prinimaet sobitija i processit ih kak nado. Nu i ee toze mozno delat' unmanaged, chto vikljuchaet priem sobitij do teh por, poka ne vernit v sostojanie managed.
Извиняюсь, ошибка была все-таки моей. На принимающем сервере в Event Policy интересующих нод не было в Source`ах, теперь все работает.