Ошибка синтаксического анализа XML Logstash

Если вы хотите использовать факты некоторого хоста, вы должны сначала их собрать. Запустите задачу setup на хостах [etcd] , чтобы заполнить hostvars.

---
- name: Gather etcd facts
  hosts: etcd
  tasks:
    - setup:

- name: Configure common
  hosts: nodes
  sudo: True
  tasks:
    - name: etcd endpoints
      file: dest=/etc/kubernetes state=directory

    - name: etcd endpoints
      template: src=files/k.j2 dest=/etc/kubernetes/apiserver
0
задан wizard 27 March 2019 в 20:53
поделиться

2 ответа

Пожалуйста, используйте gsub mutate filter для удаления специального символа из сообщения.

mutate { 
        gsub => [ "message", "[\r\n]", "" ] 
    }

Добавить настройку цели в фильтр XML для размещения данных.

filter {

    xml{
        source => "message"
        store_xml => false
        target => "root"

    }

}

Вот полный рабочий файл конфигурации logstash.

input
{
    file
        {
            path => "C:\Users\KZAPAGOL\Desktop\CSV\XMLFile.xml"
            start_position => "beginning"
            sincedb_path => "/dev/null"
            exclude => "*.gz"
            type => "xml"
            codec => multiline {
                    pattern => "<?xml " 
                    negate => "true"
                    what => "previous"
                }
        }
}

filter {

    xml{
        source => "message"
        store_xml => false
        target => "root"
        xpath => [
            "/root/ChainId/text()", "ChainId",
            "/root/SubChainId/text()", "SubChainId",
            "/root/StoreId/text()", "StoreId",
            "/root/BikoretNo/text()", "BikoretNo",
            "/root/DllVerNo/text()", "DllVerNo"
        ]
    }

    mutate { 
        gsub => [ "message", "[\r\n]", "" ] 
    }
}

output{

elasticsearch{
        hosts => ["http://localhost:9200/"]
        index => "parse_xml"
    }

    stdout
    {
        codec => rubydebug
    }
}

Выход

{
  "_index": "parse_xml",
  "_type": "doc",
  "_id": "vNj4v2kBZ2Q_C9FO94eF",
  "_version": 1,
  "_score": null,
  "_source": {
    "@timestamp": "2019-03-27T16:25:58.379Z",
    "path": "filePath",
    "tags": [
      "multiline"
    ],
    "ChainId": [
      "7290027600007"
    ],
    "BikoretNo": [
      "9"
    ],
    "DllVerNo": [
      "8.0.1.3"
    ],
    "host": "xxxx",
    "@version": "1",
    "SubChainId": [
      "001"
    ],
    "message": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root>    <ChainId>7290027600007</ChainId>    <SubChainId>001</SubChainId>    <StoreId>001</StoreId>    <BikoretNo>9</BikoretNo>    <DllVerNo>8.0.1.3</DllVerNo></root>",
    "type": "xml",
    "StoreId": [
      "001"
    ]
  },
  "fields": {
    "@timestamp": [
      "2019-03-27T16:25:58.379Z"
    ]
  },
  "sort": [
    1553703958379
  ]
}

enter image description here

0
ответ дан KZapagol 27 March 2019 в 20:53
поделиться

Я попробовал вашу конфигурацию, и она работает в среде Windows. Это случилось со мной один раз, и я изменил выражение xpath. ] ИЛИ

xpath => [ "//ChainId/text()", "ChainId" ]
0
ответ дан ElasticCode 27 March 2019 в 20:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: