Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - hsvt

#1
Запуск агента под Fedora CoreOS, если вдруг кому то понадобиться.


mkdir /var/log/netxms

tar zxfv nxagent-3.8.382-linux-x86_64.tar.gz -C /

cat << EOF >> /etc/nxagentd.conf
# Log File
LogFile=/var/log/netxms/nxagentd.log

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

###########################################

cat << EOF >> /etc/systemd/system/nxagentd.service

[Unit]
Description=NetXMS Agent
After=network.target network-online.target

[Service]
Type=forking
ExecStart=/opt/netxms/bin/nxagentd -d
PIDFile=/var/run/nxagentd.pid
LimitCORE=infinity
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=netxms-agent.service
EOF

chcon -Rv -t bin_t -u system_u /opt/netxms

systemctl enable --now nxagentd
#2
Общие вопросы / GSM\3G Modem для SMS
June 09, 2017, 04:41:38 PM
Прошу накидайте сюда пожалуйста модели которые гарантированно точно будут работать с NetXMS и которые можно купить в РФ.
#3
Net.Interface.BytesIn({instance})

Unsigned Integer

Average delta per second

return $1 * 8;

Почему такое может быть, как проверить ? На физических интерфейсах eth0 eth1 этого же сервера таких провалов не наблюдается.
#4
Версия 2.0.7, использую nxmc-2.0.7-win32-x86.

Мониторится два сервера HP через iLO4 по SNMP

В Last Values <<ERROR>>, но как только сделаешь Force Poll - нормализуется на какое то время и потом снова при этом это может быть любой параметр.

Проблем со связностью данных и загрузкой канала нет. SYS_SNMP_UNREACHABLE тоже нет. В логах .log ничего подозрительного.

Какая то проблема с рефрешингом или получением данных, возможно. Особой закономерность нет, обычное переключение в панели задач Windows между окнами, переключаешься на nxmc - везде Value со значениями как и должно быть, через пару минут снова смотришь - как на скриншоте 4-7 <<ERROR>>.
#5
Сгруппировать события в Event Configuration по папкам (контейнерам) и тоже самое можно сделать и для User Managment. Сделать папки которые можно было бы развернуть\свернуть чтобы можно было запихать туда события (вложенные элементы) по определённому смыслу (Network, DC, Node, Services, Custom), так гораздо упроститься поиск и создание новых событий. Если это возможно конечно.




Sort events in the Event Configuration folders (containers), and the same can be done for User Managment. Make a folder that can be deployed \ roll to be able to push back events (sub-items) in a certain sense (Network, DC, Node, Services, Custom), so much easier to find and to create new events. If it is possible of course.
#6
Кажется очень не хватает такого функционала как отображение (custom attributes. manage\unmanage,  maintance) в Object Browser. То есть, например, есть контейнер, в нём подконтейнеры и так далее. (Родитель, дочерние)

На скриншоте выделил стрелочкой, можно, например, подписывать сбоку (CA) custom attribute, (UN) unmanage, (M) maintance и дальше уже по иерархии попадаешь в нужный контейнер и находишь там ноду.

Сейчас получается так, сделал ноде unmanage, позакрывал дерево контейнеров и забыл про неё, т.к. уже просто не найти.




It seems sorely lacking this functionality as a mapping (custom attributes. Manage \ unmanage, maintance) in the Object Browser. That is, for example, there is a container, there subcontainers and so on. (Parent, child)

The screenshot has allocated an arrow, you can, for example, the sign on the side (CA) custom attribute, (UN) unmanage, (M) maintance and further already in the hierarchy get in the right container and finds a node.

Now it turns out, did node unmanage, pozakryvat container tree and forgot about it, because is simply not found.
#7
Добрый день.

После обновления резко изменился Load Average на NetXMS сервере, ОС FreeBSD 9.3.

Порой доходит до таких значений

last pid: 33243;  load averages: 16.44,  8.60,  5.02                                                                                                                                                                                                  up 411+02:27:14 20:04:23
1577 processes:17 running, 1516 sleeping, 44 waiting

netxmsd: show qu
Data collector                   : 0
DCI cache loader                 : 0
Database writer                  : 0
Database writer (IData)          : 0
Database writer (raw DCI values) : 0
Event processor                  : 0
Node poller                      : 2154
Syslog processing                : 0
Syslog writer                    : 0


