Анализ логов доступа Apache с помощью Elassearch Watcher

Я использую ELK Stack для анализа журналов, и мне нужно анализировать и обнаруживать аномалии журналов доступа Apache. Что можно проанализировать с помощью журналов доступа Apache и как передать условия с помощью curl -XPUT для Watcher?

1 ответ

Если вы еще не нашли его, на https://www.elastic.co/guide/en/watcher/watcher-1.0/watch-log-data.html есть достойное руководство. Это базовый пример создания журнала.

Вы можете анализировать / смотреть все, что вы можете запросить в Elasticsearch. Это просто вопрос форматирования запроса с правильным синтаксисом JSON. Руководство по созданию условий находится по адресу https://www.elastic.co/guide/en/watcher/watcher-1.0/condition.html.

Вы также можете обратиться к https://www.elastic.co/guide/en/watcher/watcher-1.0/actions.html чтобы получить представление о возможных действиях, которые может выполнять Watcher, когда запрос удовлетворяет условию.

Что касается публикации в Watcher, то все часы - это, по сути, объект JSON. Поскольку они могут быть довольно сложными, я обнаружил, что лучше создать файл для каждого часов, который вы хотите создать, и опубликовать их следующим образом:

curl -XPUT http://my_elasticsearch:9200/_watcher/watch/my_watch_name -d @/path/to/my_watch_name.json

my_watch_name.json должен иметь следующие основные элементы (как описано в первой ссылке выше):

{
  "trigger" : { ... },
  "input" : { ... },
  "condition" : { ... },
  "actions" : { ... }
}

Раздел действий будет зависеть от вашего варианта использования, но вот базовый пример других разделов, которые я успешно использую:

{
  "trigger" : {
      "schedule" : { "interval" : "5m" }
  },
  "input" : {
    "search" : {
      "request" : {
        "indices" : [ "logstash" ],
        "body" : {
          "query" : {
            "filtered" : {
              "query" : {
                "match" : { "message" : "error" }
              },
              "filter" : {
                "range" : { "@timestamp" : { "gte" : "now-5m" } }
              }
            }
          }
        }
      }
    }
  },
  "condition" : {
    "compare" : { "ctx.payload.hits.total" : { "gt" : 0 } }
  },
  "actions" : {
    ...
  }
}
Другие вопросы по тегам