# Pangolin Monitor and Notification Discord - User Guide

**URL:** <https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703>\
**Category:** Firewalls & Security\
**Tags:** pangolin\
**Created:** [March 8, 2025, 2:06pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703 "2025-03-08T14:06:38Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [March 8, 2025, 2:06pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/1 "2025-03-08T14:06:38Z")

</div>

## Introduction

 ![image](https://forum-cdn.hhf.technology/original/1X/9e76dee660d12d11fe326e4a0c6980eda9fa848d.png)

Pangolin Monitor is a monitoring solution for your Pangolin stack, providing real-time monitoring of containers, system resources, and security metrics with Discord notifications. This menu-based utility helps you maintain the health and security of your Pangolin deployment.

## Installation

1. Download the script :

2. Make the script Executable:

3. Run the script to access the menu system:

## Main Menu

When you run the script without parameters, you’ll see the main menu with these options:

1. **Run Health Check** - Performs a quick check of all monitored components
2. **Start Monitoring (Foreground)** - Continuously monitors your system in the terminal
3. **Install as Systemd Service** - Sets up the monitor to run as a background service
4. **View Container Status** - Shows detailed information about your Docker containers
5. **View System Resources** - Displays CPU, memory, disk, and load information
6. **View SSH Login Attempts** - Shows recent SSH activity, including failed attempts
7. **Analyze Traefik Logs** - Examines Traefik access patterns and potential attacks (Not functional In development-- We have a separate script)
8. **Configuration** - Opens the configuration submenu (see below)
9. **Generate Security Report** - Creates a report and sends it to Discord
10. **Exit** - Quits the program

Select an option by entering its number and pressing Enter.

## Configuration Menu

When you select option 8 from the main menu, you’ll access these configuration options:

1. **View Current Configuration** - Shows your current settings
2. **Edit Configuration File** - Opens your configuration in a text editor
3. **Configure Discord Webhook** - Sets up Discord notifications
4. **Configure Monitoring Thresholds** - Adjusts alert thresholds
5. **Configure Containers to Monitor** - Selects which containers to watch
6. **Configure Notification Settings** - Controls notification behavior
7. **Reset to Default Configuration** - Restores default settings
8. **Toggle Debug Mode** - Enables/disables verbose logging
9. **Back to Main Menu** - Returns to the main menu

## Key Features

### Health Checks

The “Run Health Check” option provides a quick overview of:

- Container status (running/stopped)
- System resource usage
- Security status
- Discord integration status

Health checks will display color-coded warnings when thresholds are exceeded.

### Continuous Monitoring

The “Start Monitoring (Foreground)” option:

- Runs continuous health checks at configured intervals
- Displays status updates in real-time
- Sends alerts to Discord when issues are detected
- Press Ctrl+C to stop monitoring and return to the menu

### Container Monitoring

The script monitors the following for each container:

- Running status
- Health checks (if implemented)
- CPU and memory usage
- Network I/O
- Error logs

By default, it monitors: pangolin, gerbil, traefik, and crowdsec containers.

### System Resource Monitoring

The script checks and alerts on:

- CPU usage
- Memory usage
- Disk space
- System load
- Network traffic

### Security Monitoring

Security features include:

- SSH login attempt tracking
- Attack detection (high network traffic)
- Log analysis for suspicious activity
- Potential security issue notifications

### Discord Notifications

When properly configured with a webhook URL, the script will send:

- Health check reports
- Attack notifications
- SSH login notifications
- System resource alerts
- Regular status reports

## Running as a Service

To install as a systemd service:

1. Select option 3 from the main menu
2. Provide your sudo password when prompted
3. The service will be installed, enabled, and started automatically

You can then manage it with standard systemd commands:

```bash
sudo systemctl status pangolin-monitor
sudo systemctl restart pangolin-monitor
sudo systemctl stop pangolin-monitor

```

## Command Line Options

For advanced users, the script also supports these command line parameters:

- `--service`: Run in service mode (for systemd)
- `--check`: Run a single health check and exit
- `--report`: Generate a security report and exit
- `--install-service`: Install as systemd service
- `--help` or `-h`: Show help information
- `--version` or `-v`: Display version information

## Configuration File

The configuration file is automatically created at `./config/pangolin_monitor.conf` and contains settings for:

- Check intervals (how often checks are performed)
- Alert thresholds (when to trigger warnings)
- Container names to monitor
- Discord webhook URL
- Notification preferences

You can edit this file directly or use the configuration menu to adjust settings.

## Troubleshooting

- If Discord notifications aren’t working, verify your webhook URL in the configuration
- For permission issues, try running with sudo
- Check the log file at `./logs/pangolin-monitor.log` for details about errors
- Enable debug mode through the configuration menu for more verbose logging

## Dependencies

The script requires these programs to be installed:

- Pangolin Stack
- jq (for JSON processing)
- bc (for calculations)
- curl (for network requests)

The script can attempt to install missing dependencies when run with appropriate permissions.

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [March 8, 2025, 2:09pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/4 "2025-03-08T14:09:22Z")

</div>



---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [March 8, 2025, 3:26pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/5 "2025-03-08T15:26:31Z")

</div>

Hi @hhf.technoloy thank for this. Really useful.  
I just tired it. Option 3 for running as service gives me this message instead of asking sudo password…

Enter your choice [0-9]: 3  
=== Install as Systemd Service ===  
This operation requires root privileges.  
Please run with sudo: sudo ./main.sh --install-service

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [March 8, 2025, 3:32pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/6 "2025-03-08T15:32:59Z")

</div>

i has to run with privilege

---

<div class="post-metadata">

**Author:** ![player684](https://forum.hhf.technology/user_avatar/forum.hhf.technology/player684/32/677_2.png) [@player684](https://forum.hhf.technology/u/player684)\
**Post date:** [March 8, 2025, 3:36pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/7 "2025-03-08T15:36:41Z")

</div>

OK I will try the script with sudo thank bro. This is really helpful.

---

<div class="post-metadata">

**Author:** ![demonblade84](https://forum.hhf.technology/user_avatar/forum.hhf.technology/demonblade84/32/763_2.png) [@demonblade84](https://forum.hhf.technology/u/demonblade84)\
**Post date:** [March 13, 2025, 6:34pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/8 "2025-03-13T18:34:01Z")

</div>

In the default config is this intended to send a Health report every minute?

---

<div class="post-metadata">

**Author:** ![hhf.technoloy](https://forum.hhf.technology/user_avatar/forum.hhf.technology/hhf.technoloy/32/68_2.png) [@hhf.technoloy](https://forum.hhf.technology/u/hhf.technoloy)\
**Post date:** [March 14, 2025, 4:26am UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/9 "2025-03-14T04:26:04Z")

</div>

yes 60 sec. but you can change it.

---

<div class="post-metadata">

**Author:** ![lukasjanra30](https://forum.hhf.technology/user_avatar/forum.hhf.technology/lukasjanra30/32/1134_2.png) [@lukasjanra30](https://forum.hhf.technology/u/lukasjanra30)\
**Post date:** [March 25, 2025, 5:30pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/10 "2025-03-25T17:30:08Z")

</div>

Is there way how to set that if whole health check is okay it wont send notification?

---

<div class="post-metadata">

**Author:** ![noffe64](https://forum.hhf.technology/letter_avatar_proxy/v4/letter/n/898d66/32.png) [@noffe64](https://forum.hhf.technology/u/noffe64)\
**Post date:** [April 27, 2025, 2:16pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/11 "2025-04-27T14:16:19Z")

</div>

That would be sweet!

---

<div class="post-metadata">

**Author:** ![marlinw](https://forum.hhf.technology/user_avatar/forum.hhf.technology/marlinw/32/4769_2.png) [@marlinw](https://forum.hhf.technology/u/marlinw)\
**Post date:** [May 27, 2025, 3:21am UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/12 "2025-05-27T03:21:41Z")

</div>

Hi @hhf.technoloy

In what format should the webhook be?  
I copied the webhook URL from Discord, pasted it and receive an error:  
[ERROR] Invalid Discord webhook URL format: [https://discordapp.com/api/webhooks/xxxxxxxxxxxxxx/xxxxxxxxxxxx](https://discordapp.com/api/webhooks/xxxxxxxxxxxxxx/xxxxxxxxxxxx)  
Invalid webhook URL format.

Thanks

---

<div class="post-metadata">

**Author:** ![FlyFox-FR](https://forum.hhf.technology/user_avatar/forum.hhf.technology/flyfox-fr/32/4337_2.png) [@FlyFox-FR](https://forum.hhf.technology/u/FlyFox-FR)\
**Post date:** [February 8, 2026, 6:56pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/13 "2026-02-08T18:56:08Z")

</div>

Hi @hhf.technoloy ,

I have the same issue here, the same discord url format and the same “Error –\> Invalid Discord webhook URL format”.

Can you help? 🙂

---

<div class="post-metadata">

**Author:** ![FlyFox-FR](https://forum.hhf.technology/user_avatar/forum.hhf.technology/flyfox-fr/32/4337_2.png) [@FlyFox-FR](https://forum.hhf.technology/u/FlyFox-FR)\
**Post date:** [February 8, 2026, 7:04pm UTC](https://forum.hhf.technology/t/pangolin-monitor-and-notification-discord-user-guide/703/14 "2026-02-08T19:04:44Z")

</div>

Nevermind, i used option 2 —\> “2. Edit Configuration File”. And pasted in at DISCORD\_WEBHOOK=”[https://discordapp.com/api/….”](https://discordapp.com/api/%E2%80%A6.%E2%80%9D). It still gives the same error “invalid discord url, couldnt send message” –\> But it does send the message, i recieve it in discord and works 😃
