Skip to main content

Install the BigPanda Agent for Debian or Ubuntu

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.

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

Create an App Key

Create an app key in BigPanda.

Integration specific

You'll need a separate app key for each integrated system.

https://files.readme.io/9865f2f-Integrations_App_Key_Creation.jpg

App Key Configuration in BigPanda

Install the BigPanda Agent on Debian or Ubuntu

Connect to the host where your server is installed, 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 or 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

Install the bp_listener package

The bp_listener package is hosted in JFrog and can be installed via pip. The listener uses a specific location to work correctly with the BigPanda agent:

  1. Activate the virtual environment

    $ source /opt/bigpanda/venv/bin/activate
  2. The agent is installed in a virtual environment, so you must add the bp_listener module into the environment:

    $ sudo /opt/bigpanda/venv/bin/pip3 install --extra-index-url https://bigpandaio.jfrog.io/artifactory/api/pypi/int-pypi/simple bp_listener
  3. You can verify the bp_listener package has been installed into the virtual environment’s ``site-packages``:

    $ sudo pip3 show bp_listener
  4. Deactivate the virtual environment.

Configure the BigPanda Agent

Generate the agent's configuration file:

$ sudo bigpanda-config --init --token <Your Org Bearer Token>
$ sudo bigpanda-config --add listener --app-key <Your App Key>

When prompted, specify the locations of <integration_name>.log, status.dat, and objects.cache files.

The script output should look like this:

Log File Path: /var/log/icinga/icinga.log
Status Dat Path: /var/cache/icinga/status.dat
Objects Cache Path: /var/cache/icinga/objects.cache

Of course, the actual paths will depend on your installation.

Configure the bp_listener service

  1. Update the configuration file as needed before starting the bigpanda-listener service:

    $ sudo vim /etc/bigpanda/listener/bp_listener.json
    
  2. You have the following configuration options:

    • bp.queue: The BigPanda queue the agent is configured to use.

    • bp.logfile: The log file path for bp_listener.

    • listener.port: The port the listener will listen on.

    • listener.host: The host ip the listener will bind to.

    • listener.timeout: The timeout in seconds for the socket to stay open.

    • listener.source_timezone: The IANA compliant timezone identifier.

    • listener.timestamp_key: The key in the payload that contains the timestamp.

    • listener.timestamp_format: The format of the timestamp in the payload.

    • listener.inbound_queue_size: The socket queue for inbound connections, uses up server resources.

    • listener.max_threads: The maximum number of threads to use for processing events.

    • log.level: The log level for bp_listener.

    • log.verbose: Boolean switch to log verbose output.

    • log.log_count: The number of log files to keep.

Start the BigPanda Listener service

  1. Start the BigPanda Listener service by running the following command:

    $ sudo systemctl start bigpanda-listener
    
  2. Verify the service is running with the following command:

    $ systemctl status bigpanda-listener

Testing the BigPanda Listener Service

The client.py script is used to test the functionality of the server, and is located within the bp_listener python package in the installed python3 site-packages/ directory.

The following command will list the location of the bp_listener package:

$ sudo pip3 show bp_listener

The client.py script contains a default payload that is sent to the bigpanda-listener service. A json file can be used to submit a custom payload in place of the default.

To run the client.py script, use the following command:

$ python3 /path/to/bp_listener/test_client/client.py

Example Use:

usage: client.py [-h] [-s SERVER] [-p PORT] [-f FILE]

Client to send test payloads to BP Listener.

options:
  -h, --help                    show this help message and exit
  -s SERVER, --server SERVER    Server address the listener is configured to listen on (default: 127.0.0.1)
  -p PORT, --port PORT          Port the listener is configured to listen on (default: 4011)
  -f FILE, --file FILE          Optional JSON file to send as payload (default: None)
  -r RAW, --raw RAW             Optional TXT file containing a raw EIF type message (default: None)

Update Permissions

Give the agent read permissions to the objects.cache, status.dat and log files. A possible way to do it:

$ sudo usermod -a -G "<GROUP OF OBJECT CACHE FILE>,<GROUP OF LOG FILE>,<GROUP OF STATUS DAT FILE>" bigpanda

Start the BigPanda Agent

$ sudo service bigpanda start

Uninstall the BigPanda Agent from Debian and Ubuntu

  1. Connect to the server where you want to uninstall the BigPanda Agent package. You must have root privileges.

  2. Run the following commands:

    • sudo apt-get purge bigpanda-agent
    • sudo rm /etc/apt/sources.list.d/bigpanda.list
    • sudo apt-get update

Uninstall the BigPanda Agent manually

Package will not be removed from package manager's database

This method does not remove the package from your package manager's database. Consider using this information to verify that the Agent files are completely removed.

  1. Stop the BigPanda service by running the following command:

    sudo service bigpanda stop
  2. Remove the BigPanda python module from the Python3 library. This library is usually located in /usr/lib/python<VERSION>/site-packages/bigpanda or /usr/lib/python<VERSION>/dist-packages/bigpanda.

    You can verify site package locations with the following commands:

    $ python3 -m site
    $ pip3 list -v
  3. Remove the following files:

    • /usr/bin/bigpanda-agent/

    • usr/bin/bigpanda-config

    • etc/init/bigpanda.conf

    • etc/init.d/bigpanda

    • /etc/bigpanda

    • var/log/bigpanda

    • var/lib/bigpanda

    • var/run/bigpanda

    Using the find command can help locate files

    Use the find command to help locate files: $ sudo find / -name bigpanda*

  4. Remove the BigPanda user and group by running the following commands:

    sudo userdel -r bigpanda
    sudo groupdel bigpandav