実現したいこと
Webhookで受け取ったメッセージを正規表現で名前付きキャプチャしたいです。
「orgName」の後にある「Test-Demo01」を「source_host」=「Test-Demo01」としたいです。
うまく動作しません。「log」は「stdout」のログです。
ご教示お願いいたします。
log
1#/var/log/td-agent/td-agent.log 2 32021-11-15 15:33:44.421660325 +0900 : {"message":"{\"orgName\":\"Test-Demo01\",\"event\":\"alert\",\"alert\":{\"id\":\"4ozF9WwdnsG\",\"url\":\"https://mackerel.io/orgs/Test-Demo01/alerts/4ozF9WwdnsG\",\"openedAt\":1636957963,\"closedAt\":1636958023,\"createdAt\":1636957963926,\"status\":\"ok\",\"isOpen\":false,\"trigger\":\"monitor\",\"monitorName\":\"Agent_ERROR\"},\"memo\":\"\",\"user\":null,\"host\":{\"name\":\"test-nnn-01\",\"memo\":\"\",\"isRetired\":false,\"id\":\"4o3oSzVaB6s\",\"url\":\"https://mackerel.io/orgs/Test-Demo01/hosts/gegrfrzVaB6s\",\"status\":\"working\",\"roles\":[]},\"imageUrl\":null}"}
conf
1#/etc/td-agent/conf.d/webhook.conf 2<source> 3 @type http 4 bind 10.1.1.10 5 port 8888 6 body_size_limit 32m 7 keepalive_timeout 10s 8 <parse> 9 @type none 10 message_key message 11 </parse> 12 @label @Test 13</source> 14 15<label @Test> 16 <filter *.**> 17 @type parser 18 key_name message 19 reserve_data true 20 <parse> 21 @type multi_format 22 <pattern> 23 format regexp 24 expression /^.*{\"orgName\":\"(?<source_host>[^ ]*)\",\".*$/ 25 </pattern> 26 </parse> 27 </filter> 28 <match *.**> 29 @type copy 30 <store> 31 @type zabbix 32 zabbix_server zabbix_server-01 33 port 10051 34 host_key source_host 35 name_keys message 36 </store> 37 <store> 38 @type stdout 39 </store> 40 </match> 41</label>
あなたの回答
tips
プレビュー