Нужна помощь с http body в heartbeat/metricbeat


#1

У меня есть несколько сайтов, которые я хочу мониторить. Просто код 200 мне не подходит. Я бы хотел получить слово/линию из сайта.
Извиняюсь за наивность вопроса и спасибо за помощь!


#2

Для примера. сайт https://www.elastic.co если я использую heartbeat http или metricbeat http module, то я хочу вместо код 200 получит, например, вот этот линию из body (подразумевая эта линия никогда не меняется) <h1 class="banner-title">Get Started with Elasticsearch</h1>
Либо любая другая часть html body


(Igor Motov) #3

Посмотрите последний пример секции http check в документации. Такое решение Вам подойдет?


#4

Спасибо за ответ. Я видел тот пример перед тем, как написать здесь.

- type: http
  schedule: '@every 5s'
  urls: ["https://myhost:80"]
  check.request:
    method: GET
    headers:
      'X-API-Key': '12345-mykey-67890'
  check.response:
    status: 200
    body: '(?s)first.*second.*third'

Могли бы вы объяснить мне использовать данный пример с моим примером выше (https://elastic.co)?


(Igor Motov) #5

Нет, не могу. Из-за вот этого бага с elastic.co работать данный пример не будет до следующей версии. Могу показать с elasticsearch:

- type: http

  # List or urls to query
  urls: ["http://localhost:9200"]

  # Configure task schedule
  schedule: '@every 10s'
  check.response:
    status: 200
    body: 'You Know, for Search'

#6

Спасибо!
Тогда это скорее всего не будет работать и на моём сайте так как он тоже довольно большой.
Из вашего примера, вы взяли часть body. Значит ли это, что я взять любую часть из моего сайта и использовать в heartbeat body для поиска.
Просто я где-то читал на английском форуме, что на данный момент эта функция довольно ограничена и только работает если "body matches byte to byte". Так ли это? Просто пытаюсь разобраться, что именно добавлять в body section of heartbeat.


(Igor Motov) #7

В данном случае под body подразумевается HTTP Message Body и не элемент HTML body, то есть, другими словами это вся страница , а не только та часть, которая находиться между <body> и </body>.

То есть, вы можете выбрать:

status - The expected status code. If this setting is not configured or it’s set to 0, any status code other than 404 is accepted.

headers - The required response headers.

body - A list of regular expressions to match the the body output. Only a single expression needs to match.


(system) #8

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.