Как получить значения из журналов в текстовом сообщении предупреждений в Elasticsearch Kiban

#elasticsearch #kibana #alert

Вопрос:

Я постоянно отправляю данные о состоянии моей машины Ubuntu в elasticsearch с помощью td-агента. Эти данные о работоспособности содержат температуру процессора, которую я должен контролировать. Поэтому я создал оповещения, в которых значение температуры увеличивается до более чем 60*F, оно выдает оповещения на моем канале Microsoft Teams. Вся эта настройка работает нормально.

Ниже приведены данные журналов:

 {
  "_index": "health_skl_gateway",
  "_type": "_doc",
  "_id": "DwxjinkBwxSy0OQ_4rhS",
  "_version": 1,
  "_score": null,
  "_source": {
    "Data": {
      "WiFiIP": "N/A",
      "signal_strength": "N/A",
      "signal_percent": 0,
      "signal_level": "N/A",
      "EthIP": "192.168.100.30 ",
      "TotalDisk": "916G",
      "UsedDisk": "40G",
      "FreeDisk": "830G",
      "DiskPercent": "5%",
      "TotalRAM": "16312468",
      "UsedRAM": "3735596",
      "FreeRAM": "5866548",
      "CPU": 27,
      "cpu_temp": 57,
      "Internet": true,
      "Publish msg count": 442,
      "Created": "2021-05-20T15:26:51.557564",
      "DeviceId": "TX-G1-318",
      "UpTime": "2021-05-19T07:13:05"
    },
    "hostname": "TX-G1-318",
    "Version": "V2"
  },
  "fields": {
    "Data.UpTime": [
      "2021-05-19T07:13:05.000Z"
    ],
    "Data.Created": [
      "2021-05-20T15:26:51.557Z"
    ]
  },
  "sort": [
    1621524411557
  ]
}
 

В предупреждении Кибаны я установил оповещения, в которых, если значение count равно 3 из всех документов индекса health_skl_gateway , для последнего 10 minutes , где Data.cpu_temp больше 60 , оно генерирует оповещения для канала Microsoft Teams. Теперь ниже показано, как я настроил сообщение, которое отправляется командам Microsoft

введите описание изображения здесь

Поэтому в сообщении я просто отправляю статическое текстовое сообщение. Но я хочу отправить фактическое Data.cpu_temp значение в сообщении.

Возможно ли это? Как мы можем это сделать? Спасибо

Ответ №1:

Вы пробовали использовать двойные скобки? Подобный этому. Я предполагаю, что сопоставление выполняется одинаково для всех типов предупреждений.

В примере мониторинга сервера используется тип действия электронной почты, и сервер сопоставляется с телом электронной почты, используя строку шаблона, ЦП на {{сервере}} является высоким.

Комментарии:

1. Я тебя не понял. Как использовать значение Data.cpu_temp в формате сообщения.?

2. Моя идея была чем-то вроде {{data.cpu_temp}} или около того. Сообщения Kibana используют синтаксис шаблона усов . Также кажется, что поля, которые вы можете использовать в сообщении, ограничены, но вы должны проверить, что доступно для вашего случая, это описано https://mustache.github.io .

3. Я действительно пытался использовать `{{Data.cpu_temp}}, но это не сработало.