Code Monkey home page Code Monkey logo

nri-port-monitor's Introduction

Community Project header

New Relic Infrastructure On-Host Integration for monitoring Network Ports

Reports up or down status for a network (TCP, UDP etc) port.

Requirements

You should have the infrastructure agent installed (see agent installation).

Installation

  • Download and unpack the ZIP file from Releases.
wget https://github.com/newrelic/nri-port-monitor/releases/download/1.3/nri-port-monitor.tar.gz
tar -zxvf nri-port-monitor.tar.gz 
  • Copy the bin directory with nri-port-monitor executable, and the port-monitor-definition.yml config file to /var/db/newrelic-infra/newrelic-integrations.
sudo cp nri-port-monitor/bin/port-monitor /var/db/newrelic-infra/newrelic-integrations/bin/
sudo cp nri-port-monitor/port-monitor-definition.yml /var/db/newrelic-infra/newrelic-integrations/
  • Set execution permissions for the binary file nr-port-monitor.
sudo chmod +x /var/db/newrelic-infra/newrelic-integrations/bin/port-monitor
  • Place the integration configuration file port-monitor-config.yml.sample in /etc/newrelic-infra/integrations.d.

Configuration

In order to use the Port Monitor Integration it is required to configure port-monitor-config.yml.sample file. Firstly, rename the file to port-monitor-config.yml.

sudo cp nri-port-monitor/port-monitor-config.yml.sample /etc/newrelic-infra/integrations.d/port-monitor-config.yml

Then, depending on your needs, specify all instances that you want to monitor. Once this is done, restart the Infrastructure agent.

sudo systemctl restart newrelic-infra.service

Data should start flowing into your New Relic account. See Understand and use data from Infrastructure integrations.

View data

By issuing the following NRQL, you can display the results of the port monitor.

SELECT latest(status) FROM NetworkPortSample FACET address SINCE 30 MINUTES AGO TIMESERIES

0 = Port closed
1 = Port open

Building

Golang is required to build the integration. We recommend Golang 1.11 or higher.

After cloning this repository, go to the directory of the Port Monitor integration and build it:

$ make

The command above executes the tests for the Port Monitor integration and builds an executable file called nri-port-monitor under the bin directory.

To start the integration, run nri-port-monitor:

$ ./bin/nri-port-monitor

If you want to know more about usage of ./bin/nri-port-monitor, pass the -help parameter:

$ ./bin/nri-port-monitor -help

External dependencies are managed through the govendor tool. Locking all external dependencies to a specific version (if possible) into the vendor directory is required.

Testing

To run the tests execute:

$ make test

Support

Should you need assistance with New Relic products, you are in good hands with several support diagnostic tools and support channels.

This troubleshooting framework steps you through common troubleshooting questions.

New Relic offers NRDiag, a client-side diagnostic utility that automatically detects common problems with New Relic agents. If NRDiag detects a problem, it suggests troubleshooting steps. NRDiag can also automatically attach troubleshooting data to a New Relic Support ticket.

If the issue has been confirmed as a bug or is a Feature request, please file a Github issue.

Support Channels

Privacy

At New Relic we take your privacy and the security of your information seriously, and are committed to protecting your information. We must emphasize the importance of not sharing personal data in public forums, and ask all users to scrub logs and diagnostic information for sensitive information, whether personal, proprietary, or otherwise.

We define “Personal Data” as any information relating to an identified or identifiable individual, including, for example, your name, phone number, post code or zip code, Device ID, IP address and email address.

Review New Relic’s General Data Privacy Notice for more information.

Contributing

We encourage your contributions to improve the Port Monitor integration! Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project.

If you have any questions, or to execute our corporate CLA, required if your contribution is on behalf of a company, please drop us an email at [email protected].

A note about vulnerabilities

As noted in our security policy, New Relic is committed to the privacy and security of our customers and their data. We believe that providing coordinated disclosure by security researchers and engaging with the security community are important means to achieve our security goals.

If you believe you have found a security vulnerability in this project or any of New Relic's products or websites, we welcome and greatly appreciate you reporting it to New Relic through HackerOne.

If you would like to contribute to this project, please review these guidelines.

To all contributors, we thank you! Without your contribution, this project would not be what it is today.

License

nri-port-monitor is licensed under the Apache 2.0 License.

nri-port-monitor's People

Contributors

carlossscastro avatar goldenplec avatar hsinghkalsi avatar josephlocascio avatar kenahrens avatar psomareddy avatar qryuu avatar sdewitt-newrelic avatar sschwartzman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nri-port-monitor's Issues

Rename nr-port-monitor-plugin to nr-tcp-port-monitor

Issue: After installing the OHI, I saw errors in the agent log stating it was unable to find the "nr-tcp-port-monitor" file.

time="2018-09-21T21:52:00Z" level=error msg="starting data source" data prefix=integration/com.newrelic.tcp-port-monitor error="fork/exec ./bin/nr-tcp-port-monitor: no such file or directory" plugin name=expressCart

Fix: After renaming nr-port-monitor-plugin to nrt-tcp-port-monitor, the OHI began working.

