Skip to main content

Zenoss

Supported Versions

Type

Authentication Type

Zenoss Core 4, 5, 6

Agent

Org Bearer Token

Zenoss monitors performance and availability across your IT infrastructure. The BigPanda Agent queries for all new Zenoss events and for changes in event states in real-time via the Zenoss API. To ensure a full sync of all current alerts, the agent also queries for all Zenoss events at regular, configurable intervals.

Key Features

  • Keeps you up-to-date on the status of Zenoss events and all relevant event attributes.

  • Correlates Zenoss events into actionable incidents in BigPanda, so you can easily manage the events and the associated devices.

How and When Alerts are Closed

When Zenoss sends a close event for an alert, the alert is automatically closed in BigPanda. However, closing an alert manually in BigPanda does not close the alert in Zenoss.

Install the Integration

Install the integration by following these steps:

Zenoss Data Model

BigPanda normalizes alert data from Zenoss into tags. You can use tag values to filter the incident feed and to define filter conditions for Environments. The primary and secondary properties are also used during the deduplication and correlation processes.

Zenoss Standard Tags

Tag

Description

Attributes

device

Name of the device for which the event occurred.

Primary Property

check

Event key (or event class, if the event key does not exist) and component, if it exists.

For example: "/Status/Heartbeat on zenmodeler"

Secondary Property

severity

Number representing the severity of the event, mapped to:

0: Clear

2: Info

3: Warning

4: Error

5: Critical

summary

Summary of the event.

message

Message body of the event. This value may be the same as the summary.

component

Zenoss daemon reporting the event.

event_class

Event class the event maps to.

event_key

User-defined mapping for the event.

ip_address

IP address of the device.

prod_state

Production state of the device.

systems

Names of the Zenoss system organizers for the device.

stateChange

When state of the device last changed

Used as alert timestamp

device_groups

Names of the Zenoss group organizers for the device.

device_class

Device class.

device_url

URL of the device.

location

Names of the Zenoss location organizers for the device.

monitor

Monitor for the device.

Customize Zenoss

To ensure a full sync of all current alerts, the BigPanda agent queries for all Zenoss events at regular intervals. You can configure the query interval or disable the full sync by editing the config file for the agent.

Before You Start

Obtain access to the server where the BigPanda agent is installed.

Install the Integration

Install the integration by following these steps:

Configure the Query Interval

You may want to configure the full sync to reduce the load on your Zenoss server, depending on the average volume of events Zenoss generates.

  1. Open the config file, which is located at /etc/bigpanda/bigpanda.conf.

  2. Locate the settings for the Zenoss full sync, named zenoss/fullsync.

  3. Change the value of the full_sync_interval to your preferred interval between full syncs, in seconds. The default value is 900 (15 minutes).

Disable the Full Sync

Full sync

The full sync acts as a backup to the incremental sync to ensure accuracy. Disable this feature only if you need to reduce the load on your Zenoss server.

  1. Open the config file, which is located at /etc/bigpanda/bigpanda.conf.

  2. Locate the settings for the Zenoss full sync, named zenoss/fullsync.

  3. Add the following key and value pair: "enabled": false.

Add pair

Make sure you add the pair outside of the config property.

"name": "zenoss/fullsync", 
"enabled": false, 
"config": {
  "user": "BigPanda",...
  },

Uninstall the Integration

To stop sending Zenoss events to BigPanda, you can uninstall the agent from the server or remove the Zenoss integration from the agent.

Before You Start

  • Remove any data in BigPanda. For example, modify or remove any Environments or AutoShare rules that reference the integration. All active alerts from the integration will be resolved after deletion.

  • Obtain access to the server where the BigPanda agent is installed.

  • Determine if the agent on the server supports only the Zenoss integration or supports multiple BigPanda integrations.

  • Determine the OS on the server.

Replacing existing integrations

When replacing an existing integration with a new tool or system, we recommend configuring the new integration first to ensure no data is lost.

Deactivate the Integration

If you want to stop sending data to BigPanda but don’t want to delete your integration, you can temporarily deactivate it.

To deactivate an inbound integration:

  1. In BigPanda, navigate to the Integrations tab and select the desired integration from the list. This will open integration details on the right side of the window.

  2. At the top of the integration details, click the Active/Inactive toggle next to the application name to change the status of the integration.

Alert resolution for inactive integrations

Any active alerts belonging to an inactive integration must be manually resolved or they will stay in the system until the auto-resolve window is reached.

Uninstall the Agent

If the agent supports only the Zenoss integration, you can uninstall the agent from the server.

