Настройка Alertmanager в Microsft Azure (WebApp) с помощью Azure CLI

Цель

  • Создать Alertmanager WebApp в Microsoft Azure с помощью Azure CLI

Предварительное требование :

  • Развертывание образа Alertmanager в Azure Container Registry с помощью Azure CLI

Ресурс будет создан :

  • План службы приложений
  • Учетная запись хранилища
  • Служба приложений

Скрипт

$ResourceGroupName      = "suryarg"
$LocationName           = "eastus2"
$ACRName                = "suryacr"
$ACRUrl                 = "$ACRName.azurecr.io"

$AppServicePlan         = "suryaasp"
$AppServicePlanSku      = "S1"
$StorageAccountName     = "suryastorageaccountsa"
$StorageAccountSku      = "Standard_ZRS"
$StorageAccountShare    = "suryasalertmanager"
$WebAppName             = "suryawaalertmanager"
Вход в полноэкранный режим Выход из полноэкранного режима
#Create App Service Plan
az appservice plan create --resource-group $ResourceGroupName --name $AppServicePlan --is-linux --sku $AppServicePlanSku    

#Create a Storage Account
az storage account create --resource-group $ResourceGroupName --name $StorageAccountName --kind StorageV2 --sku $StorageAccountSku

#Create an Storage Account File Share
az storage share-rm create --resource-group $ResourceGroupName --storage-account $StorageAccountName --name $StorageAccountShare --access-tier "TransactionOptimized" --quota 64

#Create an Webapp for alertmanager
az webapp create --resource-group $ResourceGroupName --name $WebAppName --plan $AppServicePlan -i "$ACRUrl/alertmanager:SuryaLatest"
Войти в полноэкранный режим Выход из полноэкранного режима
#Create Storage Mount for alertmanager WebApp
$storageaccountkey  =   $(az storage account keys list --resource-group $ResourceGroupName --account-name $StorageAccountName --query [0].value -o tsv)

az webapp config storage-account add --resource-group $ResourceGroupName --name $WebAppName --custom-id "config" --storage-type "AzureFiles" --share-name $StorageAccountShare --account-name $StorageAccountName --access-key $storageaccountkey  --mount-path "/etc/alertmanager/"
az webapp config storage-account add --resource-group $ResourceGroupName --name $WebAppName --custom-id "data" --storage-type "AzureFiles" --share-name $StorageAccountShare --account-name $StorageAccountName --access-key $storageaccountkey  --mount-path "/data"
az webapp config storage-account add --resource-group $ResourceGroupName --name $WebAppName --custom-id "alertmanager" --storage-type "AzureFiles" --share-name $StorageAccountShare --account-name $StorageAccountName --access-key $storageaccountkey  --mount-path "/config"

Войти в полноэкранный режим Выйти из полноэкранного режима
#Set an Environment Variable for alertmanager WebApp
az webapp config appsettings set --resource-group $ResourceGroupName --name $WebAppName --settings WEBSITES_PORT=9093

#Set an Startup Commmand for alertmanager WebApp
az webapp config set --name $WebAppName --resource-group $ResourceGroupName --startup-file `
"--config.file=/etc/alertmanager/config.yml --storage.path=/alertmanager --cluster.advertise-address=0.0.0.0:9093"
Войти в полноэкранный режим Выход из полноэкранного режима
  • config.yml (Загрузите этот файл в общий ресурс учетной записи хранилища suryasalertmanager)
global:
  # The smarthost and SMTP sender used for mail notifications.
  resolve_timeout: 5m
  smtp_smarthost: 'localhost:25'
  smtp_from: 'alertmanager@example.org'
  smtp_auth_username: 'alertmanager'
  smtp_auth_password: 'password'
  smtp_require_tls: true


route:
  receiver: default
  group_by:
  - DiskUsage
  - WindowsMemoryUsage
  routes:
  - receiver: email-high
    match_re:
      alertname: '(DiskSpaceUsageAbove90%|critical_node_cpu_usage)'
      severity: '(critical)'
    continue: true

  - receiver: email-low
    match_re:
      alertname: '(DiskSpaceUsageAbove60%)'
      severity: '(warning)'
    continue: true
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h


inhibit_rules:
- source_match:
    severity: critical
  target_match:
    severity: warning
  equal:
  - DiskUsage
  - WindowsMemoryUsage

receivers:
- name: email-high
  email_configs:
  - send_resolved: true
    to: 'suryaalertmanager@high.com'


- name: email-low
  email_configs:
  - send_resolved: true
    to: 'suryaalertmanager@low.com'
Войти в полноэкранный режим Выйти из полноэкранного режима


  • Пример файла config.yml (Документация)

Выход




Оцените статью
devanswers.ru
Добавить комментарий