NodeJS MP topology view shows empty after discovery aspect deploy

Hello experts,

We have been working with the Node JS MP in OBM 23.4. The aspects are deployed correctly in the node: Discovery, Collector, and Performance. However, the Node JS views are shown empty, and the RTSM does not detect any CI with NodeJS.

The OBM_MP_for_Nodejs_UserGuide.pdf was completed step by step, along with installing/deploying the Monitor Framework in OBM.

I've tried restarting the servers, deleting and re-deploying the aspects, re-install the MP. Certs and communication are just fine as I have other MPs working on the same node (infra).

More information on the environment:

Distributed OBM
Version 23.4
Windows Server

Some screenshots:

Events read the deployment was executed correctly.

Empty view:

Thank you beforehand!

Greetings.

  • Suggested Answer

    0  

    Hello there,

    The management pack is from 2019, so I don't know if it's been tested recently.  However, I can see in your screen shots that policies have automatically been deployed.

    Checking Installation:

    Please ensure you followed all teh steps in the installation guide, including adding the package to UCMDB and enabling the enrichment rule in UCMDB as described on page 6 of the User Guide. 

    UCMDB:

    - Please check there is a UCMDB query called "Nodejs_Topology" (cmd.exe > ovpolicy -list).

    Discovery:

    On the managed node:

    - Please check if there any error messages in %ovdatadir%\log\System.txt? Anything else related in  %ovdatadir%\log\ (e.g. start cmd.exe and "cd" to %ovdatadir%\log\.  Next please run "findstr /s /i nodejs *" and look anything that is returned.

    - The discovery policy, and it runs throughout the day every odd hour (1,3,5,7,9,11,13,15,17,19,21,23).

    - Please make sure service discovery policy "Discovery Policy for application Nodejs" has been deployed.  It's this policy that does the discovery.

    - Please check all the files in %ovdatadir%\conf\agtrep to see if they have anything NodeJs related.

    On the OBM server:

    - On the OBM GW servers, please check on all GWs %ovdatadir%\shared\server\log\OvSvcDiscServer.log to see if you can see anything Nodejs related? 

    I hope this helps.

  • Suggested Answer

    0   in reply to   

    Did you manage to get this working?

  • 0 in reply to   

    Hello Duncan, sorry for the late response,

    About the installation, the package is on the UCMDB and the enrichment rule is enabled:

    ovpolicy -list on DPS server does not appear to have the Nodejs_Topology query when I execute ovpolicy -list.

    But then, when I looked through the logs I found the next messages:

    It appears to be a problem with the MP's compatibility. I'm using it on a Windows Server, which is confusing, as the user guide states it is compatible with Linux and Windows OS.

    Thank you for your time and comment on this post.

    Greetings.

  • Verified Answer

    +1   in reply to 

    Hello there,

     

    I checked the perl modules and this tells the story: NodeJSCollector.pm shows the source of the "ERROR: Nodejs MP is not supported on non Linux OS" log file entry:

     

    sub prereqCheck()

    {

                     my $self        = shift;

                    if ($^O !~ m/linux/i)

        {

            $self->log($self->INFO, "ERROR: Nodejs MP is not supported on non Linux OS.");

            return 1;

        }

       

        # Supported OS Architecture.

        my $osArch=`uname -m`;

        chomp $osArch;

        if($osArch ne "x86_64")

        {

            $self->log($self->INFO, "ERROR: Nodejs MP supports Linux x64 platform.");

            return 1;

        }

       

                    return 0;

    }

     

    Where if ($^O !~ m/linux/i) means:

    $^O is the variable in Perl that contains OS name of the system where the script is running - for example Linux is "linux", and Windows would be "MSWin32".

    !~ means "does not match"

    m/linux/i is a case insensitive match for the string linux.

     

    This is because elsewhere in the script, it runs commands like:

                    my @psoutput = `ps aux| grep $nodepid| grep -v grep`;

     

    Which are unix commands.

     

    The “Operations Bridge Manager for Linux and Windows® operating systems” means that it can be installed on Linux or Windows OBM systems.  I understand this may not be that clear.

    Sorry, I don't think it's gonig to work without some changes.

    All the best.

  • 0 in reply to   

    Hello again Duncan, 

    Thank you for the follow-up and the explanation of the code validation, now it makes more sense why it doesn't run properly.

    Greetings!