Сначала подумал что это возможно из-за NumberOfDataCollectors и попробовал уменьшать с разным шагом, но ситуация не меняется. Сейчас откачусь обратно на 2.0.5 и проверю там.
#8
Общие вопросы / SYS_IF_UNKNOWN
August 29, 2016, 12:44:43 PM
Есть подозрение, что данное событие срабатывает ложно, например на Juniper (роутере, коммутаторах) периодически на интерфейсах em, ge, lc, ae, ipip и прочее. Это порой уже начинает немного напрягать т.к. после этого прилетают SYS_IF_IP. Может быть эта проблема тесно связана с https://www.netxms.org/forum/oe-oo/ooe-aata-sys_if_up-sys_if_expected_down/ и https://www.netxms.org/forum/oe-oo/koe-eto/

А может просто сервер считает что snmp не ответил, хотя это не так. Связность и передача данных не нарушается при этом, проверял через разные snmp тестеры и net-snmp.

Есть так же действительно верная обработка данного события когда на самом деле SNMP агент не доступен и сервер не может узнать статус интерфейсов на удалённых коммутаторах доступа, но в примере выше это происходит постоянно.

Проблема может и не в самом сервере, я понимаю что его задача проверить статус и вернуть результат, но на основании чего он считает что SYS_IF_UNKNOWN?

Из того что можно покрутить в конфиге сервера:

QuoteSNMPRequestTimeout > Unfortunately this parameter does not affect SNMP agent status detection. It only affects interface status checks.
- было 2000, я поставил 3000, разницы особо нет.

QuotePollCountForStatusChange
- выставлять лично для каждого интерфейса не удобно.



#9
Общие вопросы / UBNT устройства
August 20, 2016, 09:57:12 PM
На всех без исключения точках доступа UBNT(ubiquiti) NanoStation Loco m2 или обычные NanoStation постоянный event флуд с отвалом интерфейсов и SNMP. Кто нибудь здесь мониторит данные устройства? Я пробовал отключать все пулы кроме SNMP\ICMP\Status\Config - результат такой же. По пингам при этом 1% до базовой станции, точки подключены в режиме PtP. Я не пойму, это у них такой проц слабый чтоли на UDP ?

1905394  19.08.2016 12:27:29  node1 BASE  0  SYS_NODE_NORMAL  Normal  Node status changed to NORMAL    0
1905379  19.08.2016 12:24:04  node1 BASE  0  SYS_SNMP_OK  Normal  Connectivity with SNMP agent restored    0
1905380  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_UP  Normal  Interface 'lo' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 1)    0
1905381  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_UP  Normal  Interface 'eth0' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 2)    0
1905382  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_DISABLED  Minor  Interface 'eth1' change state to disabled (IP Addr: UNSPEC/0, IfIndex: 3)    0
1905383  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_UP  Normal  Interface 'wifi0' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 4)    0
1905384  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_UP  Normal  Interface 'ath0' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 5)    0
1905385  19.08.2016 12:24:04  node1 BASE  0  SYS_IF_UP  Normal  Interface 'br0' changed state to UP (IP Addr: UNSPEC/0, IfIndex: 6)    0
1905386  19.08.2016 12:24:04  node1 BASE  0  SYS_NODE_UP  Normal  Node up    0
1905387  19.08.2016 12:24:04  node1 BASE  0  SYS_NODE_NORMAL  Normal  Node status changed to NORMAL    0
1905388  19.08.2016 12:24:04  node1 BASE  0  SYS_NODE_MINOR  Minor  Node status changed to MINOR    0
1905368  19.08.2016 12:23:00  node1 BASE  0  SYS_SNMP_UNREACHABLE  Major  SNMP agent is not responding 10.10.10.18    1905375
1905369  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "lo" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 1)    0
1905370  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "eth0" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 2)    0
1905371  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "eth1" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 3)    0
1905372  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "wifi0" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 4)    0
1905373  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "ath0" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 5)    0
1905374  19.08.2016 12:23:00  node1 BASE  0  SYS_IF_UNKNOWN  Warning  Interface "br0" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 6)    0
1905375  19.08.2016 12:23:00  node1 BASE  0  SYS_NODE_DOWN  Critical  Node down    0
1905376  19.08.2016 12:23:00  node1 BASE  0  SYS_NODE_UNKNOWN  Normal  Node status changed to UNKNOWN    0
1905377  19.08.2016 12:23:00  node1 BASE  0  SYS_NODE_CRITICAL  Critical  Node status changed to CRITICAL    0
#10
Добрый день. Использую для снятия загрузки интерфейсов вот такие OID:

ifHCInOctets 1.3.6.1.2.1.31.1.1.1.6
ifHCOutOctets 1.3.6.1.2.1.31.1.1.1.10

.1.3.6.1.2.1.31.1.1.1.6.{instance}
.1.3.6.1.2.1.31.1.1.1.10.{instance}

return int64($1) * 8;

Data type: Unsigned Int64, пробовал так же просто Int64.

На выходе периодически получаю странные значения (мега высокие если Unsigned Int64, или минусовые если Int64)

#11
Вообще не хватает подобного топика, все полезные скрипты или пользовательские функции разбросаны по форуму или чату в телеграмм, предлагаю публиковать и собирать всё в одной теме.

В Script Library можно добавить скрипты (либо они будут уже созданы при свежей уставноке):

Hook::StatusPoll
Hook::ConfigurationPoll
Hook::TopologyPoll
Hook::AcceptNewNode
Hook::CreateInterface
Hook::CreateSubnet
Hook::UpdateInterface
Hook::EventProcessor
Hook::InstancePoll
Hook::PostObjectCreate
Hook::DiscoveryPoll
Hook::AlarmStateChange
Hook::UnboundTunnelOpened
Hook::BoundTunnelOpened


Hook Scripts:

Hook::CreateInterface:

if ($1->name imatch "802.1Q Encapsulation Tag *|Management port|Aux*|Console*|InLoopBack0|MEeth0*|null0*|meth0*|enet0*|oob|M-Ethernet")
{
return false
}

if (($node->sysDescription ~= "^Linux ") &&
(($1->ifType == "1" ||
  $1->ifType == "22" ||
  $1->ifType == "24" ||
  $1->ifType == "124"))
)
{
return false;
}
return true;


###########======---

if ($node->driver == "CISCO-SB"){
  snmp = CreateSNMPTransport($node);
  state = SNMPGetValue(snmp, ".1.3.6.1.2.1.2.2.1.8." . $1->ifIndex);
  if (state == 6)
    return false;
}
return true;


###########======---

if ($1->name ~= "(?i).*Teredo.*|.*isatap.*|.*Bluetooth.*|sit0")
   return false;
snmp = CreateSNMPTransport($node);
state = SNMPGetValue(snmp, ".1.3.6.1.2.1.2.2.1.8." . $1->index);
if (state == 5)
   return false;

return true;


###########======---

Если логическое утверждение истинно, вы получаете первую часть, а если оно ложно, вы получаете вторую.

sysDescription = ($node->sysDescription == "") ? $node->readAgentParameter("System.Uname") : $node->sysDescription;
if (sysDescription ~= "^Linux [A-z]+[0-9]+.")


Hook::AcceptNewNode:

Can be used as additional filter for network discovery to avoid unnecessary communications.
Этот хук срабатывает только на добавление новых нод - если нода уже добавлена то с ней ничего не случится.
Более того, он не срабатывает при ручном добавлении - это только дополнительный фильтр для discovery.

// macs = %(01:E8:EE:94:91:C8, 01:E8:EE:91:DD:21, 01:E8:EE:92:71:FD, 01:E8:EE:93:72:F9, 01:E8:EE:92:66:DD, 01:E8:EE:94:91:7E, 01:E8:EE:9C:32:D4);

node1 = "01:E8:EE:94:91:C8";
node2 = "01:E8:EE:91:DD:21";
node3 = "01:E8:EE:92:71:FD";


if (AddrInSubnet($ipAddr, "10.10.0.0", "255.254.0.0")
|| AddrInSubnet($ipAddr, "10.20.0.0", "255.255.254.0"))
return true;

return false;

return not ($macAddr in %(node1, node2, node3));


P.S. здесь дополнительно ещё проверка по MAC.

Конвертивание эпохи Unix в человекопонятную дату(human readable date)

return strftime("%d.%m.%Y %H:%M:%S", $1);


###########======---

Скрипт для HP ILO на примере instance discovery .1.3.6.1.4.1.232.3.2.3.1.1.4.0.{instance} и Log Drive status {instance} {instance-name} для подмены значений в более информативный вид