newrelic / nri-port-monitor

It showing tcp monitoring. I need udp port monitoring integration. what are the steps for Udp??

Someone help here.

An accessible port may have a status of 0.

I have confirmed that I can connect to the port via Telnet.

[root@hostname ~]# telnet localhost 12340
Trying ::1%1...
Connected to localhost.
Escape character is '^]'.

However, when I check with Port Moniter, the status is displayed as 0.

[root@hostname ~]# /var/db/newrelic-infra/newrelic-integrations/bin/port-monitor -address localhost:12340
{"name":"com.newrelic.tcp-port-monitor","protocol_version":"3","integration_version":"2.0.0","data":[{"metrics":[{"address":"localhost:12340","event_type":"NetworkPortSample","network":"tcp","port":"12340","status":0}],"inventory":{},"events":[]}]}
[root@hostname ~]#

What are the possible causes?
Is there any information you need?

I'm counting on your help.
Thank you

untar unix permission issue

When tar xvf nri-port-monitor.tar.gz using root user, the current folder's permission is changed to 501/20 due to the current folder "./" is present in the package, and the owner of "./" is 501/20.

Please consider re-packaging the integration without including the current folder "./" in the package.

Scott D DeWitt's employee details leaking on port-monitor tar gz

Just to let you guy know, an employ details have been leaked on nri-port-monitor.tar.gz
Once follow install instructions just before downloading it and listing its contents the following is shown:


root@522bda29148b:/opt# tar tvf nri-port-monitor.tar.gz 
drwxr-xr-x sdewitt/staff     0 2019-08-29 20:20 ./
drwxr-xr-x sdewitt/staff     0 2019-08-29 20:20 ./nri-port-monitor/
-rw-r--r-- sdewitt/staff   526 2019-08-29 20:20 ./nri-port-monitor/LICENSE
drwxr-xr-x sdewitt/staff     0 2019-08-29 20:20 ./nri-port-monitor/bin/
-rw-r--r-- sdewitt/staff  1754 2019-08-29 20:20 ./nri-port-monitor/README.md
-rw-r--r-- sdewitt/staff   355 2019-08-29 20:20 ./nri-port-monitor/port-monitor-definition.yml
-rw-r--r-- sdewitt/staff   221 2019-08-29 20:20 ./nri-port-monitor/port-monitor-config.yml.sample
-rwxr-xr-x sdewitt/staff 3955239 2019-08-29 20:20 ./nri-port-monitor/bin/port-monitor

it looks to be related to https://github.com/sdewitt-newrelic

Another funky behaviour is that when untar'ing the file will decompress the . folder changing current path ownership to Scott's, which has caused me some trouble

Unable to find nri-port-monitor executable file in the repo

regarding the below step from ReadMe doc:

Copy the bin directory with nri-port-monitor executiable, and the definition file port-monitor-definition.yml to /var/db/newrelic-infra/newrelic-integrations

I am unable to find nri-port-monitor executable file in the repo. Could you please guide me where is this?

nri-port-monitor executable bundled in 1.2 release is 0-byte file

We used https://github.com/newrelic/nri-port-monitor/releases/download/1.2/nri-port-monitor.tar.gz in our deployment of this nri-port-monitor integration, and we also used the chef resource provided by newrelic/infrastructure-agent-chef.

The chef resource was called newrelic_infra_integration, and it created the definition file under /var/db/newrelic-infra/custom-integrations/nri-port-monitor.yaml. This file was rendered as follows:

[root@am-uw2-0a9c9667 custom-integrations]# cat nri-port-monitor.yaml 
---
name: com.newrelic.tcp-port-monitor
protocol_version: 1
os: linux
commands:
  metrics:
    command:
      - /opt/newrelic-infra/nri-port-monitor/nri-port-monitor
      - --metrics
    interval: 10
    prefix: integration/nri-port-monitor

The problem with this that the tar.gz file that the executable given in this file is a 0-byte file. The file is bundled in the 1.2 release of this repo at https://github.com/newrelic/nri-port-monitor/releases/download/1.2/nri-port-monitor.tar.gz.

In order to workaround this problem, I needed to specify bin_dir and bin properties when I use the newrelic_infra_integration in chef, like so:

  action: :create,
  bin: '/opt/newrelic-infra/nri-port-monitor/bin/port-monitor',
  bin_dir: '/opt/newrelic-infra/nri-port-monitor/bin',
  integration_name: 'com.newrelic.tcp-port-monitor',
  remote_url: \
    'https://github.com/newrelic/nri-port-monitor/releases/download/1.2/nri-port-monitor.tar.gz',
  commands: { metrics: %w[--metrics] },
  instances: [
    {
      name: "#{node.name}-nginx-80",
      command: 'metrics',
      arguments: {
        address: '127.0.0.1:80',
        network: 'tcp',
        timeout: 5
      },
      labels: {
        environment: node.chef_environment
      }
    },

Perhaps when the tar.gz file was created, the nri-port-monitor executable was a symlink on the build machine that was linked to bin/port-monitor, and without the proper tar options, the symlink was converted to a 0-byte file before being bundled up in the tar file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.