Influx에 대한 json 데이터가 포함된 Telegraf Tail 파일

Influx에 대한 json 데이터가 포함된 Telegraf Tail 파일

JSON 데이터가 있는 파일을 테일링하여 json 데이터를 influx로 추출하려면 어떻게 해야 합니까?

예:

내 로그는 다음과 같습니다.

2020-12-01T18:34:06+02:00 10.132.90.194 {"wfd_successful_hits_sec": "0", "sql_hits_sec_max": "0", "timestamp": "2020/12/01 18:34:01", "connection_sec_max": "1922", "http_hits_sec_max": "1106", "http_hits_sec": "106", "wfd_successful_hits_sec_max": "0", "sql_hits_sec": "0", "sql_audit_phase2_events_sec_max": "0", "hdfs_hits_sec": "0", "connection_sec": "26"}

JSON 부분을 추출하여 Influx로 보내는 방법이 있나요?

grok 패턴이 (\{.*\})$JSON 부분을 추출한다는 것을 알고 있습니다.

내 구성은 다음과 같습니다.

[global_tags]
[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "10s"
  flush_jitter = "0s"
  precision = ""
  hostname = ""
  omit_hostname = false
[[inputs.tail]]
  files = ["/opt/share/host*log"]
  data_format = "json"
[[outputs.influxdb_v2]]
  urls = ["http://localhost:8086"]
  token = "TOKEN"
  organization = "ORG"
  bucket = "performance_stats

답변1

내 JSON 출력에 타임스탬프 필드가 포함되어 있기 때문입니다.

syslog를 저장하고 rawmsg첫 번째 경기 시작부터 저장하기 위해 rsyslog 구성을 수정했습니다.{

$Template tpl,"%rawmsg:R,ERE,0,DFLT:(\{.*)--end%\n"

관련 정보