{"id":40732,"date":"2023-10-21T05:28:51","date_gmt":"2024-02-21T20:15:35","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/"},"modified":"2024-05-04T05:15:31","modified_gmt":"2024-05-03T21:15:31","slug":"%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/","title":{"rendered":"\u5c06BIND\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230Elasticsearch\u4e2d"},"content":{"rendered":"<h2>\u603b\u7ed3<\/h2>\n<p>\u5c06DNS\u670d\u52a1\u5668\u7684\u67e5\u8be2\u65e5\u5fd7\u4fdd\u5b58\u5230Elasticsearch\u4e2d<\/p>\n<h2>\u9a8c\u8bc1\u73af\u5883<\/h2>\n<div>\n<div class=\"post-table\">\u7528\u9014ip\u30de\u30b9\u30bf\u30fcDNS\u30b5\u30fc\u30d0\u30fc192.168.24.101\u30b9\u30ec\u30fc\u30d6DNS\u30b5\u30fc\u30d0\u30fc192.168.24.102Elasticsearch\u30b5\u30fc\u30d0\u30fc192.168.24.103<\/div>\n<\/div>\n<h2>\u804c\u4e1a\u7ecf\u5386<\/h2>\n<h3>\u5728bind\u4e2d\u8bbe\u7f6e\u5c06\u67e5\u8be2\u65e5\u5fd7\u8f93\u51fa\u5230syslog\u7684\u914d\u7f6e\u3002<\/h3>\n<pre class=\"post-pre\"><code>\r\n    <span class=\"o\">(<\/span>\u7565<span class=\"o\">)<\/span>\r\n    logging <span class=\"o\">{<\/span>\r\n\r\n            channel <span class=\"s2\">\"syslog_local1\"<\/span> <span class=\"o\">{<\/span>\r\n                syslog   local1<span class=\"p\">;<\/span>\r\n            <span class=\"o\">}<\/span><span class=\"p\">;<\/span>\r\n\r\n            category queries <span class=\"o\">{<\/span>\r\n                <span class=\"s2\">\"syslog_local1\"<\/span><span class=\"p\">;<\/span>\r\n            <span class=\"o\">}<\/span><span class=\"p\">;<\/span>\r\n    <span class=\"o\">}<\/span><span class=\"p\">;<\/span>\r\n    <span class=\"o\">(<\/span>\u7565<span class=\"o\">)<\/span>\r\n\r\n<\/code><\/pre>\n<h3>\u5c06(chroot\u73af\u5883)\u4e2d\u7684\u67e5\u8be2\u65e5\u5fd7\u901a\u8fc7syslog\u4f20\u8f93\u5230Elasticsearch\u670d\u52a1\u5668\u3002<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nb\">cat<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"no\">EOF<\/span><span class=\"sh\"> &gt; \/etc\/rsyslog.d\/bind_chroot.conf\r\n<\/span><span class=\"nv\">$AddUnixListenSocket<\/span><span class=\"sh\"> \/var\/named\/chroot\/dev\/log\r\nlocal1.*    @192.168.24.103:42185\r\n<\/span><span class=\"no\">EOF\r\n<\/span>\/etc\/init.d\/rsyslog restart\r\n<\/code><\/pre>\n<h3>\u5b89\u88c5 Elasticsearch<\/h3>\n<pre class=\"post-pre\"><code>yum <span class=\"nb\">install <\/span>java-1.8.0-openjdk-deve\r\nrpm <span class=\"nt\">-ivh<\/span> https:\/\/download.elasticsearch.org\/elasticsearch\/elasticsearch\/elasticsearch-1.4.2.noarch.rpm\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>iptables <span class=\"nt\">-A<\/span> INPUT <span class=\"nt\">-p<\/span> tcp <span class=\"nt\">-m<\/span> multiport <span class=\"nt\">--dports<\/span> 8080,9200,9300 <span class=\"nt\">-s<\/span> 127.0.0.1 <span class=\"nt\">-j<\/span> ACCEPT\r\niptables <span class=\"nt\">-A<\/span> INPUT <span class=\"nt\">-p<\/span> tcp <span class=\"nt\">-m<\/span> multiport <span class=\"nt\">--dports<\/span> 8080,9200,9300 <span class=\"nt\">-s<\/span> 192.168.24.0\/24 <span class=\"nt\">-j<\/span> ACCEPT\r\niptables <span class=\"nt\">-A<\/span> INPUT <span class=\"nt\">-p<\/span> tcp <span class=\"nt\">-m<\/span> multiport <span class=\"nt\">--dports<\/span> 8080,9200,9300 <span class=\"nt\">-j<\/span> DROP\r\n<\/code><\/pre>\n<h3>\u4fee\u6539Elasticsearch\u914d\u7f6e\u6587\u4ef6<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span>.org <span class=\"se\">\\<\/span>\r\n <span class=\"nt\">-e<\/span> <span class=\"s1\">'s\/#cluster\\.name.*\/cluster.name: named.elasticsearch\/g'<\/span>  <span class=\"se\">\\<\/span>\r\n <span class=\"nt\">-e<\/span> <span class=\"s1\">'s\/#discovery\\.zen\\.ping\\.multicast\\.enabled.*\/discovery.zen.ping.multicast.enabled: false\/g'<\/span> <span class=\"se\">\\<\/span>\r\n\/etc\/elasticsearch\/elasticsearch.yml\r\n<\/code><\/pre>\n<blockquote><p>\u5dee\u5f02<br \/>\n&#8212; \/etc\/elasticsearch\/elasticsearch.yml.org 2015-02-07 02:19:24.338361576 +0900<br \/>\n+++ \/etc\/elasticsearch\/elasticsearch.yml 2015-02-07 02:29:39.266361349 +0900<br \/>\n@@ -29,7 +29,7 @@<br \/>\n# \u96c6\u7fa4\u540d\u79f0\u7528\u4e8e\u81ea\u52a8\u53d1\u73b0\u3002\u5982\u679c\u5728\u540c\u4e00\u7f51\u7edc\u4e0a\u8fd0\u884c\u591a\u4e2a\u96c6\u7fa4\uff0c\u8bf7\u786e\u4fdd\u4f7f\u7528\u552f\u4e00\u7684\u540d\u79f0\u3002<br \/>\n#<br \/>\n#cluster.name: elasticsearch<br \/>\n+\u96c6\u7fa4\u540d\u79f0: named.elasticsearch<\/p>\n<p>#################################### \u8282\u70b9 #####################################<br \/>\n@@ -319,7 +319,7 @@<br \/>\n#<br \/>\n# 1. \u7981\u7528\u7ec4\u64ad\u53d1\u73b0\uff08\u9ed8\u8ba4\u542f\u7528\uff09\uff1a<br \/>\n#<br \/>\n#discovery.zen.ping.multicast.enabled: false<br \/>\n+\u53d1\u73b0.zen.ping.multicast.enabled: false<br \/>\n#<br \/>\n# 2. \u5728\u96c6\u7fa4\u4e2d\u914d\u7f6e\u521d\u59cb\u7684\u4e3b\u8282\u70b9\u5217\u8868<br \/>\n# \u4ee5\u4fbf\u5728\u542f\u52a8\u65b0\u7684\u8282\u70b9\uff08\u4e3b\u8282\u70b9\u6216\u6570\u636e\u8282\u70b9\uff09\u65f6\u8fdb\u884c\u53d1\u73b0\uff1a<\/p><\/blockquote>\n<h3>\u542f\u52a8\u548c\u786e\u8ba4 Elasticsearch\u3002<\/h3>\n<pre class=\"post-pre\"><code>\/etc\/init.d\/elasticsearch start\r\ncurl <span class=\"nt\">-X<\/span> GET http:\/\/localhost:9200\/\r\n<\/code><\/pre>\n<blockquote><p>\u7ed3\u679c<br \/>\n{<br \/>\n&#8220;\u72b6\u6001&#8221;\uff1a200\uff0c<br \/>\n&#8220;\u540d\u79f0&#8221;\uff1a &#8220;Vashti&#8221;\uff0c<br \/>\n&#8220;\u96c6\u7fa4\u540d\u79f0&#8221;\uff1a &#8220;named.elasticsearch&#8221;\uff0c<br \/>\n&#8220;\u7248\u672c&#8221;\uff1a{<br \/>\n&#8220;\u53f7\u7801&#8221;\uff1a &#8220;1.4.2&#8221;\uff0c<br \/>\n&#8220;\u6784\u5efa\u54c8\u5e0c&#8221;\uff1a &#8220;927caff6f05403e936c20bf4529f144f0c89fd8c&#8221;\uff0c<br \/>\n&#8220;\u6784\u5efa\u65f6\u95f4\u6233&#8221;\uff1a &#8220;2014-12-16T14:11:12Z&#8221;\uff0c<br \/>\n&#8220;\u6784\u5efa\u5feb\u7167&#8221;\uff1a false\uff0c<br \/>\n&#8220;lucene\u7248\u672c&#8221;\uff1a &#8220;4.10.2&#8221;<br \/>\n}\uff0c<br \/>\n&#8220;\u6807\u8bed&#8221;\uff1a &#8220;\u4f60\u61c2\u7684\uff0c\u4e3a\u4e86\u641c\u7d22&#8221;<br \/>\n}<\/p><\/blockquote>\n<h3>\u786e\u8ba4 Elasticsearch \u6620\u5c04<\/h3>\n<pre class=\"post-pre\"><code>curl http:\/\/localhost:9200\/namedlog-<span class=\"k\">*<\/span>\/_mapping?pretty\r\n<\/code><\/pre>\n<h3>\u786e\u8ba4Elasticsearch\u6a21\u677f<\/h3>\n<pre class=\"post-pre\"><code>curl <span class=\"nt\">-XGET<\/span> localhost:9200\/_template\/template_1\r\n<\/code><\/pre>\n<blockquote><p>\u5982\u679c\u8981\u68c0\u67e5\u5168\u90e8\u6a21\u677f\uff0c\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n<p>shell<br \/>\ncurl -XGET localhost:9200\/_template\/template*<\/p>\n<p>\u5982\u679c\u8981\u5220\u9664template_1\u6a21\u677f\uff0c\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n<p>shell<br \/>\ncurl -XDELETE localhost:9200\/_template\/template_1<\/p><\/blockquote>\n<h3>\u5e94\u7528 Elasticsearch \u6a21\u677f<\/h3>\n<pre class=\"post-pre\"><code>curl <span class=\"nt\">-XPUT<\/span> localhost:9200\/_template\/template_1 <span class=\"nt\">-d<\/span> <span class=\"s1\">'\r\n{\r\n  \"template\" : \"namedlog-*\",\r\n    \"mappings\" : {\r\n      \"fluentd\" : {\r\n        \"properties\" : {\r\n          \"@log_name\" : {\r\n            \"type\" : \"string\"\r\n          },\r\n          \"@timestamp\" : {\r\n            \"type\" : \"date\",\r\n            \"format\" : \"dateOptionalTime\"\r\n          },\r\n          \"class_type\" : {\r\n            \"type\" : \"string\",\r\n            \"index\" : \"not_analyzed\"\r\n          },\r\n          \"country\" : {\r\n            \"type\" : \"string\",\r\n            \"index\" : \"not_analyzed\"\r\n          },\r\n          \"dst\" : {\r\n            \"type\" : \"string\",\r\n            \"index\" : \"not_analyzed\"\r\n          },\r\n          \"fqdn\" : {\r\n            \"type\" : \"string\",\r\n            \"index\" : \"not_analyzed\"\r\n          },\r\n          \"log_type\" : {\r\n            \"type\" : \"string\",\r\n            \"index\" : \"not_analyzed\"\r\n          },\r\n          \"src\" : {\r\n            \"type\" : \"string\",\r\n            \"index\" : \"not_analyzed\"\r\n          },\r\n          \"view\" : {\r\n            \"type\" : \"string\",\r\n            \"index\" : \"not_analyzed\"\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n}'<\/span>\r\n<\/code><\/pre>\n<h3>\u5220\u9664Elasticsearch\u4e2d\u7684\u6240\u6709\u6570\u636e\uff08\u7d22\u5f15\uff09\u3002<\/h3>\n<pre class=\"post-pre\"><code>curl <span class=\"nt\">-XDELETE<\/span> <span class=\"s1\">'http:\/\/localhost:9200\/namedlog-*'<\/span>\r\n<\/code><\/pre>\n<h3>\u5b89\u88c5Elasticsearch\u7684WEB\u524d\u7aef\u754c\u9762<\/h3>\n<pre class=\"post-pre\"><code>\/usr\/share\/elasticsearch\/bin\/plugin <span class=\"nt\">-install<\/span> mobz\/elasticsearch-head\r\n<\/code><\/pre>\n<h3>\u81ea\u7136\u6d41\u5229\u7684\u4e2d\u6587\u5b89\u88c5<\/h3>\n<pre class=\"post-pre\"><code>curl <span class=\"nt\">-L<\/span> http:\/\/toolbelt.treasuredata.com\/sh\/install-redhat.sh | sh\r\niptables <span class=\"nt\">-A<\/span> INPUT <span class=\"nt\">-s<\/span> 192.168.24.101 <span class=\"nt\">-p<\/span> udp <span class=\"nt\">--dport<\/span> 42185 <span class=\"nt\">-j<\/span> ACCEPT\r\niptables <span class=\"nt\">-A<\/span> INPUT <span class=\"nt\">-s<\/span> 192.168.24.102 <span class=\"nt\">-p<\/span> udp <span class=\"nt\">--dport<\/span> 42185 <span class=\"nt\">-j<\/span> ACCEPT\r\niptables <span class=\"nt\">-A<\/span> INPUT <span class=\"nt\">-p<\/span> udp <span class=\"nt\">--dport<\/span> 42185 <span class=\"nt\">-j<\/span> DROP\r\n<span class=\"nb\">mkdir<\/span> <span class=\"nt\">-p<\/span> \/etc\/td-agent\/conf.d\r\n<\/code><\/pre>\n<h3>\u5b89\u88c5\u6d41\u5229\u7684\u63d2\u4ef6\u3002<\/h3>\n<pre class=\"post-pre\"><code>yum <span class=\"nb\">install <\/span>geoip-devel <span class=\"nt\">--enablerepo<\/span><span class=\"o\">=<\/span>epel\r\n\/usr\/lib64\/fluent\/ruby\/bin\/gem <span class=\"nb\">install <\/span>fluent-plugin-parser\r\n\/usr\/lib64\/fluent\/ruby\/bin\/gem <span class=\"nb\">install <\/span>fluent-plugin-geoip\r\n\/usr\/lib64\/fluent\/ruby\/bin\/gem <span class=\"nb\">install <\/span>fluent-plugin-flatten-hash\r\n\/usr\/lib64\/fluent\/ruby\/bin\/gem <span class=\"nb\">install <\/span>fluent-plugin-elasticsearch\r\n<\/code><\/pre>\n<blockquote><p>\u63d0\u793a<br \/>\n\u5728\u5b89\u88c5CentOS5\u7cfb\u65f6\uff0c\u9700\u8981\u4f7f\u7528remi\u7684libcurl-devel\u5305\uff08\u5b98\u65b9\u548cepel\u7684\u7248\u672c\u4e0d\u5408\u9002\uff09\u3002<br \/>\n\u4f7f\u7528yum\u547d\u4ee4\u5b89\u88c5gcc\u548clibcurl-devel\uff0c\u542f\u7528remi\u4ed3\u5e93\uff1ayum install gcc libcurl-devel &#8211;enablerepo=remi\u3002<\/p><\/blockquote>\n<pre class=\"post-pre\"><code><span class=\"nb\">echo<\/span> <span class=\"s1\">'include conf.d\/*.conf'<\/span> <span class=\"o\">&gt;<\/span> \/etc\/td-agent\/td-agent.conf\r\nvi \/etc\/td-agent\/conf.d\/bind_queries.conf\r\n\r\n<\/code><\/pre>\n<blockquote><p>\/etc\/td-agent\/conf.d\/bind_queries.conf<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u4ece\u5404\u4e2aDNS\u670d\u52a1\u5668\u7684rsyslog\u4e2d\u83b7\u53d6\u65e5\u5fd7<br \/>\n# local1.info -&gt; syslog:42185 -&gt; named.syslog.local1.info<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type syslog<br \/>\nport 42185<br \/>\ntag named.rewrite<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u8fc7\u6ee4\u5904\u7406<br \/>\n# \/usr\/lib64\/fluent\/ruby\/bin\/gem install fluent-plugin-rewrite<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type copy<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u6d4b\u8bd5\u8f93\u51fa<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n#<br \/>\n# type stdout<br \/>\n#<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# named.rewrite.local1.info -&gt; named.parser<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type rewrite<br \/>\nremove_prefix named.rewrite.local1.info<br \/>\nadd_prefix named.parser<\/p>\n<p>#&#8212; QUERY<\/p>\n<p>key message<br \/>\npattern client ([.0-9]+).[0-9]*: view ([^ ]*): [^ ]* ([^ ]*) ([^ ]* [^ ]* [^ ]*) \\(([.0-9:]+)\\)<br \/>\nreplace {&#8220;log_type&#8221;:&#8221;QUERY&#8221;, &#8220;src&#8221;:&#8221;\\1&#8243;,&#8221;view&#8221;:&#8221;\\2&#8243;,&#8221;fqdn&#8221;:&#8221;\\3&#8243;,&#8221;class_type&#8221;:&#8221;\\4&#8243;,&#8221;dst&#8221;:&#8221;\\5&#8243;}<br \/>\nlast true<\/p>\n<p>#&#8212; \u6ca1\u6709\u5339\u914d\u89c4\u5219\u7684\u6761\u76ee\u5c06\u88ab\u4e22\u5f03<\/p>\n<p>key message<br \/>\npattern .*<br \/>\nignore true<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u5c06\u8fc7\u6ee4\u540e\u7684\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3aJSON\u683c\u5f0f<br \/>\n# \/usr\/lib64\/fluent\/ruby\/bin\/gem install fluent-plugin-parser<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type copy<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u6d4b\u8bd5\u8f93\u51fa<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n#<br \/>\n# type stdout<br \/>\n#<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# named.parser -&gt; named.geoip<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type parser<br \/>\ntag named.geoip<br \/>\nkey_name message<br \/>\nformat json<br \/>\nreserve_data yes<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u6dfb\u52a0\u56fd\u522b\u4ee3\u7801<br \/>\n# yum install geoip-devel &#8211;enablerepo=epel<br \/>\n# \/usr\/lib64\/fluent\/ruby\/bin\/gem install fluent-plugin-geoip<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type copy<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u6d4b\u8bd5\u8f93\u51fa<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n#<br \/>\n# type stdout<br \/>\n#<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# named.geoip -&gt; named.flatten_hash<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type geoip<br \/>\ngeoip_lookup_key src<\/p>\n<p>country ${country_code[&#8216;src&#8217;]}<\/p>\n<p>tag named.flatten_hash<br \/>\nlog_level debug<br \/>\nflush_interval 1s<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u5c06\u5d4c\u5957\u7684JSON\u8f6c\u6362\u4e3a\u6241\u5e73\u5316\u683c\u5f0f<br \/>\n# \/usr\/lib64\/fluent\/ruby\/bin\/gem install fluent-plugin-flatten-hash<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type copy<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u6d4b\u8bd5\u8f93\u51fa<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n#<br \/>\n# type stdout<br \/>\n#<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# named.flatten_hash -&gt; named.record_reformer<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type flatten_hash<br \/>\ntag named.record_reformer<br \/>\nseparator _<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u4e22\u5f03\u4e0d\u5fc5\u8981\u7684\u952e<br \/>\n# \/usr\/lib64\/fluent\/ruby\/bin\/gem install fluent-plugin-record-reformer<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type copy<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u6d4b\u8bd5\u8f93\u51fa<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n#<br \/>\n# type stdout<br \/>\n#<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# named.record_reformer -&gt; named.elasticsearch<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type record_reformer<br \/>\ntag named.elasticsearch<br \/>\nremove_keys message,ident,pid<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u6570\u636e\u5199\u5165Elasticsearch<br \/>\n# \/usr\/lib64\/fluent\/ruby\/bin\/gem install fluent-plugin-elasticsearch<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type copy<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# \u6d4b\u8bd5\u8f93\u51fa<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type stdout<\/p>\n<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n# named.elasticsearch -&gt; elasticsearch [localhost:9200]<br \/>\n#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>type elasticsearch<br \/>\ninclude_tag_key true<br \/>\ntag_key @log_name<br \/>\nhost localhost<br \/>\nport 9200<br \/>\nlogstash_format true<br \/>\nlogstash_prefix namedlog<br \/>\nflush_interval 10s<\/p><\/blockquote>\n<pre class=\"post-pre\"><code>\/etc\/init.d\/td-agent start\r\n<\/code><\/pre>\n<h3>\u5b89\u88c5 Kibana<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nb\">cd<\/span> \/usr\/local\/src\/\r\nwget https:\/\/download.elasticsearch.org\/kibana\/kibana\/kibana-3.1.2.tar.gz\r\n<span class=\"nb\">tar <\/span>zxvf kibana-3.1.2.tar.gz\r\n<span class=\"nb\">cd<\/span> \/usr\/local\/src\/kibana-3.1.2 \r\npython <span class=\"nt\">-m<\/span> SimpleHTTPServer 8080\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u603b\u7ed3 \u5c06DNS\u670d\u52a1\u5668\u7684\u67e5\u8be2\u65e5\u5fd7\u4fdd\u5b58\u5230Elasticsearch\u4e2d \u9a8c\u8bc1\u73af\u5883 \u7528\u9014ip\u30de\u30b9\u30bf\u30fcDNS\u30b5\u30fc\u30d0\u30fc19 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-40732","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5c06BIND\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230Elasticsearch\u4e2d - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c06bind\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230elasticsearch\u4e2d\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5c06BIND\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230Elasticsearch\u4e2d\" \/>\n<meta property=\"og:description\" content=\"\u603b\u7ed3 \u5c06DNS\u670d\u52a1\u5668\u7684\u67e5\u8be2\u65e5\u5fd7\u4fdd\u5b58\u5230Elasticsearch\u4e2d \u9a8c\u8bc1\u73af\u5883 \u7528\u9014ip\u30de\u30b9\u30bf\u30fcDNS\u30b5\u30fc\u30d0\u30fc19 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c06bind\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230elasticsearch\u4e2d\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-21T20:15:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-03T21:15:31+00:00\" \/>\n<meta name=\"author\" content=\"\u97f5, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/\",\"name\":\"\u5c06BIND\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230Elasticsearch\u4e2d - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2024-02-21T20:15:35+00:00\",\"dateModified\":\"2024-05-03T21:15:31+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5c06BIND\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230Elasticsearch\u4e2d\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5c06BIND\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230Elasticsearch\u4e2d - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c06bind\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230elasticsearch\u4e2d\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5c06BIND\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230Elasticsearch\u4e2d","og_description":"\u603b\u7ed3 \u5c06DNS\u670d\u52a1\u5668\u7684\u67e5\u8be2\u65e5\u5fd7\u4fdd\u5b58\u5230Elasticsearch\u4e2d \u9a8c\u8bc1\u73af\u5883 \u7528\u9014ip\u30de\u30b9\u30bf\u30fcDNS\u30b5\u30fc\u30d0\u30fc19 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c06bind\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230elasticsearch\u4e2d\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2024-02-21T20:15:35+00:00","article_modified_time":"2024-05-03T21:15:31+00:00","author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/","name":"\u5c06BIND\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230Elasticsearch\u4e2d - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2024-02-21T20:15:35+00:00","dateModified":"2024-05-03T21:15:31+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5c06BIND\u7684\u67e5\u8be2\u65e5\u5fd7\u5b58\u50a8\u5230Elasticsearch\u4e2d"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%86bind%e7%9a%84%e6%9f%a5%e8%af%a2%e6%97%a5%e5%bf%97%e5%ad%98%e5%82%a8%e5%88%b0elasticsearch%e4%b8%ad%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/40732","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=40732"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/40732\/revisions"}],"predecessor-version":[{"id":96331,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/40732\/revisions\/96331"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=40732"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=40732"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=40732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}