BigPanda Agent

Do not uninstall the BigPanda agent if it is supporting other BigPanda integrations. In this case, remove the Zenoss integration from the agent.

Remove the Zenoss Integration from the Agent

If the agent is supporting multiple integrations, you can remove only the specific integration without disabling the other BigPanda integrations that the agent supports.

  1. Stop the BigPanda agent by running the following command.

    sudo service bigpanda stop

  2. Remove the integration from the agent configuration file by running the following command. Replace the app key with the corresponding value in BigPanda.

    sudo bigpanda-config -r <INTEGRATION APP KEY>

  3. Start the BigPanda agent by running the following command.

    sudo service bigpanda start

Delete the Integration from BigPanda

  1. In BigPanda, navigate to the Integrations tab and select the desired integration from the list.

  2. In the integration details on the right of the page, click the trash icon, then confirm you want to delete the integration. The integration will then be removed immediately.

Alert resolution for deleted integrations

All active alerts from the integration will be resolved after deletion.

Data removal

This procedure does not remove any data from the integrated system.

Install the Integration with Debian or Ubuntu

The BigPanda agent is a low-footprint utility installed on the master host of your monitoring tool. It consumes alerts from the tool in real-time and then transmits them to BigPanda via TLS-encrypted HTTP calls.

Python Compatibility

To use the Open Integration Manager for Agent-based integrations, Python version>= 3.8.0 and an Agent version >= 10.2 are required.

Prerequisites

python >= 3.8 and python-pip3 should be installed prior to installing the bigpanda-agent package.

  1. Ensure python3 is installed with the following command:

    $ sudo apt install -y python3
  2. Verify the install with the following commands:

    $ python3 --version
    $ pip3 --version

Note: If pip3 was not installed as a dependency, it can be installed with sudo apt install -y python3-pip.

Note: Access to JFrog, pypi, and yum repositories are required to install all dependencies.

Install the BigPanda Agent on Debian and Ubuntu

Connect to a host that can access the API endpoints and install the BigPanda agent package.

  1. Ensure packages are installed prior to downloading the BigPanda agent package:

    $ sudo apt update && sudo apt install -y gnupg2 curl lsb-release
  2. Add the BigPanda repository and download the OpenPGP key:

    $ echo deb https://bigpandaio.jfrog.io/artifactory/int-deb `lsb_release -c -s` main | sudo tee /etc/apt/sources.list.d/bigpanda.list
    $ curl -sL https://bigpandaio.jfrog.io/artifactory/api/security/keypair/bigpanda/public | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/bigpanda.gpg > /dev/null
    • The --dearmor option is for unpacking input from an OpenPGP ASCII armored key.

    • Since apt-key is marked to be deprecated on future releases of Debian and Ubuntu, it is preferred to manage keyring files in trusted.gpg.d instead.

    • Note: apt-key can still be used in place of OpenPGP, but it is less secure.

      $ curl -sL https://bigpandaio.jfrog.io/artifactory/api/security/keypair/bigpanda/public | sudo apt-key add -
  3. Update the repo list and install the BigPanda agent package.

    $ sudo apt update
    $ sudo apt install -y bigpanda-agent

    Note: For the OIM, bigpanda-agent v10.0.0+ is required.

Troubleshooting:

Error:

E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?

Solution:

$ sudo ln -sf /usr/lib/apt/methods/http /usr/lib/apt/methods/https
$ sudo apt install -y apt-transport-https
$ sudo apt update

Configure the BigPanda Agent

Generate the agent's configuration file:

$ sudo bigpanda-config --init --token <Your Org Bearer Token>

And add the Zenoss plugin with the application key you created in step 1:

$ sudo bigpanda-config --add  --app-key <Your App Key>

When prompted, enter the base URL of the Zenoss.core web interface and a valid username and password.

Note: You may want to create a dedicated user for BigPanda, the required role is ZenUser.

Set Zenoss timezone

Zenoss uses the timezone that has been set in the system that it is installed on. Connect to the server Zenoss is installed on, check the timezone, and select it below.

Integrations_Zenoss_Timezone.jpg

Start the BigPanda Agent

$ sudo service bigpanda start

Success

You should be able to see all your active alerts from this integration in the Incidents tab.

Install the Integration with Docker

The BigPanda agent is a low-footprint utility installed on the master host of your monitoring tool. It consumes alerts from the tool in real-time and then transmits them to BigPanda via TLS-encrypted HTTP calls.

Python Compatibility

To use the Open Integration Manager for Agent-based integrations, Python version>= 3.8.0 and an Agent version >= 10.2 are required.

