¿Cómo puedo extraer los datos json en influx siguiendo un archivo que tiene los datos JSON?
P.EJ:
Mis registros son así:
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"}
¿Hay alguna manera de extraer la parte JSON y enviarla a Influx?
Sé que el patrón grok (\{.*\})$
extraerá la parte JSON.
Mi configuración se ve así:
[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
Respuesta1
Dado que mi salida JSON contiene un campo de marca de tiempo.
Modifiqué mi configuración de rsyslog para guardar el syslog rawmsg
y guardarlo a partir de la primera partida inicial de{
$Template tpl,"%rawmsg:R,ERE,0,DFLT:(\{.*)--end%\n"