{"id":43262,"date":"2023-04-29T07:42:54","date_gmt":"2022-11-16T16:39:29","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/"},"modified":"2024-04-30T01:49:34","modified_gmt":"2024-04-29T17:49:34","slug":"%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/","title":{"rendered":"\u4f7f\u7528 Prometheus+Grafana \u76d1\u63a7 Kubernetes \u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7 YAML \u6587\u4ef6\u6784\u5efa"},"content":{"rendered":"<h1>\u9996\u5148<\/h1>\n<p>\u6700\u8fd1\u6211\u8c03\u67e5\u4e86\u4e00\u4e0b\u5982\u4f55\u76d1\u63a7Kubernetes\uff0c\u7136\u540e\u60f3\u77e5\u9053\u5b9e\u9645\u7684\u4f7f\u7528\u65b9\u6cd5\uff0c\u4e8e\u662f\u5c31\u8bd5\u7740\u8fd0\u884c\u4e86\u8d77\u6765\u3002\u4f5c\u4e3a\u76d1\u63a7Kubernetes\u7684\u5de5\u5177\uff0c\u4ee3\u8868\u6027\u7684\u6709Datadog\u548cPrometheus\uff0c\u4f46\u8fd9\u6b21\u6211\u9009\u62e9\u4e86\u8c03\u67e5\u5e76\u5b9e\u8df5\u4e86Prometheus\u7684\u4f7f\u7528\u65b9\u6cd5\u3002\u6b64\u5916\uff0c\u6211\u8fd8\u7ed3\u5408\u4e86\u5e38\u7528\u4e8e\u4e0ePrometheus\u4e00\u8d77\u4f7f\u7528\u7684\u53ef\u89c6\u5316\u5de5\u5177Grafana\u8fdb\u884c\u5229\u7528\u3002<\/p>\n<h1>Prometheus\u662f\u4ec0\u4e48\uff1f<\/h1>\n<p>\u6700\u521d\uff0c\u8fd9\u4e2a\u5de5\u5177\u662f\u7531SoundCloud\u5f00\u53d1\u7684\uff0c\u5177\u5907\u76d1\u63a7\u548c\u8b66\u62a5\u529f\u80fd\u3002\u81ea2016\u5e74\u5f00\u59cb\u52a0\u5165CNCF\uff0c\u52302018\u5e748\u6708\u83b7\u5f97\u6bd5\u4e1a\u72b6\u6001\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/4-0.png\" alt=\"\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\" \/><\/div>\n<p>\u5173\u4e8e\u5176\u5185\u5bb9\u7684\u8bf4\u660e\uff0c\u4ee5\u4e0b\u6587\u7ae0\u662f\u4e00\u4e2a\u6709\u53c2\u8003\u4ef7\u503c\u7684\u8d44\u6e90\u3002<br \/>\n\u4e0b\u4e00\u4e2a\u4e3b\u8981\u7684\u76d1\u63a7\u5de5\u5177\uff01\u6211\u4eec\u4eb2\u8eab\u5b9e\u8df5\u4e86 Prometheus<br \/>\n10\u5206\u949f\u4e86\u89e3 Prometheus<\/p>\n<p>\u516c\u5f0f\u4ecb\u7ecd\u9875\u9762\u5728\u8fd9\u91cc\u3002<\/p>\n<h1>Prometheus\u7684\u542f\u52a8<\/h1>\n<p>\u4f7f\u7528Prometheus\u7684\u65b9\u6cd5\u53ef\u4ee5\u5927\u81f4\u5206\u4e3a\u4e24\u79cd\uff1a<br \/>\n1. \u5b89\u88c5\u5e76\u542f\u52a8\u4e8c\u8fdb\u5236\u6587\u4ef6\u3002<br \/>\n2. \u4f7f\u7528\u5bb9\u5668\u955c\u50cf\u6765\u542f\u52a8\u3002<\/p>\n<p>\u7b2c\u4e8c\u4e2a\u9009\u9879\u662f\u53ef\u4ee5\u4eceKubernetes\u6216docker\u5f00\u59cb\uff0c\u4f46\u672c\u6b21\u6211\u4eec\u5c06\u4ecb\u7ecd\u901a\u8fc7\u521b\u5efayaml\u6587\u4ef6\u5e76\u4ecekubectl\u547d\u4ee4\u96c6\u542f\u52a8\u7684\u6b65\u9aa4\u3002<\/p>\n<h2>\u73af\u5883<\/h2>\n<p>\u6211\u4eec\u5c06\u4f7f\u7528\u5728\u8fd9\u7bc7\u6587\u7ae0\u4e2d\u6784\u5efa\u7684\u73af\u5883\u3002<\/p>\n<p>\u64cd\u4f5c\u7cfb\u7edf\uff1aCentos7<br \/>\nKubernetes\u7248\u672c\uff1a1.13.1<br \/>\n\u7528\u6237\uff1a\u4ee5\u4e0b\u64cd\u4f5c\u5747\u5728root\u7528\u6237\u4e0b\u6267\u884c\u3002<\/p>\n<h2>\u542f\u52a8\u4e8c\u8fdb\u5236\u6587\u4ef6<\/h2>\n<p>\u5982\u4f55\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u5f00\u59cb\u7684\u65b9\u6cd5\u5df2\u5728\u5b98\u65b9\u7f51\u9875\u7684&#8221;\u5165\u95e8\u6307\u5357&#8221;\u4e2d\u4ecb\u7ecd\u3002<\/p>\n<h3>Binary\u6587\u4ef6\u7684\u5b89\u88c5<\/h3>\n<p>\u901a\u8fc7\u6b64\u9875\u9762\u9009\u62e9\u7248\u672c\u5e76\u8fdb\u884c\u5b89\u88c5\u3002<\/p>\n<pre class=\"post-pre\"><code>wget https:\/\/github.com\/prometheus\/prometheus\/releases\/download\/v2.6.0\/prometheus-2.6.0.linux-amd64.tar.gz\r\ntar xvfz prometheus-2.6.0.linux-amd64.tar.gz\r\ncd prometheus-2.6.0.linux-amd64\r\n<\/code><\/pre>\n<h3>\u68c0\u67e5prometheus.yml\u6587\u4ef6\u3002<\/h3>\n<p>\u5728Prometheus\u7684\u914d\u7f6e\u6587\u4ef6prometheus.yml\u4e2d\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5982\u4e0b\u6240\u793a\u3002\u5982\u679c\u6709\u914d\u7f6e\u66f4\u6539\uff0c\u9700\u8981\u4fee\u6539\u8be5\u6587\u4ef6\u6765\u542f\u52a8Prometheus\u3002\u7a0d\u540e\u5c06\u5bf9\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u90e8\u5206\u66f4\u6539\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\"># my global config<\/span>\r\n<span class=\"na\">global<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">scrape_interval<\/span><span class=\"pi\">:<\/span>     <span class=\"s\">15s<\/span> <span class=\"c1\"># Set the scrape interval to every 15 seconds. Default is every 1 minute.<\/span>\r\n  <span class=\"na\">evaluation_interval<\/span><span class=\"pi\">:<\/span> <span class=\"s\">15s<\/span> <span class=\"c1\"># Evaluate rules every 15 seconds. The default is every 1 minute.<\/span>\r\n  <span class=\"c1\"># scrape_timeout is set to the global default (10s).<\/span>\r\n\r\n<span class=\"c1\"># Alertmanager configuration<\/span>\r\n<span class=\"na\">alerting<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">alertmanagers<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">static_configs<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">targets<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"c1\"># - alertmanager:9093<\/span>\r\n\r\n<span class=\"c1\"># Load rules once and periodically evaluate them according to the global 'evaluation_interval'.<\/span>\r\n<span class=\"na\">rule_files<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"c1\"># - \"first_rules.yml\"<\/span>\r\n  <span class=\"c1\"># - \"second_rules.yml\"<\/span>\r\n\r\n<span class=\"c1\"># A scrape configuration containing exactly one endpoint to scrape:<\/span>\r\n<span class=\"c1\"># Here it's Prometheus itself.<\/span>\r\n<span class=\"na\">scrape_configs<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"c1\"># The job name is added as a label `job=&lt;job_name&gt;` to any timeseries scraped from this config.<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">job_name<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">prometheus'<\/span>\r\n\r\n    <span class=\"c1\"># metrics_path defaults to '\/metrics'<\/span>\r\n    <span class=\"c1\"># scheme defaults to 'http'.<\/span>\r\n\r\n    <span class=\"na\">static_configs<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">targets<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s1\">'<\/span><span class=\"s\">localhost:9090'<\/span><span class=\"pi\">]<\/span>\r\n<\/code><\/pre>\n<h3>\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8<\/h3>\n<p>\u4ee5\u4e0b\u8fd9\u6837\u901a\u8fc7\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\u6765\u542f\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/prometheus --config.file=prometheus.yml\r\n<\/code><\/pre>\n<p>\u8fd0\u884c\u8be5\u547d\u4ee4\u540e\uff0c\u5c06\u663e\u793a\u4ee5\u4e0b\u65e5\u5fd7\uff1a\u5f53\u51fa\u73b0 &#8220;Server is ready to receive web requests.&#8221; \u7684\u663e\u793a\u65f6\uff0c\u8868\u793a\u53ef\u4ee5\u8bbf\u95ee\u3002<\/p>\n<pre class=\"post-pre\"><code>level=info ts=2019-01-04T03:31:45.335407864Z caller=main.go:243 msg=\"Starting Prometheus\" version=\"(version=2.6.0, branch=HEAD, revision=dbd1d58c894775c0788470944b818cc724f550fb)\"\r\nlevel=info ts=2019-01-04T03:31:45.335501267Z caller=main.go:244 build_context=\"(go=go1.11.3, user=root@bf5760470f13, date=20181217-15:14:46)\"\r\nlevel=info ts=2019-01-04T03:31:45.33552679Z caller=main.go:245 host_details=\"(Linux 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:43 UTC 2018 x86_64 k8s-master (none))\"\r\nlevel=info ts=2019-01-04T03:31:45.335552521Z caller=main.go:246 fd_limits=\"(soft=1024, hard=4096)\"\r\nlevel=info ts=2019-01-04T03:31:45.335572558Z caller=main.go:247 vm_limits=\"(soft=unlimited, hard=unlimited)\"\r\nlevel=info ts=2019-01-04T03:31:45.336808997Z caller=main.go:561 msg=\"Starting TSDB ...\"\r\nlevel=info ts=2019-01-04T03:31:45.336861457Z caller=web.go:429 component=web msg=\"Start listening for connections\" address=0.0.0.0:9090\r\nlevel=info ts=2019-01-04T03:31:45.362425157Z caller=main.go:571 msg=\"TSDB started\"\r\nlevel=info ts=2019-01-04T03:31:45.3624917Z caller=main.go:631 msg=\"Loading configuration file\" filename=prometheus.yml\r\nlevel=info ts=2019-01-04T03:31:45.36354544Z caller=main.go:657 msg=\"Completed loading of configuration file\" filename=prometheus.yml\r\nlevel=info ts=2019-01-04T03:31:45.363564736Z caller=main.go:530 msg=\"Server is ready to receive web requests.\"\r\n<\/code><\/pre>\n<h3>\u4ece\u56fe\u5f62\u7528\u6237\u754c\u9762\u8fdb\u884c\u8fde\u63a5<\/h3>\n<p>\u5728\u9ed8\u8ba4\u8bbe\u7f6e\u4e0b\uff0c\u60a8\u53ef\u4ee5\u4ecelocalhost:9090\u8bbf\u95eePrometheus\u9762\u677f\u3002\u5728\u6b64\u5904\uff0c\u6211\u4eec\u5c06\u4ecehttp:\/\/&lt;k8s-master\u7684\u5168\u5c40IP\u5730\u5740:9090&gt;\u8fdb\u884c\u8bbf\u95ee\u3002<br \/>\n\u8bbf\u95ee\u540e\uff0c\u5c06\u663e\u793a\u4ee5\u4e0b\u5c4f\u5e55(&lt;k8s-master\u7684\u5168\u5c40IP\u5730\u5740:9090\/graph&gt;)\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/28-0.jpeg\" alt=\"prometheus-binary-1.jpg\" \/><\/div>\n<p>\u5f53\u60a8\u4ece\u4e0a\u8ff0\u753b\u9762\u4e2d\u8bbf\u95eehttp:\/\/&lt;k8s-master\u7684\u5168\u5c40IP\u5730\u5740:9090\/metrics&gt;\u65f6\uff0c\u5c06\u663e\u793a\u4ee5\u4e0b\u6307\u6807\u5217\u8868\u3002\u60a8\u8fd8\u53ef\u4ee5\u5728\u5c4f\u5e55\u9876\u90e8\u7684\u9009\u9879\u5361\u4e2d\u9009\u62e9\u8bbf\u95ee\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/30-0.jpeg\" alt=\"prometheus-binary-2.jpg\" \/><\/div>\n<p>\u5728\u300a\u5165\u95e8\u6307\u5357\u300b\u4e2d\u4e5f\u63d0\u4f9b\u4e86\u4e00\u4e9b\u83b7\u53d6\u6307\u6807\u7684\u793a\u4f8b\u3002\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06\u83b7\u53d6\u4e00\u4e2a\u540d\u4e3aprometheus_target_interval_length_seconds\u7684\u5ea6\u91cf\u6307\u6807\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/32-0.jpeg\" alt=\"prometheus-binary-5.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/33-0.jpeg\" alt=\"prometheus-binary-6.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/34-0.jpeg\" alt=\"prometheus-binary-7.jpg\" \/><\/div>\n<h3>\u542f\u52a8 Node Exporter<\/h3>\n<p>Prometheus\u662f\u4e00\u79cdPull\u578b\u7684\u76d1\u63a7\u5de5\u5177\uff0c\u9700\u8981\u4ece\u88ab\u76d1\u89c6\u7684\u670d\u52a1\u5668\u63a5\u6536\u6307\u6807\u3002Kubernetes\u9ed8\u8ba4\u63d0\u4f9b\u4e0ePrometheus\u517c\u5bb9\u7684\u6307\u6807\uff0c\u4f46\u6211\u4eec\u5c06\u542f\u52a8\u4e00\u4e2a\u540d\u4e3aExporter\u7684\u5de5\u5177\u6765\u8f93\u51fa\u6307\u6807\u3002<br \/>\n\u5728Prometheus\u7684\u9875\u9762\u4e0a\u4ecb\u7ecd\u4e86Exporter\u7684\u79cd\u7c7b\uff0c\u5b83\u652f\u6301\u4ece\u786c\u4ef6\u5230\u6570\u636e\u5e93\u7b49\u5404\u79cd\u6307\u6807\u3002\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06\u4f7f\u7528\u4e00\u4e2a\u79f0\u4e3aNode Exporter\u7684Exporter\u3002\u5173\u4e8e\u4f7f\u7528Node Exporter\u8fdb\u884cPrometheus\u76d1\u63a7\u7684\u65b9\u6cd5\u4e5f\u5728\u5b98\u65b9\u9875\u9762\u4e0a\u4ecb\u7ecd\uff0c\u57fa\u672c\u4e0a\u6211\u4eec\u91c7\u7528\u90a3\u79cd\u65b9\u6cd5\u3002<\/p>\n<p>Node Exporter\u4e5f\u63d0\u4f9b\u4e86\u4e8c\u8fdb\u5236\u6587\u4ef6\uff0c\u53ef\u4ee5\u5728Prometheus\u7684\u4e0b\u8f7d\u9875\u9762\u4e0a\u627e\u5230\u3002\u5b89\u88c5\u548c\u89e3\u538b\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u6b65\u9aa4\u4e0ePrometheus\u7c7b\u4f3c\uff0c\u7136\u540e\u542f\u52a8\u5373\u53ef\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@k8s-master ~]# wget https:\/\/github.com\/prometheus\/node_exporter\/releases\/download\/v0.17.0\/node_exporter-0.17.0.linux-amd64.tar.gz\r\n[root@k8s-master ~]# tar xvfz node_exporter-0.17.0.linux-amd64.tar.gz\r\n[root@k8s-master ~]# cd node_exporter-0.17.0.linux-amd64\r\n[root@k8s-master node_exporter-0.17.0.linux-amd64]# .\/node_exporter &amp;\r\n<\/code><\/pre>\n<p>\u663e\u793a\u4ee5\u4e0b\u65e5\u5fd7\u5185\u5bb9\u5e76\u542f\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code>INFO[0000] Starting node_exporter (version=0.17.0, branch=HEAD, revision=f6f6194a436b9a63d0439abc585c76b19a206b21)  source=\"node_exporter.go:82\"\r\nINFO[0000] Build context (go=go1.11.2, user=root@322511e06ced, date=20181130-15:51:33)  source=\"node_exporter.go:83\"\r\nINFO[0000] Enabled collectors:                           source=\"node_exporter.go:90\"\r\nINFO[0000]  - arp                                        source=\"node_exporter.go:97\"\r\nINFO[0000]  - bcache                                     source=\"node_exporter.go:97\"\r\nINFO[0000]  - bonding                                    source=\"node_exporter.go:97\"\r\nINFO[0000]  - conntrack                                  source=\"node_exporter.go:97\"\r\nINFO[0000]  - cpu                                        source=\"node_exporter.go:97\"\r\nINFO[0000]  - diskstats                                  source=\"node_exporter.go:97\"\r\nINFO[0000]  - edac                                       source=\"node_exporter.go:97\"\r\nINFO[0000]  - entropy                                    source=\"node_exporter.go:97\"\r\nINFO[0000]  - filefd                                     source=\"node_exporter.go:97\"\r\nINFO[0000]  - filesystem                                 source=\"node_exporter.go:97\"\r\nINFO[0000]  - hwmon                                      source=\"node_exporter.go:97\"\r\nINFO[0000]  - infiniband                                 source=\"node_exporter.go:97\"\r\nINFO[0000]  - ipvs                                       source=\"node_exporter.go:97\"\r\nINFO[0000]  - loadavg                                    source=\"node_exporter.go:97\"\r\nINFO[0000]  - mdadm                                      source=\"node_exporter.go:97\"\r\nINFO[0000]  - meminfo                                    source=\"node_exporter.go:97\"\r\nINFO[0000]  - netclass                                   source=\"node_exporter.go:97\"\r\nINFO[0000]  - netdev                                     source=\"node_exporter.go:97\"\r\nINFO[0000]  - netstat                                    source=\"node_exporter.go:97\"\r\nINFO[0000]  - nfs                                        source=\"node_exporter.go:97\"\r\nINFO[0000]  - nfsd                                       source=\"node_exporter.go:97\"\r\nINFO[0000]  - sockstat                                   source=\"node_exporter.go:97\"\r\nINFO[0000]  - stat                                       source=\"node_exporter.go:97\"\r\nINFO[0000]  - textfile                                   source=\"node_exporter.go:97\"\r\nINFO[0000]  - time                                       source=\"node_exporter.go:97\"\r\nINFO[0000]  - timex                                      source=\"node_exporter.go:97\"\r\nINFO[0000]  - uname                                      source=\"node_exporter.go:97\"\r\nINFO[0000]  - vmstat                                     source=\"node_exporter.go:97\"\r\nINFO[0000]  - xfs                                        source=\"node_exporter.go:97\"\r\nINFO[0000]  - zfs                                        source=\"node_exporter.go:97\"\r\nINFO[0000] Listening on :9100                            source=\"node_exporter.go:111\"\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/41-0.jpeg\" alt=\"prometheus-binary-12.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/42-0.jpeg\" alt=\"prometheus-binary-13.jpg\" \/><\/div>\n<h3>\u7f16\u8f91 prometheus.yml<\/h3>\n<p>\u8981\u63a5\u6536\u6765\u81ea\u542f\u52a8\u7684Node Exporter\u7684\u6307\u6807\uff0c\u4f60\u9700\u8981\u7f16\u8f91prometheus.yml\u6587\u4ef6\u6765\u6307\u5b9a\u76ee\u6807\u3002\u5728\u8fd9\u91cc\uff0c\u4f60\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u65b9\u5f0f\u66f4\u6539\u76ee\u6807\u7684\u7aef\u53e3\u53f7\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\"># my global config<\/span>\r\n<span class=\"na\">global<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">scrape_interval<\/span><span class=\"pi\">:<\/span>     <span class=\"s\">15s<\/span> <span class=\"c1\"># Set the scrape interval to every 15 seconds. Default is every 1 minute.<\/span>\r\n  <span class=\"na\">evaluation_interval<\/span><span class=\"pi\">:<\/span> <span class=\"s\">15s<\/span> <span class=\"c1\"># Evaluate rules every 15 seconds. The default is every 1 minute.<\/span>\r\n  <span class=\"c1\"># scrape_timeout is set to the global default (10s).<\/span>\r\n\r\n<span class=\"c1\"># Alertmanager configuration<\/span>\r\n<span class=\"na\">alerting<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">alertmanagers<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">static_configs<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">targets<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"c1\"># - alertmanager:9093<\/span>\r\n\r\n<span class=\"c1\"># Load rules once and periodically evaluate them according to the global 'evaluation_interval'.<\/span>\r\n<span class=\"na\">rule_files<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"c1\"># - \"first_rules.yml\"<\/span>\r\n  <span class=\"c1\"># - \"second_rules.yml\"<\/span>\r\n\r\n<span class=\"c1\"># A scrape configuration containing exactly one endpoint to scrape:<\/span>\r\n<span class=\"c1\"># Here it's Prometheus itself.<\/span>\r\n<span class=\"na\">scrape_configs<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"c1\"># The job name is added as a label `job=&lt;job_name&gt;` to any timeseries scraped from this config.<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">job_name<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">prometheus'<\/span>\r\n\r\n    <span class=\"c1\"># metrics_path defaults to '\/metrics'<\/span>\r\n    <span class=\"c1\"># scheme defaults to 'http'.<\/span>\r\n\r\n    <span class=\"na\">static_configs<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">targets<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s1\">'<\/span><span class=\"s\">localhost:9100'<\/span><span class=\"pi\">]<\/span><span class=\"s\">\u3000<\/span>  <span class=\"c1\">#\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u5909\u66f4\u3059\u308b<\/span>\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/46-1.jpeg\" alt=\"prometheus-binary-8.jpg\" \/><\/div>\n<p>\u73b0\u5728\u80fd\u591f\u4f7f\u7528\u5148\u524d\u65e0\u6cd5\u4f7f\u7528\u7684\u6307\u6807\u3002\u8fd9\u91cc\u5c55\u793a\u4e86\u4e00\u4e2a\u540d\u4e3anode_cpu_second_total\u7684\u56fe\u8868\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/48-0.jpeg\" alt=\"prometheus-binary-9.jpg\" \/><\/div>\n<p>\u60a8\u53ef\u4ee5\u901a\u8fc7 Node Exporter \u7684 GitHub \u9875\u9762\u67e5\u770b\u53ef\u4ee5\u83b7\u53d6\u54ea\u4e9b\u6307\u6807\u3002<\/p>\n<h3>\u4ece\u522b\u7684\u8282\u70b9\u83b7\u53d6\u6307\u6807<\/h3>\n<p>\u5728\u6b64\u4e4b\u524d\uff0c\u6211\u4eec\u4e00\u76f4\u5728\u83b7\u53d6master\uff08k8s-master\uff09\u7684\u6307\u6807\uff0c\u4f46\u73b0\u5728\u6211\u4eec\u9700\u8981\u83b7\u53d6worker\uff08k8s-node-1\uff09\u7684\u6307\u6807\u3002\u5728worker\u4e00\u4fa7\u5b8c\u6210\u4e0e\u4e0a\u8ff0\u6b65\u9aa4\u76f8\u540c\u7684Node Exporter\u7684\u5b89\u88c5\u548c\u542f\u52a8\u540e\uff0c\u6211\u4eec\u5c06\u518d\u6b21\u7f16\u8f91prometheus.yml\u6587\u4ef6\u3002\u7f16\u8f91\u90e8\u5206\u4e0e\u4e4b\u524d\u4e00\u6837\uff0c\u4ecd\u65e7\u662ftargets\u7684\u90e8\u5206\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\"># my global config<\/span>\r\n<span class=\"na\">global<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">scrape_interval<\/span><span class=\"pi\">:<\/span>     <span class=\"s\">15s<\/span> <span class=\"c1\"># Set the scrape interval to every 15 seconds. Default is every 1 minute.<\/span>\r\n  <span class=\"na\">evaluation_interval<\/span><span class=\"pi\">:<\/span> <span class=\"s\">15s<\/span> <span class=\"c1\"># Evaluate rules every 15 seconds. The default is every 1 minute.<\/span>\r\n  <span class=\"c1\"># scrape_timeout is set to the global default (10s).<\/span>\r\n\r\n<span class=\"c1\"># Alertmanager configuration<\/span>\r\n<span class=\"na\">alerting<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">alertmanagers<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">static_configs<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">targets<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"c1\"># - alertmanager:9093<\/span>\r\n\r\n<span class=\"c1\"># Load rules once and periodically evaluate them according to the global 'evaluation_interval'.<\/span>\r\n<span class=\"na\">rule_files<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"c1\"># - \"first_rules.yml\"<\/span>\r\n  <span class=\"c1\"># - \"second_rules.yml\"<\/span>\r\n\r\n<span class=\"c1\"># A scrape configuration containing exactly one endpoint to scrape:<\/span>\r\n<span class=\"c1\"># Here it's Prometheus itself.<\/span>\r\n<span class=\"na\">scrape_configs<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"c1\"># The job name is added as a label `job=&lt;job_name&gt;` to any timeseries scraped from this config.<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">job_name<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">prometheus'<\/span>\r\n\r\n    <span class=\"c1\"># metrics_path defaults to '\/metrics'<\/span>\r\n    <span class=\"c1\"># scheme defaults to 'http'.<\/span>\r\n\r\n    <span class=\"na\">static_configs<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">targets<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s1\">'<\/span><span class=\"s\">localhost:9100'<\/span><span class=\"pi\">,<\/span><span class=\"s1\">'<\/span><span class=\"s\">k8s-node-1:9100'<\/span><span class=\"pi\">]<\/span>  <span class=\"c1\">#\u30bf\u30fc\u30b2\u30c3\u30c8\u3092\u8ffd\u52a0\u3059\u308b<\/span>\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/53-0.jpeg\" alt=\"prometheus-binary-10.jpg\" \/><\/div>\n<h3>\u542f\u52a8Grafana<\/h3>\n<p>\u6211\u4eec\u80fd\u591f\u901a\u8fc7Prometheus\u5728\u8fd9\u91cc\u786e\u8ba4\u6307\u6807\u3002\u4f46\u6b63\u5982\u60a8\u5728\u5c4f\u5e55\u4e0a\u6240\u89c1\uff0c\u663e\u793a\u76f8\u5f53\u5355\u8c03\u4e14\u96be\u4ee5\u8fa8\u8ba4\u3002\u6240\u4ee5\u6211\u4eec\u5c06\u542f\u52a8Grafana\u4f5c\u4e3a\u53ef\u89c6\u5316\u5de5\u5177\u3002Grafana\u7684\u4f7f\u7528\u65b9\u6cd5\u4e5f\u5728Prometheus\u5b98\u65b9\u7f51\u9875\u4e0a\u6709\u4ecb\u7ecd\u3002\u6b63\u5982\u9884\u671f\u7684\u90a3\u6837\uff0c\u5b83\u4eec\u901a\u5e38\u4f1a\u4e00\u8d77\u4f7f\u7528\u3002\u542f\u52a8\u65b9\u5f0f\u4e0e\u4e4b\u524d\u76f8\u540c\uff0c\u4e0d\u8fc7\u5728\u53e6\u4e00\u7bc7\u6587\u7ae0\u4e2d\u4ed6\u4eec\u4f7f\u7528systemctl\u8fdb\u884c\u542f\u52a8\uff0c\u6240\u4ee5\u6211\u4eec\u91c7\u7528\u4e86\u8fd9\u79cd\u65b9\u5f0f\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@k8s-master ~]# wget https:\/\/dl.grafana.com\/oss\/release\/grafana-5.4.2-1.x86_64.rpm\r\n[root@k8s-master ~]# yum localinstall -y grafana-5.4.2-1.x86_64.rpm\r\n[root@k8s-master ~]# systemctl start grafana-server\r\n[root@k8s-master ~]# systemctl status grafana-server\r\n<\/code><\/pre>\n<p>\u5f53\u786e\u8ba4\u72b6\u6001\u540e\uff0c\u53ef\u4ee5\u660e\u786e\u5730\u770b\u5230\u5b83\u5df2\u7ecf\u6b63\u5e38\u542f\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code>\u25cf grafana-server.service - Grafana instance\r\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/grafana-server.service; disabled; vendor preset: disabled)\r\n   Active: active (running) since Fri 2019-01-04 04:29:21 UTC; 8s ago\r\n     Docs: http:\/\/docs.grafana.org\r\n Main PID: 2830 (grafana-server)\r\n    Tasks: 11\r\n   Memory: 18.5M\r\n   CGroup: \/system.slice\/grafana-server.service\r\n           \u2514\u25002830 \/usr\/sbin\/grafana-server --config=\/etc\/grafana\/grafana.ini --pidfile=\/var\/run\/grafana\/grafana-server.pid --packaging=rpm cfg:defaul...\r\n\r\nJan 04 04:29:21 k8s-master grafana-server[2830]: t=2019-01-04T04:29:21+0000 lvl=info msg=\"Initializing CleanUpService\" logger=server\r\nJan 04 04:29:21 k8s-master grafana-server[2830]: t=2019-01-04T04:29:21+0000 lvl=info msg=\"Initializing NotificationService\" logger=server\r\nJan 04 04:29:21 k8s-master grafana-server[2830]: t=2019-01-04T04:29:21+0000 lvl=info msg=\"Initializing ProvisioningService\" logger=server\r\nJan 04 04:29:21 k8s-master grafana-server[2830]: t=2019-01-04T04:29:21+0000 lvl=info msg=\"Initializing PluginManager\" logger=server\r\nJan 04 04:29:21 k8s-master grafana-server[2830]: t=2019-01-04T04:29:21+0000 lvl=info msg=\"Starting plugin search\" logger=plugins\r\nJan 04 04:29:21 k8s-master systemd[1]: Started Grafana instance.\r\nJan 04 04:29:21 k8s-master grafana-server[2830]: t=2019-01-04T04:29:21+0000 lvl=info msg=\"Plugin dir created\" logger=plugins dir=\/var\/lib\/gra...\/plugins\r\nJan 04 04:29:21 k8s-master grafana-server[2830]: t=2019-01-04T04:29:21+0000 lvl=info msg=\"Initializing TracingService\" logger=server\r\nJan 04 04:29:21 k8s-master grafana-server[2830]: t=2019-01-04T04:29:21+0000 lvl=info msg=\"Initializing Stream Manager\"\r\nJan 04 04:29:21 k8s-master grafana-server[2830]: t=2019-01-04T04:29:21+0000 lvl=info msg=\"HTTP Server Listen\" logger=http.server address=0.0.... socket=\r\nHint: Some lines were ellipsized, use -l to show in full.\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/59-0.jpeg\" alt=\"prometheus-binary-11.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/60-0.jpeg\" alt=\"prometheus-binary-14.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/61-0.jpeg\" alt=\"prometheus-binary-15.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/62-0.jpeg\" alt=\"prometheus-binary-16.jpg\" \/><\/div>\n<h3>\u51c6\u5907Prometheus Dashboard<\/h3>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/64-0.jpeg\" alt=\"prometheus-binary-17.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/65-0.jpeg\" alt=\"prometheus-binary-18.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/66-0.jpeg\" alt=\"prometheus-binary-19.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/67-0.jpeg\" alt=\"prometheus-binary-20.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/68-0.jpeg\" alt=\"prometheus-binary-21.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/69-1.jpeg\" alt=\"prometheus-binary-24.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/70-0.jpeg\" alt=\"prometheus-binary-25.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/71-0.jpeg\" alt=\"prometheus-binary-26.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/72-0.jpeg\" alt=\"prometheus-binary-27.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/73-0.jpeg\" alt=\"prometheus-binary-28.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/74-0.jpeg\" alt=\"prometheus-binary-29.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/75-0.jpeg\" alt=\"prometheus-binary-30.jpg\" \/><\/div>\n<p>\u53ea\u9700\u66f4\u6539\u56fe\u8868\u7684\u6807\u9898\u548c\u7ec6\u8282\u8bbe\u7f6e\u7b49\uff0c\u5373\u53ef\u5b8c\u6210\u56fe\u8868\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/77-0.jpeg\" alt=\"prometheus-binary-31.jpg\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/78-0.jpeg\" alt=\"prometheus-binary-32.jpg\" \/><\/div>\n<p>\u3010\u8865\u5145\u3011\u636e\u8fd9\u7bc7\u6587\u7ae0\u6240\u8ff0\uff0c\u4f3c\u4e4e\u662f\u56e0\u4e3a\u65e0\u6cd5\u83b7\u53d6cAdvisor\uff0c\u5bfc\u81f4\u56fe\u8868\u65e0\u6cd5\u6b63\u786e\u663e\u793a\u3002<\/p>\n<p>\u8fd9\u662f\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8Prometheus + Grafana\u7684\u65b9\u6cd5\u3002<\/p>\n<h2>\u521b\u5efa\u4e00\u4e2ayaml\u6587\u4ef6\u5e76\u90e8\u7f72\u3002<\/h2>\n<p>\u63a5\u4e0b\u6765\uff0c\u5c06\u4ecb\u7ecd\u5982\u4f55\u521b\u5efayaml\u6587\u4ef6\u5e76\u90e8\u7f72Prometheus + Grafana\u3002<\/p>\n<h3>\u666e\u7f57\u7c73\u4fee\u65af\u7684\u90e8\u7f72<\/h3>\n<p>\u521b\u5efa\u7528\u4e8e\u90e8\u7f72Prometheus\u7684\u5404\u79cdyaml\u6587\u4ef6\u3002\u521b\u5efa\u6b65\u9aa4\u8bf7\u53c2\u8003\u6b64\u5904\u3002<\/p>\n<p>\u5728\u8fd9\u91cc\u6211\u4eec\u5c06\u521b\u5efa\u56db\u79cdyaml\u6587\u4ef6\u3002<\/p>\n<h4>\u96c6\u7fa4\u89d2\u8272\u3001\u96c6\u7fa4\u89d2\u8272\u7ed1\u5b9a<\/h4>\n<p>\u7531\u4e8e\u53c2\u8003\u4e86\u4e0a\u8ff0\u6587\u7ae0\uff0c\u6211\u521b\u5efa\u4e86ClusterRole\u548cClusterRoleBinding\uff0c\u4f46\u662f\u6587\u7ae0\u4e2d\u662f\u9488\u5bf9GKE\u73af\u5883\u7684\u5047\u8bbe\uff0c\u5e76\u4e14\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u6211\u8ba4\u4e3a\u5b83\u4eec\u662f\u4e0d\u5fc5\u8981\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io\/v1beta1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterRole<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus<\/span>\r\n<span class=\"na\">rules<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"pi\">-<\/span> <span class=\"na\">apiGroups<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span><span class=\"pi\">]<\/span>\r\n  <span class=\"na\">resources<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">nodes<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">nodes\/proxy<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">services<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">endpoints<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">pods<\/span>\r\n  <span class=\"na\">verbs<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">get\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">list\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">watch\"<\/span><span class=\"pi\">]<\/span>\r\n<span class=\"pi\">-<\/span> <span class=\"na\">apiGroups<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">extensions<\/span>\r\n  <span class=\"na\">resources<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">ingresses<\/span>\r\n  <span class=\"na\">verbs<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">get\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">list\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">watch\"<\/span><span class=\"pi\">]<\/span>\r\n<span class=\"pi\">-<\/span> <span class=\"na\">nonResourceURLs<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">\/metrics\"<\/span><span class=\"pi\">]<\/span>\r\n  <span class=\"na\">verbs<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">get\"<\/span><span class=\"pi\">]<\/span>\r\n<span class=\"nn\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io\/v1beta1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterRoleBinding<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus<\/span>\r\n<span class=\"na\">roleRef<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">apiGroup<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io<\/span>\r\n  <span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterRole<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus<\/span>\r\n<span class=\"na\">subjects<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"pi\">-<\/span> <span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ServiceAccount<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">default<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<\/code><\/pre>\n<h4>\u914d\u7f6e\u6620\u5c04<\/h4>\n<p>\u5728\u4eceBinary\u542f\u52a8\u65f6\uff0c\u6211\u7f16\u8f91\u4e86prometheus.yml\u6587\u4ef6\u6765\u4fee\u6539\u8bbe\u7f6e\u3002\u5728\u4f7f\u7528yaml\u6587\u4ef6\u542f\u52a8\u65f6\uff0c\u4f3c\u4e4e\u6709\u51e0\u79cd\u6307\u5b9a\u7684\u65b9\u6cd5\u53ef\u4f9b\u9009\u62e9\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">ConfigMap\u3067\u5229\u7528\u3059\u308b\u30c7\u30fc\u30bf\u3092\u66f8\u304d\u8fbc\u3080<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Deployment\u3067args\u3067config\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3059\u308b<\/ul>\n<p>\u672c\u6b21\u6211\u4eec\u5c06\u6307\u5b9a\u8981\u5199\u5165ConfigMap\u7684\u6570\u636e\u3002\u6211\u4eec\u5c06\u5728data:\u90e8\u5206\u5199\u5165\u6587\u4ef6\u7684\u5185\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ConfigMap<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-server-conf<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-server-conf<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<span class=\"na\">data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"s\">prometheus.yml<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">|-<\/span>\r\n    <span class=\"s\"># my global config<\/span>\r\n    <span class=\"s\">global:<\/span>\r\n      <span class=\"s\">scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.<\/span>\r\n      <span class=\"s\">evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.<\/span>\r\n      <span class=\"s\"># scrape_timeout is set to the global default (10s).<\/span>\r\n\r\n    <span class=\"s\"># Alertmanager configuration<\/span>\r\n    <span class=\"s\">alerting:<\/span>\r\n      <span class=\"s\">alertmanagers:<\/span>\r\n      <span class=\"s\">- static_configs:<\/span>\r\n        <span class=\"s\">- targets:<\/span>\r\n          <span class=\"s\"># - alertmanager:9093<\/span>\r\n\r\n    <span class=\"s\"># Load rules once and periodically evaluate them according to the global 'evaluation_interval'.<\/span>\r\n    <span class=\"s\">rule_files:<\/span>\r\n      <span class=\"s\"># - \"first_rules.yml\"<\/span>\r\n      <span class=\"s\"># - \"second_rules.yml\"<\/span>\r\n\r\n    <span class=\"s\"># A scrape configuration containing exactly one endpoint to scrape:<\/span>\r\n    <span class=\"s\"># Here it's Prometheus itself.<\/span>\r\n    <span class=\"s\">scrape_configs:<\/span>\r\n      <span class=\"s\"># The job name is added as a label `job=&lt;job_name&gt;` to any timeseries scraped from this config.<\/span>\r\n      <span class=\"s\">- job_name: 'prometheus'<\/span>\r\n\r\n        <span class=\"s\"># metrics_path defaults to '\/metrics'<\/span>\r\n        <span class=\"s\"># scheme defaults to 'http'.<\/span>\r\n\r\n        <span class=\"s\">static_configs:<\/span>\r\n        <span class=\"s\">- targets: ['localhost:9100','k8s-node-1:9100']<\/span>\r\n<\/code><\/pre>\n<h4>\u90e8\u7f72<\/h4>\n<p>\u7528\u8fd9\u4e2a\u6587\u4ef6\u6765\u542f\u52a8 Prometheus\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">extensions\/v1beta1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Deployment<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-deployment<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-server<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus<\/span>\r\n          <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prom\/prometheus:latest<\/span>\r\n          <span class=\"c1\"># configfile\u3067\u6307\u5b9a\u3057\u305f\u5834\u6240\u306b\u306f\u8a72\u5f53\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002\u3002\u3002<\/span>\r\n          <span class=\"na\">args<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">--config.file=\/etc\/prometheus\/prometheus.yml\"<\/span>\r\n            <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">--storage.tsdb.path=\/prometheus\/\"<\/span>\r\n          <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"pi\">-<\/span> <span class=\"na\">containerPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">9090<\/span>\r\n<\/code><\/pre>\n<h4>\u670d\u52a1<\/h4>\n<p>\u4ec5\u9700\u8981\u4e00\u4e2a\u9009\u9879\u6765\u4ee5\u4e2d\u6587\u6bcd\u8bed\u91cd\u65b0\u8868\u8ff0\u4ee5\u4e0b\u5185\u5bb9\uff1a\u4ec5\u4ec5\u90e8\u7f72\u4e0a\u8ff0Deployment\u6587\u4ef6\uff0c\u65e0\u6cd5\u8fdb\u884c\u8bbf\u95ee\u3002\u6211\u4eec\u9700\u8981\u8fdb\u884c\u5916\u90e8\u8fde\u63a5\u7684\u8bbe\u7f6e\u3002\u53c2\u8003\u6587\u7ae0\u4e2d\u4ecb\u7ecd\u4e86\u4e24\u79cd\u65b9\u6cd5\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">kubectl port forwarding\u3092\u5229\u7528\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">NodePort, LoadBalancer\u7b49\u3092\u7528\u3044\u308b<\/ul>\n<p>\u5728\u8fd9\u91cc\u4f7f\u7528\u540e\u4e00\u79cd\u65b9\u6cd5\u3002\u4f7f\u7528NodePort\u53ef\u4ee5\u5b9e\u73b0\u6765\u81ea\u5916\u90e8\u7684\u8fde\u63a5\u3002\u6307\u5b9a\u8fde\u63a5\u7aef\u53e3\u4e3a30000\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Service<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-service<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span> \r\n    <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-server<\/span>\r\n  <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">NodePort<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8080<\/span>\r\n      <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"s\">9090<\/span> \r\n      <span class=\"na\">nodePort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">30000<\/span>\r\n<\/code><\/pre>\n<h3>\u90e8\u7f72\u5404\u7c7bYAML\u6587\u4ef6<\/h3>\n<p>\u90a3\u4e48\u5f00\u59cb\u90e8\u7f72\u5427\u3002\u9996\u5148\u521b\u5efa\u76d1\u63a7\u7528\u7684\u547d\u540d\u7a7a\u95f4\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@k8s-master ~]# kubectl create namespace monitoring\r\nnamespace\/monitoring created\r\n[root@k8s-master ~]# kubectl get ns\r\nNAME          STATUS   AGE\r\ndefault       Active   11d\r\nkube-public   Active   11d\r\nkube-system   Active   11d\r\nmonitoring    Active   6s\r\n[root@k8s-master ~]#\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c\u90e8\u7f72ClusterRole\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@k8s-master ~]# kubectl create -f clusterRole.yml \r\nclusterrole.rbac.authorization.k8s.io\/prometheus created\r\nclusterrolebinding.rbac.authorization.k8s.io\/prometheus created\r\n[root@k8s-master ~]# \r\n[root@k8s-master ~]# kubectl get clusterrole prometheus -n monitoring\r\nNAME         AGE\r\nprometheus   13m\r\n[root@k8s-master ~]# \r\n<\/code><\/pre>\n<p>\u90e8\u7f72 ConfigMap\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@k8s-master ~]# kubectl create -f prometheus-configmap.yml -n monitoring\r\nconfigmap\/prometheus-server-conf created\r\n[root@k8s-master ~]# kubectl get configmap -n monitoring\r\nNAME                     DATA   AGE\r\nprometheus-server-conf   1      57s\r\n[root@k8s-master ~]#\r\n<\/code><\/pre>\n<p>\u90e8\u7f72 Deployment \u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>kubectl create -f prometheus-deployment.yml -n monitoring\r\ndeployment.extensions\/prometheus-deployment created\r\n[root@k8s-master ~]# kubectl get deployments -n monitoring\r\nNAME                    READY   UP-TO-DATE   AVAILABLE   AGE\r\nprometheus-deployment   1\/1     1            1           16s\r\n[root@k8s-master ~]#\r\n<\/code><\/pre>\n<p>\u6700\u540e\u90e8\u7f72Service\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@k8s-master ~]# kubectl create -f prometheus-service.yml -n monitoring\r\nservice\/prometheus-service created\r\n[root@k8s-master ~]# kubectl get svc -n monitoring\r\nNAME                 TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE\r\nprometheus-service   NodePort   10.108.59.161   &lt;none&gt;        8080:30000\/TCP   9s\r\n[root@k8s-master ~]# \r\n<\/code><\/pre>\n<p>\u4f60\u53ef\u4ee5\u901a\u8fc7GUI\u8bbf\u95ee\u5b83\u3002\u8bbf\u95eehttp:\/\/&lt;k8s-master\u7684\u5168\u5c40IP\u5730\u5740:30000&gt;\uff0c\u4f60\u53ef\u4ee5\u50cf\u4e0b\u9762\u8fd9\u6837\u8bbf\u95ee\u5b83\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/114-0.jpeg\" alt=\"prometheus-yaml-1.jpg\" \/><\/div>\n<p>\u4f60\u4e5f\u53ef\u4ee5\u6307\u5b9a\u6307\u6807\u5e76\u5c06\u5176\u663e\u793a\u5728\u56fe\u8868\u4e0a\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/116-0.jpeg\" alt=\"prometheus-yaml-2.jpg\" \/><\/div>\n<h3>Grafana\u7684\u90e8\u7f72<\/h3>\n<p>\u63a5\u4e0b\u6765\u90e8\u7f72Grafana\u3002\u6839\u636e\u4e4b\u524d\u521b\u5efa\u7684\u7528\u4e8ePrometheus\u7684Deployment\u548cService\u6587\u4ef6\uff0c\u521b\u5efa\u4e86\u7528\u4e8eGrafana\u7684\u6587\u4ef6\u3002\u4fee\u6539\u7684\u90e8\u5206\u662f\u540d\u79f0\u548c\u5bb9\u5668\u955c\u50cf\uff0c\u4ee5\u53ca\u7aef\u53e3\u53f7\u5927\u7ea6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">extensions\/v1beta1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Deployment<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana-deployment<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana-server<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana<\/span>\r\n          <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana\/grafana:latest<\/span>\r\n          <span class=\"c1\">#args:<\/span>\r\n          <span class=\"c1\">#  - \"--config.file=\/root\/prometheus.yml\"<\/span>\r\n          <span class=\"c1\">#  - \"--storage.tsdb.path=\/prometheus\/\"<\/span>\r\n          <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"pi\">-<\/span> <span class=\"na\">containerPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3000<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Service<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana-service<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span> \r\n    <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana-server<\/span>\r\n  <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">NodePort<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8100<\/span>\r\n      <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3000<\/span>\r\n      <span class=\"na\">nodePort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">30020<\/span>\r\n<\/code><\/pre>\n<p>\u90a3\u4e48\u5c31\u90e8\u7f72\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@k8s-master ~]# kubectl create -f grafana-deployment.yml -n monitoring\r\ndeployment.extensions\/grafana-deployment created\r\n[root@k8s-master ~]# kubectl get pods -n monitoring\r\nNAME                                     READY   STATUS    RESTARTS   AGE\r\ngrafana-deployment-75d8d6dcc5-hkwt7      1\/1     Running   0          11s\r\nprometheus-deployment-5cc78d984f-b5pxw   1\/1     Running   0          10m\r\n[root@k8s-master ~]# kubectl create -f grafana-service.yml -n monitoring\r\nservice\/grafana-service created\r\n[root@k8s-master ~]# kubectl get svc -n monitoring\r\nNAME                 TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE\r\ngrafana-service      NodePort   10.102.56.76    &lt;none&gt;        8100:30020\/TCP   11s\r\nprometheus-service   NodePort   10.102.96.204   &lt;none&gt;        8080:30000\/TCP   11m\r\n[root@k8s-master ~]#\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u8fd9\u4e00\u70b9\uff0c\u60a8\u73b0\u5728\u53ef\u4ee5\u4f7f\u7528Grafana\u3002\u8bf7\u901a\u8fc7GUI\u8bbf\u95eehttp:\/\/&lt;k8s-master\u7684\u5168\u5c40IP\u5730\u5740\uff1a30020&gt;\u3002\u901a\u8fc7\u767b\u5f55\u9875\u9762\u8fdb\u884c\u76f8\u540c\u7684\u8bbe\u7f6e\u540e\uff0c\u60a8\u5c06\u770b\u5230\u4ee5\u4e0b\u7684Dashboard\u663e\u793a\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/124-0.jpeg\" alt=\"prometheus-yaml-3.jpg\" \/><\/div>\n<h1>\u603b\u7ed3\u548c\u610f\u89c1<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">binary: \u516c\u5f0f\u30da\u30fc\u30b8\u304c\u63a8\u5968?\u3057\u3066\u3044\u308b\u624b\u9806\u3060\u3051\u3042\u3063\u3066\u3001\u975e\u5e38\u306b\u7c21\u5358\u306b\u8d77\u52d5\u304c\u3067\u304d\u307e\u3059\u3002\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3082\u6bd4\u8f03\u7684\u308f\u304b\u308a\u3084\u3059\u304f\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u8ffd\u52a0\u3082\u7c21\u5358\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">yaml: yaml\u30d5\u30a1\u30a4\u30eb\u306e\u6e96\u5099\u304c\u3067\u304d\u3055\u3048\u3059\u308c\u3070\u3068\u3066\u3082\u7c21\u5358\u306b\u3067\u304d\u307e\u3059\u304c\u3001yaml\u30d5\u30a1\u30a4\u30eb\u306e\u6e96\u5099\u304c\u3068\u3066\u3082\u5927\u5909\u3067\u3059\u3002<\/ul>\n<p>\u6211\u672c\u6765\u60f3\u5728YAML\u6587\u4ef6\u4e2d\u542f\u52a8Node Exporter\u5e76\u8fdb\u884c\u5ea6\u91cf\u7684\u6355\u83b7\uff0c\u4f46\u662f\u65e0\u8bba\u662f\u5199\u6cd5\u6709\u8bef\u8fd8\u662f\u5176\u4ed6\u539f\u56e0\uff0c\u90fd\u65e0\u6cd5\u6210\u529f\uff08\u867d\u7136\u90e8\u7f72\u6210\u529f\u4e86\uff0c\u4f46\u6700\u7ec8\u65e0\u6cd5\u83b7\u53d6\u5ea6\u91cf\uff09\u3002\u6211\u5c06\u7ee7\u7eed\u8c03\u67e5YAML\u6587\u4ef6\u7684\u5199\u6cd5\u3002\u4ece\u4e2a\u4eba\u89d2\u5ea6\u6765\u770b\uff0c\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u6267\u884c\u4f3c\u4e4e\u66f4\u5bb9\u6613\uff0c\u4f46\u8003\u8651\u5230\u7075\u6d3b\u6027\u548c\u914d\u7f6e\u7ba1\u7406\u7b49\u56e0\u7d20\uff0c\u4f7f\u7528YAML\u8fdb\u884c\u90e8\u7f72\u66f4\u4e3a\u65b9\u4fbf\u3002<\/p>\n<h1>\u8bf7\u53c2\u8003\u4ee5\u4e0b\u94fe\u63a5<\/h1>\n<p>\u5c1d\u8bd5\u7528Grafana\u6765\u663e\u793aPrometheus\u7684\u6570\u636e\u56fe\u8868<br \/>\n\u8bd5\u4e00\u8bd5\u4f7f\u7528Prometheus\u7684file_sd_configs<br \/>\n\u5173\u4e8eKubernetes\u7684RBAC<br \/>\n\u5728Prometheus\u4e2d\u76d1\u89c6\u6240\u6709Kubernetes\u8282\u70b9\u7684\u65b9\u6cd5<br \/>\n\u4ee5\u5bb9\u5668\u65b9\u5f0f\u542f\u52a8Prometheus\u7684\u65b9\u6cd5<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u6700\u8fd1\u6211\u8c03\u67e5\u4e86\u4e00\u4e0b\u5982\u4f55\u76d1\u63a7Kubernetes\uff0c\u7136\u540e\u60f3\u77e5\u9053\u5b9e\u9645\u7684\u4f7f\u7528\u65b9\u6cd5\uff0c\u4e8e\u662f\u5c31\u8bd5\u7740\u8fd0\u884c\u4e86\u8d77\u6765\u3002\u4f5c\u4e3a\u76d1\u63a7K [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-43262","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>\u4f7f\u7528 Prometheus+Grafana \u76d1\u63a7 Kubernetes \u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7 YAML \u6587\u4ef6\u6784\u5efa - 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\/\u4f7f\u7528-prometheusgrafana-\u76d1\u63a7-kubernetes-\u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7-yaml\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528 Prometheus+Grafana \u76d1\u63a7 Kubernetes \u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7 YAML \u6587\u4ef6\u6784\u5efa\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u6700\u8fd1\u6211\u8c03\u67e5\u4e86\u4e00\u4e0b\u5982\u4f55\u76d1\u63a7Kubernetes\uff0c\u7136\u540e\u60f3\u77e5\u9053\u5b9e\u9645\u7684\u4f7f\u7528\u65b9\u6cd5\uff0c\u4e8e\u662f\u5c31\u8bd5\u7740\u8fd0\u884c\u4e86\u8d77\u6765\u3002\u4f5c\u4e3a\u76d1\u63a7K [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528-prometheusgrafana-\u76d1\u63a7-kubernetes-\u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7-yaml\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-16T16:39:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T17:49:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/4-0.png\" \/>\n<meta name=\"author\" content=\"\u6e05, \u626c\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u626c\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 \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\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/\",\"name\":\"\u4f7f\u7528 Prometheus+Grafana \u76d1\u63a7 Kubernetes \u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7 YAML \u6587\u4ef6\u6784\u5efa - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2022-11-16T16:39:29+00:00\",\"dateModified\":\"2024-04-29T17:49:34+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528 Prometheus+Grafana \u76d1\u63a7 Kubernetes \u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7 YAML \u6587\u4ef6\u6784\u5efa\"}]},{\"@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\/cb5556d2501da73d864cac945e8d9461\",\"name\":\"\u6e05, \u626c\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u626c\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528 Prometheus+Grafana \u76d1\u63a7 Kubernetes \u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7 YAML \u6587\u4ef6\u6784\u5efa - 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\/\u4f7f\u7528-prometheusgrafana-\u76d1\u63a7-kubernetes-\u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7-yaml\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528 Prometheus+Grafana \u76d1\u63a7 Kubernetes \u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7 YAML \u6587\u4ef6\u6784\u5efa","og_description":"\u9996\u5148 \u6700\u8fd1\u6211\u8c03\u67e5\u4e86\u4e00\u4e0b\u5982\u4f55\u76d1\u63a7Kubernetes\uff0c\u7136\u540e\u60f3\u77e5\u9053\u5b9e\u9645\u7684\u4f7f\u7528\u65b9\u6cd5\uff0c\u4e8e\u662f\u5c31\u8bd5\u7740\u8fd0\u884c\u4e86\u8d77\u6765\u3002\u4f5c\u4e3a\u76d1\u63a7K [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528-prometheusgrafana-\u76d1\u63a7-kubernetes-\u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7-yaml\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-11-16T16:39:29+00:00","article_modified_time":"2024-04-29T17:49:34+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d51a137434c4406cca8b4\/4-0.png"}],"author":"\u6e05, \u626c","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u626c","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"10 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/","name":"\u4f7f\u7528 Prometheus+Grafana \u76d1\u63a7 Kubernetes \u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7 YAML \u6587\u4ef6\u6784\u5efa - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2022-11-16T16:39:29+00:00","dateModified":"2024-04-29T17:49:34+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528 Prometheus+Grafana \u76d1\u63a7 Kubernetes \u96c6\u7fa4\uff1a\u4ece\u4e8c\u8fdb\u5236\u6587\u4ef6\u542f\u52a8\uff0c\u901a\u8fc7 YAML \u6587\u4ef6\u6784\u5efa"}]},{"@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\/cb5556d2501da73d864cac945e8d9461","name":"\u6e05, \u626c","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","caption":"\u6e05, \u626c"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8-prometheusgrafana-%e7%9b%91%e6%8e%a7-kubernetes-%e9%9b%86%e7%be%a4%ef%bc%9a%e4%bb%8e%e4%ba%8c%e8%bf%9b%e5%88%b6%e6%96%87%e4%bb%b6%e5%90%af%e5%8a%a8%ef%bc%8c%e9%80%9a%e8%bf%87-yaml\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43262","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=43262"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43262\/revisions"}],"predecessor-version":[{"id":88949,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43262\/revisions\/88949"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=43262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=43262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=43262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}