Prerequisites

Docker Desktop or Docker Engine must be installed prior to installing the BigPanda agent docker image.

  1. Follow the Docker Installation Guide for your system.

  2. If using Docker Compose, follow the Install Docker Compose guide to ensure the latest version of compose is installed on your system.

    • Docker Compose is built with the latest version of Docker Desktop.

    • If using Docker CLI, ensure Docker CLI's Compose Plugin is installed separately.

Note: If you have issues running any of the docker commands, you either need to run docker with sudo, or add your user to run in the docker group as a non-root user.

Environment Variables

The docker image provides the following environment variables, which can be used to initialize the agent with the appropriate plugin.

  • BP_TOKEN: Initializes the BigPanda Agent Bearer Token

  • SNMP_APP_KEY: Initializes the BigPanda Agent Bearer Token

  • HTTP_PROXY: Adds the proxy settings to bigpanda.conf

  • FORCE_APP_KEY: Set to true to override the existing plugin app key

  • NAGIOS_APP_KEY: Sets the Nagios App Key and configures the plugin

  • NAGIOS_USER: Sets the Nagios Username and is required to set up Nagios plugin

  • ZABBIX_APP_KEY: Sets the Zabbix App Key and configures the plugin

  • ZENNOSS_APP_KEY: Sets the Zenoss App Key and configures the plugin

  • ICINGA_APP_KEY: Sets the Icinga App Key and configures the plugin

Pull the BigPanda docker image

  1. Pull the latest BigPanda agent docker image from the BigPanda JFrog Docker Registry:

     docker pull bigpandaio-int-docker.jfrog.io/bigpanda-agent:latest
    
  2. Check that the latest image was downloaded successfully:

     docker image ls
    

Optional:

You can configure a dedicated docker network for the agent. This is useful if you require the agent to communicate with other docker services.

  1. Create the docker network:

     docker network create <network-name>
    
  2. Check that the network was created:

     docker network ls

Configure a docker container to work with Zenoss

  1. Run the container in detached mode, passing both BP_TOKEN and ZENOSS_APP_KEY environment variables to docker run.

     docker run -dit \
     --name bp_agent \
     -e BP_TOKEN=<Your Org Bearer Token> \
     -e ZENOSS_APP_KEY=<Your App Key> \
     bigpandaio-int-docker.jfrog.io/bigpanda-agent:latest
    
  2. View the logs of the running docker container:

     docker container logs -f bp_agent
    

Optional - Docker Compose

Services can be managed via Docker Compose, which requires either the Docker Compose Plugin or the latest Docker Desktop installed.

  1. Create a file called docker-compose.yml:

    vim docker-compose.yml
  2. Add the BigPanda agent service configuration to docker-compose.yml:

     version: '3.9'
     services:
       bp_agent:
         image: bigpandaio-int-docker.jfrog.io/bigpanda-agent:latest
         container_name: bp_agent
         restart: always
         stdin_open: true
         tty: true
         environment:
           - BP_TOKEN=<Your Org Bearer Token>
           - ZENOSS_APP_KEY=<Your App Key>
         networks:
           - bigpanda
    
     networks:
       bigpanda:
         external: true

    It's important to note that the following commands are based on having Docker Engine 19+ installed, or Docker Desktop installed which has Docker Compose support. If the docker-compose plugin is installed separately, then the command will start with docker-compose vs docker compose.

  3. Bring up the agent container:

    docker compose up -d

    -d is used to run the container in detached mode.

  4. View the logs of the running docker container:

    docker compose logs -f
  5. You can bring down the container with the down command:

    docker compose down

Configure the Zenoss plugin

The Zenoss plugin requires configuration, which means that we need an interactive session to set it up. The problem when running a docker container in detached mode is the entrypoint script is running the shell session in the background. For this, we can attach to the running session to complete the configuration.

  1. Attach to the shell session to continue setting up Zenoss

    docker attach --detach-keys="ctrl-q" agent

    Since ctrl-c will send a kill signal to the shell, stopping the container, --detach-keys passes an alternate key sequence.

When prompted, enter the base URL of the Zenoss.core web interface and a valid username and password.

Note: You may want to create a dedicated user for BigPanda, the required role is ZenUser.

Set Zenoss timezone

Zenoss uses the timezone that has been set in the system that it is installed on. Connect to the server Zenoss is installed on, check the timezone, and select it below.

Integrations_Zenoss_Timezone.jpg

Success

The next time the agent sends a notification for an alert, you will see the alert in the Incident Dashboard.