> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashduty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Nightingale/Flashcat Integration

> Push alert events from Nightingale (n9e) or Flashcat to Flashduty via webhook. When an alert is triggered, send a trigger event to Flashduty; when an alert recovers, send a recovery event to Flashduty

Push alert events from Nightingale (n9e) or Flashcat to Flashduty via webhook. When an alert is triggered, send a trigger event to Flashduty; when an alert recovers, send a recovery event to Flashduty.

In the Nightingale/Flashcat v8.0.0-beta.7+ version, you can configure the collaboration space in the alert notification rules, no longer need to use routing rules.

* [v8.0.0-beta.7 +](#v8)
* [v5\~v8.0.0-beta.6](#v7)

<div class="hide">
  ## Prerequisites

  ***

  ### In Nightingale

  * You must have permission to modify **System Settings=>Global Notifications** or **Alert Management=>Alert Rules**.
  * Your Nightingale server must be able to access the domain api.flashcat.cloud to push alerts to the external network.

  ## Supported Versions

  ***

  This guide is compatible with **Nightingale V5 and V6** versions.

  ## Setup Steps

  ***

  ### In Flashduty

  You can obtain an integration push URL through either of these two methods:

  #### Using Private Integration

  Choose this method when you don't need to route alert events to different channels - it's simpler.

  <details>
    <summary>Expand</summary>

    1. Enter the Flashduty console, select **Channels**, and enter a channel's details page
    2. Select the **Integrations** tab, click **Add Integration**, and enter the add integration page
    3. Select **Nightingale/Flashcat** integration, click **Save** to generate a card
    4. Click the generated card to view the **push URL**, copy it for later use
    5. (Optional) Click the generated card, click the **Edit** button, select **Console URL**, enter the Nightingale console URL (domain part only), and Flashduty will generate a Nightingale details link for new alerts
  </details>

  #### Using Shared Integration

  Choose this method when you need to route alert events to different channels based on the alert Payload information.

  <details>
    <summary>Expand</summary>

    1. Enter the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
    2. Select **Nightingale/Flashcat** integration:
       * **Integration Name**: Define a name for the current integration
       * **Console URL**: (Optional) Enter the Nightingale console URL (domain part only), and Flashduty will generate a Nightingale details link for new alerts
    3. Configure the default route and select the corresponding channel (after the integration is created, you can go to `Route` to configure more routing rules)
    4. Click **Save** and copy the newly generated **push URL** for later use
    5. Complete
  </details>
</div>

## In Nightingale/Flashcat

### Configure in Nightingale/Flashcat v8.0.0-beta.7 + <span id="v8" />

In the new version, although you can configure the collaboration space directly in the alert notification rules, you still need to create a collaboration space in Flashduty and configure the dispatch strategy.

#### Step 1: Add Notification Media

1. Log in to your n9e console, select Alerting > Media types and click **Add**
2. Fill in the media name and identifier, select **Flashduty** type, and enter the integration push URL in the `URL` section
3. Click **Save** and complete

<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-1.png" />

#### Step 2: Configure Notification Rules

1. Log in to your n9e console, select Alerting > Rules and click **Add** or edit the existing alert rules
2. Configure the basic information as needed
3. Select the `Flashduty` notification media added in the previous step
4. Select the collaboration space (the collaboration space must be created in [Flashduty](https://console.flashcat.cloud/channel) in advance), and select other options as needed
5. Click **Save** and complete

<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-2.png" />

#### Step 3: Select Notification Rules in Alert Rules

1. Log in to your n9e console, select Alerting > Alert Rules and click **Add** or edit the existing alert rules
2. Select the `Flashduty` notification rule added in the previous step, and select other options as needed
3. Click **Save** and complete

<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-3.png" />

### Configure in Nightingale/Flashcat v5\~v8.0.0-beta.6 <span id="v7" />

Choose one of the following two methods:

#### Method 1: Configure by Strategy

<div class="md-block">
  Select multiple alert rules and configure webhook in batch.

  1. Log in to your n9e console, select Alert Management > Alert Rules to enter the alert rules list page
  2. Select the alert rules you want to import in batch, choose batch update alert rules in the upper right corner
  3. In the popup, select the "Callback URL" field and enter the integration push URL in the new input box, as shown below:

  <img src="https://download.flashcat.cloud/flashduty/doc/en/fc/fc-1.png" alt="drawing" width="500" />

  4. Return to the integration list, if the latest event time is displayed, the configuration is successful and events are being received
  5. Complete
</div>

#### Method 2: Global Configuration

<div class="md-block">
  Nightingale supports configuring global webhook URLs in both the interface and configuration file to push all alert events. Choose one of the following two methods.

  ##### V6 and Above

  1. Log in to your n9e console
  2. Go to `System Settings-Notification Settings-Callback URL` page
  3. As shown below, enable a new webhook, fill in the integration push URL in the `URL` section

  <img src="https://download.flashcat.cloud/flashduty/doc/en/fc/fc-2.png" alt="drawing" width="500" />

  4. Complete

  ##### V5.4\~5.15 Versions

  1. Log in to your n9e server instance

  2. Find and open the configuration file, usually etc/server.conf

  3. Modify the Alerting configuration section, add Webhook configuration as follows:

     ```receiver config theme={null}
     [Alerting.Webhook]
     Enable = true
     Url = "{api_host}/event/push/alert/n9e?integration_key=$integration_key"
     BasicAuthUser = ""
     BasicAuthPass = ""
     Timeout = "5s"
     Headers = ["Content-Type", "application/json", "X-From", "N9E"]
     ```

     Replace the Url parameter value with your integration push URL.

  4. Save the configuration file

  5. Restart n9e server to apply the configuration

  6. Return to the integration list, if the latest event time is displayed, the configuration is successful and events are being received

  7. Complete
</div>

## Severity Mapping

***

Nightingale/Flashcat to Flashduty alert severity mapping:

| n9e | Flashduty | Status   |
| --- | --------- | -------- |
| 1   | Critical  | Critical |
| 2   | Warning   | Warning  |
| 3   | Info      | Info     |

## FAQ

***

<details>
  <summary>Why am I not receiving alerts in Flashduty?</summary>

  #### In Flashduty

  1. Check if the integration shows the **Latest Event Time**? If not, Flashduty hasn't received any pushes, prioritize checking the Nightingale side.
  2. If you're using a **Shared Integration**, first confirm if you've configured **Routing Rules**. Without routing rules, the system will reject new pushes as there's no channel to receive your alerts. In this case, simply configure routing rules to your desired channel.

  #### In Nightingale/Flashcat

  1. First confirm if Nightingale has generated new alerts: Go to **Alert Management=>Alert History**, check if new alerts were generated after configuring the webhook, note that new alerts must be in **Triggered** status. If no new alerts were generated, please wait for new alerts to trigger and verify again.
  2. After finding the alert, go to alert details and check the **Callback URL** section. Verify if the actual callback URL exactly matches the integration push URL. If they don't match, modify the **Alert Rules** and verify again.
  3. If they match, you need to log into the Nightingale server and confirm it can access the external domain api.flashcat.cloud. If not, you first need to enable external network access for the server, or specifically enable access for Flashduty's domain.
  4. If the network is fine, you need to continue investigating the server and look for related error logs.

  If you still can't find the root cause after following these steps, please contact us directly.
</details>