switch ($1)
{
case 2:
return "ok";
break;
case 3:
return "failed";
break;
case 4:
return "unconfigured";
break;
case 5:
return "recovering";
break;
case 6:
return "readyForRebuild";
break;
case 7:
return "rebuilding";
break;
case 8:
return "wrongDevice";
break;
case 9:
return "badConnect";
break;
case 10:
return "overheating";
break;
case 11:
return "shutdown";
break;
case 12:
return "expanding";
break;
case 13:
return "notAvailable";
break;
case 14:
return "queuedForExpansion";
break;
case 15:
return "multipathAccessDegraded";
break;
case 16:
return "earsing";
break;
default:
return "other";
break;
}

Instance discovery script's:

Для Net.Interface.BytesIn({instance}), благодаря которому на выходе в графиках получаем DCI по нужным нам интерфейсам, в данном случае eth|bond для Linux сервера.
name=substr($1,rindex($1, " ")+1);
if (name ~= "eth|bond")
{
return %(true, name);
}
return false;


Для снятия ошибок с Linux интерфейсов.

ExternalParameterShellExec = Interface.errors(*):ethtool -S $1 | grep $2 | awk '{print $$2}'

В библиотеке скриптов создаём скрипт ethtool_errors_instance:

ifaces = AgentReadList($node, "Net.InterfaceNames");
instances = %();
c = 0;
for(i : ifaces)
{
if (i ~= "eth|em|p55p|p1p|eno|ens|enp") {

   instances[c++] = i . ",rx_crc_errors";
       instances[c++] = i . ",rx_missed_errors";
   instances[c++] = i . ",rx_no_buffer_count";
}    
}
return instances;


Создаём DCI Interface.errors({instance}), в Instance discovery method ставим Script и указываем имя созданного скрипта, ethtool_errors_instance.

Общее:

Скрипт с рекурсивной функцией и поиском по нужным\необходимым параметрам, в данном случае по snmp sysDescription коммутатора
sub GetTree (nodeID)
{
Tree = FindObject(nodeID);
children = GetObjectChildren(Tree);

foreach (n : children)
{
//println ("Name: " . n->name);
if (n->name != null && classof(n) == "Node")
{
if (n->sysDescription ~= "^D-Link DES-3028" && n->comments == "")
{
println ("Name: " . n->name . ", sysDescription: " . n->sysDescription . ", IP: " . n->ipAddr);
}
}
GetTree(n->id);
  }
}

GetTree(2);


Примерно аналогичный скрипт, но выведет custom атрибуты по интерфейсам, все кроме .dlink.slotSize и uptime
sub GetTree (nodeID)
{
Tree = FindObject(nodeID);
children = GetObjectChildren(Tree);

foreach (i : children)
{
{
attributes = i->customAttributes;
foreach(a : attributes->keys)
{
{
if ((a != ".dlink.slotSize") &&  (a != "uptime"))
{
println (a . " = " . attributes[a] . "," . " Port: " . i->port . "," . " Interface name: " . i->name . "," . " Node name: " . Tree->name);
}
  }
}
}

GetTree(i->id);
  }
}

GetTree(2);


EPP:

Скрипт для и фильтрации по интерфейсам, например для SYS_IF_UP.
ignoreInterfaceRegEx = "^ppp([0-9]+)|802.1Q";

if ($2 ~= ignoreInterfaceRegEx)
  return false;

return true;
#12
Общие вопросы / SYS_SNMP_UNREACHABLE
June 23, 2016, 12:37:41 PM
Есть нода (коммутатор), при настройке на нём забыли включить и настроить snmp community, но при добавлении ноды она имеет стату Normal и интерфейс unknow потому что отвечает на ICMP и ни как не выделяется в контейнере на фоне остальных нод, при этом если делать Status poll, configuration poll, событие SYS_SNMP_UNREACHABLE не приходит. Как можно было бы отслеживать такие ноды где SNMP не доступно и помечать их для того чтобы потом донастроить?
#13
Собственно сабж. Как можно отключить вообще принятие snmp traps udp 162 ?

Нужно как то данный флаг AF_ENABLE_SNMP_TRAPD выставить в 0 ?
#14
Добрый день! Возникла необходимость реализовать автоматическое распределение нод по контейнерам, а так же переименовыванием, если у ноды имя == IP (которое образуется в процессе NetworkDiscovery) - пихать эту ноду в "безымянный" контейнер для нод. Если у ноды вписано sysName - переименовываем ноду в этот sysName. На форуме были похожие примеры, часть скрипта я взял с форума.

