# Alert Message Api

## Discord and Slack custom messages with Message API

Software install

### 1 - Clone repository

```
git clone git@github.com:Michel-Leidson/alert-message-api.git
```

### 2 - Enter the project directory

```
cd alert-message-api
```

### 3 - Install dependencies

```
npm install
```

### 4 - Create and configure config.json file in root directory of aplication

```
nano config.json

{
    "slack": {
        "url":"<YOUR SLACK URL WEBHOOK HERE>"
    },
    "discord":{
        "url":"<YOUR DISCORD URL WEBHOOK HERE>"
    },
    "grafana":{
        "url":"YOUR GRAFANA URL HERE"
    },
    "alertmanager": {
        "url":"YOUR ALERTMANAGER URL HERE"
    }
}
```

### 5 - Running the server.js file with PM2

```
pm2 start server.js
```

Configuring external Alertmanager in Grafana

#### 1 - Select Alert Admin menu in Grafana

<figure><img src="https://577206089-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FilWUahKUPyBVUGJl2b1M%2Fuploads%2Fgit-blob-2ddc8e539dc266b65b4ad776fc2a39499672ef75%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

#### 2 - Click in "Add Alertmanager"

<figure><img src="https://577206089-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FilWUahKUPyBVUGJl2b1M%2Fuploads%2Fgit-blob-0b6f7bde915363e6d2e150ae2c15fe0ad3b9e7d3%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

#### 3 - Type URL alermanager and click in "Add Alertmanagers" button

<figure><img src="https://577206089-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FilWUahKUPyBVUGJl2b1M%2Fuploads%2Fgit-blob-ee87fb11b92be858c219cf8c00d0e21769524834%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Configuring webhook routes in alertmanager config file

#### 1 - Configuring alertmanager config file

```
sudo nano /usr/local/alertmanager/alertmanager.yml

route:
    
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 1m
  repeat_interval: 12h
  receiver: "apialert"

  routes:

    - receiver: "apialert"
      group_wait: 30s
      group_interval: 1m
      repeat_interval: 12h
      continue: true

    - receiver: "apialertslack"
      group_wait: 30s
      group_interval: 1m
      repeat_interval: 12h
      continue: true


receivers:

  - name: "apialert"
    webhook_configs:
    - url: "http://127.0.0.1:5002/discord"

  - name: "apialertslack"
    webhook_configs:
    - url: "http://127.0.0.1:5002/slack"
```

### 2 - Restart alertmanager

```
sudo systemctl restart alertmanager
```
