JSON parsing error in fluentd, throws pattern not matched always

Viewed 868

I am trying to add a new source to my fluentd to parse a JSON file. The JSON file looks like this

    {
        "local": {
            "cmd_|-start_cmd_2_|-echo 'Starting to run second time'_|-run": {
                "comment": "Command \"echo 'Starting to run second time'\" run",
                "name": "echo 'Starting to run second time'",
                "result": true,
                "duration": 11.144,
                "__sls__": "test",
                "changes": {
                    "pid": 26010,
                    "retcode": 0,
                    "stderr": "",
                    "stdout": "Starting to run second time"
                },
                "__id__": "start_cmd_2"
            },
        }
    }

This is the JSON output from salt stack execution. I have added this source

    <source>
      @type tail
      tag salt-new
      path /var/log/salt_new.json
      pos_file /tmp/fluentd/new.pos
      <parse>
        @type json
      </parse>
      refresh_interval 10s
    </source>

I tried few variations such as using 'format json' and it does not work. It always throws

    2020-03-19 18:05:13 +0000 [info]: #0 following tail of /var/log/salt_new.json
    2020-03-19 18:05:13 +0000 [warn]: #0 pattern not matched: "{"
    2020-03-19 18:05:13 +0000 [warn]: #0 pattern not matched: "    \"local\": {"
    2020-03-19 18:05:13 +0000 [warn]: #0 pattern not matched: "        \"cmd_|-start_cmd_2_|-echo 'Starting to run second time'_|-run\": {"
    .
    .

I do not want to use regex parsing, I am trying to get JSON parser plugin work.

Any suggestions will be super helpful. Thanks

0 Answers
Related