sub main()
{
  if ($node->isSNMP)
   {
   transport = CreateSNMPTransport($node);
    if (transport == null)
    {
    return -1;
    }
   
    location = SNMPGetValue(transport, ".1.3.6.1.2.1.1.6.0"); // sysLocation
    sysname = SNMPGetValue(transport, ".1.3.6.1.2.1.1.5.0");  // sysName
    //nodename = FindObject($node);
   
if (sysname != null && sysname !="" && sysname !=" ")
    { 
         RenameObject($node, sysname);
    }         
           
    if ($node->name ~= "^10.10.|10.20")
    {
   
    BindObject(FindObject(15775), $node);
println ("true");
     
    }
   
    else
   
    println ("false");

   
   
}
   
}


15775 - id контейнера куда должны складываться ноды с IP в имени.

Но даже простой пример: (Execute server script)

sub main()
{
BindObject(FindObject(15775),FindObject(13471));
}

Error 14 in line 3: Function or operation argument is not an object


Ладно, я пошёл другим путём и сделал Auto bind на нужном контейнере:

return $node->isSNMP && ($node->name ~= "^10.10.|10.20");

Включил active and passive discovery с фильтром SNMP и address subnet.

Все ноды сразу же нашлись и забиндились в контейнер 15775, но они так же остаются и в Infrastructure Services, хотя там они естественно не нужны.

Так вот, что нужно сделать чтобы в Infrastructure Services они не биндились после Discovery и как мне совместить NetworkDiscovery по subnet + скрипт который будет переименовывать ноды? Или как правильно его назвать чтобы он вызывался при определённых Poll's
#15
Общие вопросы / Sevirity change Action
June 02, 2016, 03:01:15 PM
В EPP для некоторых нод (более важных) и события SYS_IF_DOWN поменял sevirity alarm на Major. Но в action на почту так же отправляется стандартное Minor из события, как бы можно это поведение изменить? Менять severity в событии означает смену для всех устройств, а нужно только для определённых.
#16
Общие вопросы / NetworkService
May 30, 2016, 07:35:10 PM
Не могу разобраться как мониторить сервисы с помощью встроенного функционала NetworkService, про HTTP множество примеров, а вот если нужно к примеру Custom и не стандартный порт. Например User-defined 179, poller node - указываю эту же ноду на которой нужно чекать порт bgpd. Request, Repsone пусто. Показывает что статус critical либо не может опросить.

И еще если сервис висит на 127.0.0.1:port, как его можно мониторить?
#17
На одной из машин на базе Debian 7.10 Wheezy ни в какую не работает агент nxagentd.

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

DebugLevel = 5

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


nxget -l x.x.x.x Agent.SupportedParameters
408: Request timeout


[04-May-2016 19:28:12.452] [DEBUG] Shutdown() called
[04-May-2016 19:28:12.452] [DEBUG] Waiting for data collector thread termination
[04-May-2016 19:28:12.452] [DEBUG] Stopping threads in thread pool DATACOLL
[04-May-2016 19:28:12.452] [DEBUG] Data reconciliation thread stopped
[04-May-2016 19:28:12.452] [DEBUG] Maintenance thread for thread pool DATACOLL stopped
[04-May-2016 19:28:12.453] [DEBUG] Thread pool DATACOLL destroyed
[04-May-2016 19:28:12.453] [DEBUG] Data collection scheduler thread stopped
[04-May-2016 19:28:12.453] [DEBUG] Waiting for data sender thread termination
[04-May-2016 19:28:12.453] [DEBUG] Data sender thread stopped
[04-May-2016 19:28:12.453] [DEBUG] Waiting for database writer thread termination
[04-May-2016 19:28:12.453] [DEBUG] Database writer thread stopped
[04-May-2016 19:28:12.453] [DEBUG] Waiting for data reconciliation thread termination
[04-May-2016 19:28:12.453] [DEBUG] Trap sender thread terminated
[04-May-2016 19:28:14.640] [DEBUG] [session:0] CommSession::disconnect()
[04-May-2016 19:28:14.640] [DEBUG] [session:0] Message receiving error (MSGRECV_CLOSED)
[04-May-2016 19:28:14.641] [DEBUG] [session:0] Session with x.x.x.x closed
[04-May-2016 19:28:15.641] [DEBUG] Session Watchdog thread terminated
[04-May-2016 19:28:15.641] [DEBUG] Listener thread terminated
[04-May-2016 19:28:15.789] [DEBUG] DB connection 0x135cad0 closed
[04-May-2016 19:28:15.789] [INFO ] NetXMS Agent stopped

