#elasticsearch #serilog #fluentd
Вопрос:
У меня на компьютере установлена Windows 10, а Elasticsearch/Kibana работает в контейнере docker.
Я пытаюсь перенаправить журналы, созданные моим приложением, в Elasticsearch с помощью Fluentd. Вот файл td-agent.conf:
lt;sourcegt; @type tail path C:/Projects/log.json pos_file C:/Projects/log.json.pos tag * format json time_key @timestamp lt;/sourcegt; lt;match **gt; @type elasticsearch logstash_format false host localhost port 9200 index_name appname-api-* type_name fluentd flush_interval 1s lt;/matchgt;
Вот часть из appsettings, где я указал, что мне нужен json-файл в формате elasticsearch:
{ "Name": "File", "Args": { "path": "c:/Projects/log.json", "formatter": "Serilog.Formatting.Elasticsearch.ElasticsearchJsonFormatter, Serilog.Formatting.Elasticsearch" } }
Вот строка из файла журнала:
{"@timestamp":"2021-10-22T11:13:39.4325643 03:00","level":"Information","messageTemplate":"Now listening on: {address}","message":"Now listening on: "http://localhost:5001"","fields":{"address":"http://localhost:5001","SourceContext":"Microsoft.Hosting.Lifetime","MachineName":"MACHINENAME"}}
Но это не работает. Я подозреваю, что мой td-агент.conf. Не могли бы вы привести мне, пожалуйста, какой-нибудь пример?
Или, может быть, проще переключиться на Filebeat или что-то другое?
Ответ №1:
Понял! Вот правильный td-agent.conf
lt;systemgt; log_level debug lt;/systemgt; lt;sourcegt; @type tail path C:/Projects/log.json pos_file C:/Projects/log.json.pos tag log_test emit_unmatched_lines true lt;parsegt; @type json lt;/parsegt; lt;/sourcegt; lt;match log_testgt; @type elasticsearch host localhost port 9200 index_name appname-api-2021-10 type_name _doc flush_interval 1s lt;/matchgt;