Fluentd Elasticsearch Kibana logs динамический индекс отображения GEOPOINT - PullRequest
0 голосов
/ 11 февраля 2019

Я использую стек журналов EFK, и мне удалось настроить фильтр fluentd и сопоставить конфигурации так, чтобы журналы доступа tomcat, собранные в Kibana, содержали все необходимые поля: IP, широта, долгота, город, код страны и т. Д.

У меня есть curl -XPUT -H "Content-Type: application/json" --data @fluentd_mapping.json http://$host/fluentd/fluentd/_mapping, но это влияет только на индекс fluentd.Не динамически создаваемый индекс ежедневного журнала <foo>.access.logs.*

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

Я перезапустил контейнер ES, curl -XPUT следующий файл mapping.json, который берется по индексу fluentd, но не по индексу ежедневного журнала:

{
    "fluentd": {
        "location_array": {
          "type": "geo_point"
        },
        "location_properties": {
          "type": "geo_point"
        },
        "location_string": {
          "type": "geo_point"
        },
    }
}

Существующие шаблоны:

                "dynamic_templates": [{
    "kibana_index_template:.kibana": {
                "dynamic_templates": [{
    "security-index-template": {
                "dynamic_templates": [{
                        "path_match": "result\\.(input(\\..+)*|(transform(\\..+)*)|(actions\\.transform(\\..+)*))\\.search\\.request\\.(body|template)",
    "logstash-index-template": {

Существующие шаблоны индексов:

        "index_patterns": [".monitoring-logstash-6-*"],
        "index_patterns": [".monitoring-kibana-6-*"],
        "index_patterns": [".ml-anomalies-*"],
        "index_patterns": [".kibana"],
        "index_patterns": [".ml-state"],
        "index_patterns": [".watches*"],
        "index_patterns": [".monitoring-beats-6-*"],
        "index_patterns": [".monitoring-es-6-*"],
        "index_patterns": [".security_audit_log*"],
        "index_patterns": [".ml-meta"],
        "index_patterns": [".security-*"],
        "index_patterns": [".triggered_watches*"],
        "index_patterns": [".watcher-history-9*"],
        "index_patterns": [".monitoring-alerts-6"],
        "index_patterns": [".ml-notifications"],
        "index_patterns": [".logstash"],

Я добавил следующий шаблон, но безрезультатно:

        "fluentd": {
                "order": 0,
                "index_patterns": ["myapp.access.logs*"],
                "settings": {},
                "mappings": {
                        "fluentd": {
                                "properties": {
                                        "location_array": {
                                                "type": "geo_point"
                                        },
                                        "location_properties": {
                                                "type": "geo_point"
                                        },
                                        "location_string": {
                                                "type": "geo_point"
                                        }
                                }
                        }
                },
                "aliases": {}
        },

Он не обнаружен myapp.access.logs-

1 Ответ

0 голосов
/ 11 февраля 2019

Пожалуйста, для ясности укажите содержимое файла fluentd_mapping.json, но похоже, что индексы имеют различный шаблон имен, и поэтому отображение не применяется ко всем индексам.

, вам следует использовать шаблонasticsearchдля того, чтобы настроить отображение geoip.в шаблоне взгляните на «index_patterns», которые описывают условие соответствия индексов.https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html

как только регулярное выражение index_patterns совпадет со всеми нужными вам индексами (включая индекс журналов доступа), тогда отображение GEOIP и все остальные будут применены, как и ожидалось.

...