[04-May-2016 19:28:15.812] Log file opened
[04-May-2016 19:28:15.813] [INFO ] Additional configs was loaded from /etc/nxagentd.conf.d
[04-May-2016 19:28:15.813] [INFO ] Debug level set to 5
[04-May-2016 19:28:15.813] [DEBUG] Data directory: /var/lib/netxms
[04-May-2016 19:28:15.813] [DEBUG] Subagent API initialized
[04-May-2016 19:28:15.814] [DEBUG] Validating ciphers
[04-May-2016 19:28:15.814] [DEBUG]    AES-256 enabled
[04-May-2016 19:28:15.814] [DEBUG]    Blowfish-256 enabled
[04-May-2016 19:28:15.814] [DEBUG]    IDEA disabled (config)
[04-May-2016 19:28:15.814] [DEBUG]    3DES enabled
[04-May-2016 19:28:15.814] [DEBUG]    AES-128 enabled
[04-May-2016 19:28:15.814] [DEBUG]    Blowfish-128 enabled
[04-May-2016 19:28:15.814] [DEBUG] Crypto library initialized
[04-May-2016 19:28:15.817] [DEBUG] SQLite version 3.7.13
[04-May-2016 19:28:15.817] [INFO ] DB Library: Database driver "sqlite.ddr" loaded and initialized successfully
[04-May-2016 19:28:15.817] [DEBUG] New DB connection opened: handle=0x120aad0
[04-May-2016 19:28:16.173] [DEBUG] Local database opened successfully
[04-May-2016 19:28:17.177] [DEBUG] Linux: using /sys/block to distinguish devices from partitions
[04-May-2016 19:28:17.177] [DEBUG] ParseIoStat(): new device added (name=sdb isRealDevice=1)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=sdb1 isRealDevice=0)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=sdb2 isRealDevice=0)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=sdb3 isRealDevice=0)
[04-May-2016 19:28:17.178] [DEBUG] Unable to parse /proc/drbd, DRBD data collector will not start
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=sda isRealDevice=1)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=sda1 isRealDevice=0)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=sda2 isRealDevice=0)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=sda3 isRealDevice=0)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=md0 isRealDevice=1)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=loop0 isRealDevice=1)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=loop1 isRealDevice=1)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=loop2 isRealDevice=1)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=loop3 isRealDevice=1)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=loop4 isRealDevice=1)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=loop5 isRealDevice=1)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=loop6 isRealDevice=1)
[04-May-2016 19:28:17.178] [DEBUG] ParseIoStat(): new device added (name=loop7 isRealDevice=1)
[04-May-2016 19:28:17.180] [INFO ] Subagent "linux.nsm" loaded successfully
[04-May-2016 19:28:18.181] [DEBUG] External parameters providers poller thread will not start
[04-May-2016 19:28:18.182] [DEBUG] Data sender thread started
[04-May-2016 19:28:18.182] [DEBUG] Data collection scheduler thread started
[04-May-2016 19:28:18.182] [DEBUG] Data reconciliation thread started
[04-May-2016 19:28:18.182] [DEBUG] Database writer thread started
[04-May-2016 19:28:18.182] [DEBUG] Trying to bind on 0.0.0.0:4700
[04-May-2016 19:28:18.182] [DEBUG] Trying to bind on [::]:4700
[04-May-2016 19:28:18.182] [DEBUG] Session agent connector disabled
[04-May-2016 19:28:18.182] [INFO ] Listening on socket 0.0.0.0:4700
[04-May-2016 19:28:18.182] [DEBUG] Thread pool DATACOLL initialized (min=1, max=64)
[04-May-2016 19:28:18.182] [INFO ] Listening on socket [::]:4700
[04-May-2016 19:28:19.242] [INFO ] NetXMS Agent started
[04-May-2016 19:28:27.300] [DEBUG] Incoming connection from x.x.x.x
[04-May-2016 19:28:27.300] [DEBUG] Connection from x.x.x.x accepted
[04-May-2016 19:28:27.300] [DEBUG] [session:0] Requesting parameter "Agent.Version"
[04-May-2016 19:28:27.300] [DEBUG] [session:0] Requesting parameter "System.PlatformName"
[04-May-2016 19:28:27.301] [DEBUG] [session:0] Requesting parameter "Net.IP.Forwarding"
[04-May-2016 19:28:27.301] [DEBUG] [session:0] Requesting parameter "System.Uname"
[04-May-2016 19:28:27.301] [DEBUG] [session:0] Requesting parameter "Net.Interface.64BitCounters"
[04-May-2016 19:28:31.020] [DEBUG] Incoming connection from x.x.x.x
[04-May-2016 19:28:31.020] [DEBUG] Connection from x.x.x.x accepted
[04-May-2016 19:28:31.020] [DEBUG] [session:1] Requesting list "Agent.SupportedParameters"
[04-May-2016 19:28:36.021] [DEBUG] [session:1] Message receiving error (MSGRECV_CLOSED)
[04-May-2016 19:28:36.021] [DEBUG] [session:1] Session with x.x.x.x closed
[04-May-2016 19:28:37.302] [DEBUG] [session:0] Message receiving error (MSGRECV_CLOSED)
[04-May-2016 19:28:37.302] [DEBUG] [session:0] Session with x.x.x.x closed


[04.05.2016 19:29:08] **** Poll request sent to server ****
[04.05.2016 19:29:08] Poll request accepted
[04.05.2016 19:29:09] Starting configuration poll for node Debian3
[04.05.2016 19:29:09] Checking node's capabilities...
[04.05.2016 19:29:09]    Checking NetXMS agent...
[04.05.2016 19:29:09]    NetXMS native agent is active
[04.05.2016 19:29:18] Capability check finished
[04.05.2016 19:29:19] Checking interface configuration...
[04.05.2016 19:29:23] Unable to get interface list from node
[04.05.2016 19:29:23] Interface configuration check finished
[04.05.2016 19:29:23] Checking node name
[04.05.2016 19:29:24] Node name is OK
[04.05.2016 19:29:24] Reading list of installed software packages
[04.05.2016 19:29:24] Unable to get information about installed software packages
[04.05.2016 19:29:24] Finished configuration poll for node newpppoe35
[04.05.2016 19:29:24] Node configuration was not changed after poll
[04.05.2016 19:29:24] **** Poll completed successfully ****



Пробовал переустановить весь софт в системе: dpkg --get-selections \* | awk '{print $1}' | xargs -l1 aptitude reinstall, отключать firewall. Уже всю голову сломал, не могу понять что не так. Соотвественно в DCI на этой ноде я не вижу ни одного параметра от агента. На аналогичной машинке всё работает без проблем.



#18
Иногда генерируются такие события и алармы:

676504 24.02.2016 02:03:51 SW41 0 SYS_IF_EXPECTED_DOWN Normal Interface "swp25" with expected state DOWN changed state to DOWN (IP Addr: UNSPEC/0, IfIndex: 26) 0
676813 24.02.2016 05:09:08 SW1 (1.250) 0 SYS_IF_EXPECTED_DOWN Normal Interface "1/8" with expected state DOWN changed state to DOWN (IP Addr: UNSPEC/0, IfIndex: 8) 0

673900 23.02.2016 05:32:58 SW1 (1.250) 0 SYS_IF_UP Normal Interface "1/22 (MONITORING SW)" changed state to UP (IP Addr: UNSPEC/0, IfIndex: 22) 0


По времени это может быть 05:00 утра или 02:00 ночи, на коммутаторах при этом ничего не происходит похожего.

Я понимаю когда, например, срабатывает такое:

[Normal] SW10 (167.1) Interface "1/25" with expected state DOWN changed state to DOWN (IfIndex: 25)
[Major] SW10 (167.1) Interface "1/25" unexpectedly changed state to UP (IfIndex: 25)


Тут всё правильно, и на самом коммутаторе из unexpectedly state UP порт переходит в expected state DOWN.

А вот ситуация выше похожа на какой то баг, возможно. Какую доп. информацию нужно предоставить?

UPD.

Заметил еще следующее:

677530 24.02.2016 12:11:47 SW41 0 SYS_IF_UP Normal Interface "swp06 (Solnechnaya 85)" changed state to UP (IP Addr: UNSPEC/0, IfIndex: 7) 0
677529 24.02.2016 12:10:43 SW41 0 SYS_IF_UNKNOWN Warning Interface "swp06 (Solnechnaya 85)" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 7) 0


То есть почему то вначале вообще SYS_IF_UNKNOWN создаётся....

676504 24.02.2016 02:03:51 SW41 0 SYS_IF_EXPECTED_DOWN Normal Interface "swp25" with expected state DOWN changed state to DOWN (IP Addr: UNSPEC/0, IfIndex: 26) 0
676503 24.02.2016 02:02:47 SW41 0 SYS_IF_UNKNOWN Warning Interface "swp25" changed state to UNKNOWN (IP Addr: UNSPEC/0, IfIndex: 26) 0


Тогда на баг не похоже, но как бороться с этим SYS_IF_UNKNOWN ?
#19
Подскажите пожалуйста как реализовать такую хотелку :)

Необходимо мониторить и выявлять так называемые "флапающие" порты, например в лог падает такое:

297   2016-02-19 17:18:46 Port 1 link up, 100Mbps  FULL duplex
296   2016-02-19 17:18:44 Port 1 link down
295   2016-02-19 17:18:43 Port 1 link up, 100Mbps  FULL duplex
294   2016-02-19 17:18:41 Port 1 link down
293   2016-02-19 17:18:41 Port 1 link up, 100Mbps  FULL duplex
292   2016-02-19 17:18:39 Port 1 link down
291   2016-02-19 17:18:38 Port 1 link up, 100Mbps  FULL duplex
290   2016-02-19 17:18:36 Port 1 link down
289   2016-02-19 17:18:36 Port 1 link up, 100Mbps  FULL duplex
288   2016-02-19 17:18:34 Port 1 link down
287   2016-02-19 17:18:33 Port 1 link up, 100Mbps  FULL duplex
286   2016-02-19 17:18:31 Port 1 link down
285   2016-02-19 17:18:31 Port 1 link up, 100Mbps  FULL duplex
284   2016-02-19 17:18:29 Port 1 link down
283   2016-02-19 17:18:28 Port 1 link up, 100Mbps  FULL duplex
282   2016-02-19 17:18:26 Port 1 link down
281   2016-02-19 17:18:26 Port 1 link up, 100Mbps  FULL duplex
280   2016-02-19 17:18:24 Port 1 link down
279   2016-02-19 17:18:23 Port 1 link up, 100Mbps  FULL duplex
278   2016-02-19 17:18:21 Port 1 link down
277   2016-02-19 17:18:21 Port 1 link up, 100Mbps  FULL duplex
276   2016-02-19 17:18:19 Port 1 link down
275   2016-02-19 17:18:18 Port 1 link up, 100Mbps  FULL duplex
274   2016-02-19 17:18:16 Port 1 link down
273   2016-02-19 17:18:15 Port 1 link up, 100Mbps  FULL duplex
272   2016-02-19 17:18:13 Port 1 link down
271   2016-02-19 17:18:13 Port 1 link up, 100Mbps  FULL duplex
270   2016-02-19 17:18:11 Port 1 link down
269   2016-02-19 17:18:10 Port 1 link up, 100Mbps  FULL duplex
268   2016-02-19 17:18:08 Port 1 link down
267   2016-02-19 17:18:08 Port 1 link up, 100Mbps  FULL duplex


И это может быть до бесконечности, причин там много, в основном физика. Как бы это дело запихнуть в Syslog parser и сделать так, чтобы при достижении некоторых Samples (например если более 30 раз порт флапнулся) срабатывал эвент?
#20
General Support / SYS_IF
February 15, 2016, 11:49:37 PM
Hello. I would like to share experiences SYS_IF_DOWN SYS_IF_DISABLED SYS_IF_UP.

On the switch port can not be ip addresses, and therefore I do not want there to see these macros: IP Addr: %3/%4
I created a new event's - SYS_IF_DOWN_DLINK SYS_IF_DISABLED_DLINK and he did it so:  Interface "%2" changed state to DOWN (IfIndex: %5)

Then I applied them on filters in the EPP, but still trigger major developments in spite of that, I can implement my logic?

That is, for a certain container switches I want to receive event's SYS_IF_DOWN_DLINK SYS_IF_DISABLED_DLINK and etc, and for everyone else, servers and ports on the routers I need major events SYS_IF_DOWN SYS_IF_DISABLED SYS_IF_UP

Рow is that possible to do?