{"id":43192,"date":"2023-05-18T09:19:19","date_gmt":"2023-04-14T00:55:54","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/"},"modified":"2024-04-30T04:46:08","modified_gmt":"2024-04-29T20:46:08","slug":"%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/","title":{"rendered":"\u5982\u4f55\u4ee5 Prometheus \u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8"},"content":{"rendered":"<h1>1. \u4ec0\u4e48\u662f\u666e\u7f57\u7c73\u4fee\u65af\uff1f<\/h1>\n<p>\u8fd9\u662f\u4e00\u4e2a\u76d1\u89c6\u5de5\u5177\u3002<br \/>\n\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06\u5c1d\u8bd5\u4ee5\u5bb9\u5668\u65b9\u5f0f\u542f\u52a8Prometheus\u3002<\/p>\n<h1>2. Prometheus\u7684\u914d\u7f6e<\/h1>\n<p>Prometheus\u7531Prometheus\u8fdb\u7a0b\u548c\u79f0\u4e3aExporter\u7684\u8fdb\u7a0b\u7ec4\u6210\u3002\u6b64\u5916\uff0c\u56fe\u4e2d\u7684HOST\u4ee3\u8868\u7740\u865a\u62df\u673a\u6216\u5b9e\u4f53\u673a\u5668\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"go\">  +--- Host ---+\r\n  |            |              +---------- Host -----------+\r\n  |            |&lt;------------ | Exporter(node_exporter)   |\r\n  | prometheus |              +---------------------------+\r\n  |     A      |\r\n  |     |      |              +---------- Host -----------+\r\n  |     |      |&lt;------------ | Exporter(mysqld_exporter) |\r\n  +-----|------+              +---------------------------+\r\n        |\r\n  +------------+\r\n  | web browser|\r\n  +------------+\r\n<\/span><\/code><\/pre>\n<p>\u30fbPrometheus\u662f\u5411Exporter\u8bf7\u6c42\u4fe1\u606f\u7684\u8fc7\u7a0b\u3002<br \/>\n\u30fbExporter\u662f\u6536\u96c6\u4fe1\u606f\u5e76\u5c06\u6536\u96c6\u5230\u7684\u4fe1\u606f\u53d1\u9001\u7ed9Prometheus\u7684\u8fc7\u7a0b\u3002<br \/>\nExporter\u6709\u5404\u79cd\u7c7b\u578b\uff0c\u5305\u62ec\u7528\u4e8e\u6536\u96c6\u5185\u5b58\u3001\u78c1\u76d8\u8bbf\u95ee\u72b6\u6001\u4fe1\u606f\u7684Exporter\uff08node_exporter\uff09\uff0c\u4ee5\u53ca\u7528\u4e8e\u7279\u5b9a\u6570\u636e\u5e93\u7684Exporter\uff08mysqld_exporter\uff09\u7b49\u3002<\/p>\n<p>\u8bf7\u53c2\u8003\u4ee5\u4e0b\u94fe\u63a5\u4ee5\u83b7\u53d6Exporter\u7684\u5217\u8868\uff1a<br \/>\nhttps:\/\/prometheus.io\/docs\/instrumenting\/exporters\/<\/p>\n<h1>\u4f7f\u7528node_exporter\u6765\u76d1\u89c6\u4e3b\u673a<\/h1>\n<p>\u4e3a\u4e86\u76d1\u63a7\u4e3b\u673a\u7684\u5185\u5b58\u548c\u78c1\u76d8\u8bbf\u95ee\u60c5\u51b5\uff0c\u6211\u4eec\u4f7f\u7528\u4e00\u4e2a\u540d\u4e3anode_exporter\u7684\u51fa\u53e3\u7a0b\u5e8f\u3002<\/p>\n<h2>3.1 \u73af\u5883<\/h2>\n<pre class=\"post-pre\"><code><span class=\"go\">master1,master2\u306f\u4eee\u60f3\u30de\u30b7\u30f3\u3067\u3059\u3002OS\u306fCentOS7.2\u3067\u3059\u3002\r\n\u306a\u304a\u3001master1,master2\u306f\u30db\u30b9\u30c8\u540d\u3067\u3059\u3002\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">\u30dd\u30fc\u30c8\u756a\u53f7\u306f\u305d\u308c\u305e\u308c\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059\u3002\r\n  - prometheus:9090\r\n  - node_exporter:9100\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">                  +-------- master1 ---------+    +-------- master2 ---------+\r\n                  |                          |    |                          |\r\n +-------------+  | +----------+  +--------+ |    |  +--------+              |\r\n | web browser |  | |prometheus|  |  node  | |    |  |  node  |              |\r\n +-------------+  | |          |  |exporter| |    |  |exporter|              |\r\n        A         | +-- 9090 --+  +- 9100 -+ |    |  +- 9100 -+              |\r\n        |         |   A   A A         A      |    |      A                   |\r\n        |         |   |   | |         |      |    |      |                   |\r\n        |         |   |   | +---------+      |    |      |                   |\r\n        |         |   |   |                  |    |      |                   |\r\n        |         |   |   |                  |    |      |                   |\r\n        |         |   |   |                  |    |      |                   |\r\n        |         +---|---|-- eth0 ----------+    +------|--- eth0 ----------+\r\n        |             |   |    | .10                     |     | .20\r\n        |             |   |    |                         |     |\r\n        +-------------+   +------------------------------+     |\r\n                               |                               |\r\n    ---------------------------+-------------------------------+--------------\r\n                                       192.168.0.0\/24\r\n<\/span><\/code><\/pre>\n<h2>3.2 Node Exporter\u5bb9\u5668\u7684\u542f\u52a8\u6b65\u9aa4\u3002<\/h2>\n<pre class=\"post-pre\"><code><span class=\"go\">master1\u3067\u30b3\u30f3\u30c6\u30ca(node_exporter)\u3092\u8d77\u52d5\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 ~]#<\/span> docker run <span class=\"nt\">-d<\/span> <span class=\"nt\">-p<\/span> 9100:9100 <span class=\"nt\">--net<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"host\"<\/span> prom\/node-exporter\r\n<span class=\"go\">310a1ef0c0e8ed17dbc6b0a843b9a97bd5a58d6fd0690c2f62bd196b3048fc1f\r\n\r\n\u30b3\u30f3\u30c6\u30ca\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 ~]#<\/span> docker ps\r\n<span class=\"go\">CONTAINER ID        IMAGE                COMMAND                CREATED             STATUS              PORTS               NAMES\r\n310a1ef0c0e8        prom\/node-exporter   \"\/bin\/node_exporter\"   26 seconds ago      Up 7 seconds                            ecstatic_lamarr\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">master2\u3067\u30b3\u30f3\u30c6\u30ca(node_exporter)\u3092\u8d77\u52d5\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master2 ~]#<\/span> docker run <span class=\"nt\">-d<\/span> <span class=\"nt\">-p<\/span> 9100:9100 <span class=\"nt\">--net<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"host\"<\/span> prom\/node-exporter\r\n<span class=\"go\">65801b8c1c5eba173c9a21680eb9820ba54e59134f69283c7c2a9e85e83e6638\r\n\r\n\u30b3\u30f3\u30c6\u30ca\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master2 ~]#<\/span> docker ps\r\n<span class=\"go\">CONTAINER ID        IMAGE                COMMAND                CREATED             STATUS              PORTS               NAMES\r\n65801b8c1c5e        prom\/node-exporter   \"\/bin\/node_exporter\"   28 seconds ago      Up 22 seconds                           grave_ride\r\n<\/span><\/code><\/pre>\n<p>\u53ea\u9700\u8981\u4e00\u79cd\u9009\u9879\uff1a<br \/>\n\u4ec5\u7f16\u8f91\u4ee5\u4e0b\u76ee\u6807\u76842\u884c(\u2605\u6807\u8bb0)\u3002<br \/>\n\u6307\u5b9a\u6b63\u5728\u8fd0\u884cnode_exporter\u7684\u4e3b\u673a\u7684IP\u5730\u5740\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"go\">\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 ~]#<\/span> <span class=\"nb\">cd<\/span> \/tmp\/\r\n<span class=\"gp\">[root@master1 tmp]#<\/span> wget https:\/\/raw.githubusercontent.com\/prometheus\/prometheus\/master\/documentation\/examples\/prometheus.yml\r\n<span class=\"go\">\r\n\u30d5\u30a1\u30a4\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 tmp]#<\/span> <span class=\"nb\">ls <\/span>prometheus.yml\r\n<span class=\"go\">prometheus.yml\r\n\r\n\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb(prometheus.yml)\u3092\u7de8\u96c6\u3059\u308b\u3002\r\n\u7de8\u96c6\u7b87\u6240\u306ftargets\u306e2\u884c(\u4e0b\u8a18\u2605\u5370)\u306e\u307f\u3002node_exporter\u304c\u52d5\u4f5c\u3057\u3066\u3044\u308b\u30db\u30b9\u30c8\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u6307\u5b9a\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 tmp]#<\/span> vi prometheus.yml\r\n<span class=\"gp\">[root@master1 tmp]#<\/span> <span class=\"nb\">cat <\/span>prometheus.yml\r\n<span class=\"gp\">#<\/span> my global config\r\n<span class=\"go\">global:\r\n<\/span><span class=\"gp\">  scrape_interval:     15s #<\/span> Set the scrape interval to every 15 seconds. Default is every 1 minute.\r\n<span class=\"gp\">  evaluation_interval: 15s #<\/span> Evaluate rules every 15 seconds. The default is every 1 minute.\r\n<span class=\"gp\">  #<\/span> scrape_timeout is <span class=\"nb\">set <\/span>to the global default <span class=\"o\">(<\/span>10s<span class=\"o\">)<\/span><span class=\"nb\">.<\/span>\r\n\r\n<span class=\"gp\">  #<\/span> Attach these labels to any <span class=\"nb\">time <\/span>series or alerts when communicating with\r\n<span class=\"gp\">  #<\/span> external systems <span class=\"o\">(<\/span>federation, remote storage, Alertmanager<span class=\"o\">)<\/span><span class=\"nb\">.<\/span>\r\n<span class=\"go\">  external_labels:\r\n      monitor: 'codelab-monitor'\r\n\r\n<\/span><span class=\"gp\">#<\/span> Load rules once and periodically evaluate them according to the global <span class=\"s1\">'evaluation_interval'<\/span><span class=\"nb\">.<\/span>\r\n<span class=\"go\">rule_files:\r\n<\/span><span class=\"gp\">  #<\/span> - <span class=\"s2\">\"first.rules\"<\/span>\r\n<span class=\"gp\">  #<\/span> - <span class=\"s2\">\"second.rules\"<\/span>\r\n\r\n<span class=\"gp\">#<\/span> A scrape configuration containing exactly one endpoint to scrape:\r\n<span class=\"gp\">#<\/span> Here it<span class=\"s1\">'s Prometheus itself.\r\n<\/span><span class=\"go\">scrape_configs:\r\n<\/span><span class=\"gp\">  #<\/span> The job name is added as a label <span class=\"sb\">`<\/span><span class=\"nv\">job<\/span><span class=\"o\">=<\/span>&lt;job_name&gt;<span class=\"sb\">`<\/span> to any timeseries scraped from this config.\r\n<span class=\"go\">  - job_name: 'prometheus'\r\n\r\n<\/span><span class=\"gp\">    #<\/span> metrics_path defaults to <span class=\"s1\">'\/metrics'<\/span>\r\n<span class=\"gp\">    #<\/span> scheme defaults to <span class=\"s1\">'http'<\/span><span class=\"nb\">.<\/span>\r\n<span class=\"go\">\r\n    static_configs:\r\n      - targets: ['192.168.0.10:9100'] \u2605\r\n      - targets: ['192.168.0.20:9100'] \u2605\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"gp\">[root@master1 tmp]#<\/span> docker run <span class=\"nt\">-d<\/span> <span class=\"nt\">-p<\/span> 9090:9090 <span class=\"nt\">-v<\/span> \/tmp\/prometheus.yml:\/etc\/prometheus\/prometheus.yml prom\/prometheus\r\n<span class=\"go\">3190e11e8c7af01e8f8785fa1787ee38d5e2d04433a5bd5c5a160d17cab4a208\r\n<\/span><\/code><\/pre>\n<h2>3.3 \u786e\u5b9a\u64cd\u4f5c\u662f\u5426\u6709\u6548\u3002<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d511037434c4406cc891e\/20-0.png\" alt=\"prometheus.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d511037434c4406cc891e\/21-0.png\" alt=\"prometheus-status.png\" \/><\/div>\n<h1>\u76d1\u63a7Kubernetes\u548cetcd<\/h1>\n<p>\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06\u8bf4\u660e\u5982\u4f55\u6dfb\u52a0\u5bf9kubernetes\u548cetcd\u76d1\u89c6\u9879\u76ee\u7684\u6b65\u9aa4\uff0c\u9664\u4e86\u6dfb\u52a0node-exporter\u3002<br \/>\n\u7531\u4e8ekubernetes\u548cetcd\u5177\u6709\u4e0eprometheus\u8fdb\u884c\u4fe1\u606f\u6536\u96c6\u7684\u63a5\u53e3\uff0c\u56e0\u6b64\u4e0d\u9700\u8981\u9488\u5bf9kubernetes\u548cetcd\u7684Exporter\u3002<\/p>\n<h2>4.1 \u73af\u5883<\/h2>\n<pre class=\"post-pre\"><code><span class=\"go\">master1,master2\u306f\u4eee\u60f3\u30de\u30b7\u30f3\u3002OS\u306fCentOS7.2\u3067\u3059\u3002\r\n\u306a\u304a\u3001master1,master2\u306f\u30db\u30b9\u30c8\u540d\u3067\u3059\u3002\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">\u4f7f\u7528\u3059\u308b\u30dd\u30fc\u30c8\u756a\u53f7\u306f\u305d\u308c\u305e\u308c\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059\u3002\r\n  - prometheus:9090\r\n  - node_exporter:9100\r\n  - kube-proxy:30900\r\n<\/span><span class=\"gp\">     =&gt;<\/span> kube-proxy\u304ciptables\u306b\u5bfe\u3057\u3066DNAT<span class=\"o\">(<\/span>\u5b9b\u5148\u30dd\u30fc\u30c8\u756a\u53f7\u309230900\u304b\u30899090\u306b\u5909\u63db<span class=\"o\">)<\/span>\u3092\u8a2d\u5b9a\u3059\u308b\u3002\r\n<\/code><\/pre>\n<p>master1\u5145\u5f53\u4e3b\u8282\u70b9\u89d2\u8272\uff0cmaster2\u5145\u5f53\u4ece\u8282\u70b9\u89d2\u8272\u3002<br \/>\n\u6362\u53e5\u8bdd\u8bf4\uff0ckube-apiserver\u5728master1\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"go\">                  +-------- master1 ---------+    +-------- master2 ---------+\r\n                  |                          |    |                          |\r\n +-------------+  | +----------+  +--------+ |    |  +--------+              |\r\n | web browser |  | |prometheus|  |  node  | |    |  |  node  |              |\r\n +-------------+  | |          |  |exporter| |    |  |exporter|              |\r\n        A         | +-- 9090 --+  +- 9100 -+ |    |  +- 9100 -+              |\r\n        |         |   A   A A A       A      |    |      A                   |\r\n        |         |   |   | | |       |      |    |      |                   |\r\n        |         |   |   | | +-------+      |    |      |                   |\r\n        |         |   |   | |                |    |      |                   |\r\n        |         |   |   | |     +--------+ |    |      |                   |\r\n<\/span><span class=\"gp\">        |         |   |   | +---&gt;<\/span> |  etcd  | |    |      |                   |\r\n<span class=\"go\">        |         |   |   |       +- 2379 -+ |    |      |                   |\r\n        |         |   |   |                  |    |      |                   |\r\n        |         | +----------+             |    |      |                   |\r\n        |         | |kube-proxy|             |    |      |                   |\r\n        |         | +-- 30900 -+             |    |      |                   |\r\n        |         |   |   |                  |    |      |                   |\r\n        |         +---|---|-- eth0 ----------+    +------|--- eth0 ----------+\r\n        |             |   |    | .10                     |     | .20\r\n        |             |   |    |                         |     |\r\n        +-------------+   +------------------------------+     |\r\n                               |                               |\r\n    ---------------------------+-------------------------------+--------------\r\n                                       192.168.0.0\/24\r\n<\/span><\/code><\/pre>\n<h2>4.2 \u5b89\u88c5\u6b65\u9aa4<\/h2>\n<p>\u5728master1\u4e0a\u6267\u884c\u3002\u5b89\u88c5\u6b65\u9aa4\u53c2\u8003\u4ee5\u4e0b\u6587\u7ae0\uff1ahttps:\/\/coreos.com\/blog\/prometheus-and-kubernetes-up-and-running.html\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"go\">configmap\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> wget https:\/\/coreos.com\/assets\/blog\/promk8s\/prometheus-configmap-1.yaml\r\n<span class=\"go\">-\u4ee5\u4e0b\u3001\u7565-\r\n\r\ndeployment\u3068service\u3092\u5b9a\u7fa9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> wget https:\/\/coreos.com\/assets\/blog\/promk8s\/prometheus-deployment.yaml\r\n<span class=\"go\">-\u4ee5\u4e0b\u3001\u7565-\r\n\r\nnode_exporter\u306e\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> wget https:\/\/coreos.com\/assets\/blog\/promk8s\/node-exporter.yaml\r\n<span class=\"go\">-\u4ee5\u4e0b\u3001\u7565-\r\n\r\n\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> <span class=\"nb\">ls<\/span>\r\n<span class=\"go\">node-exporter.yaml  prometheus-configmap-1.yaml  prometheus-deployment.yaml\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">nodeSelector\u3092\u4f7f\u3063\u3066\u3001prometheus\u304cmaster1\u3067\u52d5\u304f\u3088\u3046\u306b\u3059\u308b\u3002\r\n\u5404\u30db\u30b9\u30c8\u306e\u30e9\u30d9\u30eb\u3092\u8868\u793a\u3059\u308b\u3002master1\u306f\"kubernetes.io\/hostname=master1\"\u3067\u3042\u308b\u3053\u3068\u304c\u308f\u304b\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> kubectl get node <span class=\"nt\">--show-labels<\/span>\r\n<span class=\"go\">NAME      STATUS    AGE       LABELS\r\nmaster1   Ready     2h        kubernetes.io\/hostname=master1\r\nmaster2   Ready     2h        kubernetes.io\/hostname=master2\r\n\r\nnodeSelector\u3092\u8ffd\u52a0\u3059\u308b\uff08\u4e0b\u8a18\"\u65b0\u898f\u8ffd\u52a0\"\u306e\u90e8\u5206)\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> vi prometheus-deployment.yaml\r\n<span class=\"go\">-\u4e2d\u7565-\r\n    spec:\r\n      containers:\r\n      - name: prometheus\r\n        image: quay.io\/coreos\/prometheus:0.19.2\r\n        args:\r\n          - '-storage.local.retention=6h'\r\n          - '-storage.local.memory-chunks=500000'\r\n          - '-config.file=\/etc\/prometheus\/prometheus.yml'\r\n        ports:\r\n        - name: web\r\n          containerPort: 9090\r\n        volumeMounts:\r\n        - name: config-volume\r\n          mountPath: \/etc\/prometheus\r\n<\/span><span class=\"gp\">      nodeSelector:                      #<\/span>\u65b0\u898f\u8ffd\u52a0\r\n<span class=\"gp\">        kubernetes.io\/hostname: master1  #<\/span>\u65b0\u898f\u8ffd\u52a0\r\n<span class=\"go\">      volumes:\r\n      - name: config-volume\r\n        configMap:\r\n          name: prometheus\r\n-\u4ee5\u4e0b\u3001\u7565-\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">configmap\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> vi prometheus-configmap-1.yaml\r\n<span class=\"go\">\r\n    - job_name: 'etcd'\r\n      target_groups:\r\n      - targets:\r\n<\/span><span class=\"gp\">        - 192.168.0.10:2379      #<\/span>\u5909\u66f4 <span class=\"o\">(<\/span>172.17.4.51:2379 <span class=\"o\">=&gt;<\/span> 192.168.0.10:2379<span class=\"o\">)<\/span>\r\n\r\n<span class=\"gp\">    - job_name: 'node_exporter'  #<\/span>\u65b0\u898f\u8ffd\u52a0\r\n<span class=\"gp\">      target_groups:             #<\/span>\u65b0\u898f\u8ffd\u52a0\r\n<span class=\"gp\">      - targets:                 #<\/span>\u65b0\u898f\u8ffd\u52a0\r\n<span class=\"gp\">        - 192.168.0.10:9100      #<\/span>\u65b0\u898f\u8ffd\u52a0\r\n<span class=\"gp\">        - 192.168.0.20:9100      #<\/span>\u65b0\u898f\u8ffd\u52a0\r\n<span class=\"go\">\r\n    - job_name: 'kubernetes_components'\r\n      kubernetes_sd_configs:\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">configmap\u30ea\u30bd\u30fc\u30b9\u3092\u4f5c\u6210\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> kubectl create <span class=\"nt\">-f<\/span> prometheus-configmap-1.yaml\r\n<span class=\"go\">configmap \"prometheus\" created\r\n\r\n\u4f5c\u6210\u3057\u305f\u30ea\u30bd\u30fc\u30b9\u3092\u78ba\u8a8d\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> kubectl get configmap\r\n<span class=\"go\">NAME         DATA      AGE\r\nprometheus   1         12s\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">deployment\u3068service\u30ea\u30bd\u30fc\u30b9\u3092\u4f5c\u6210\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> kubectl create <span class=\"nt\">-f<\/span> prometheus-deployment.yaml\r\n<span class=\"go\">You have exposed your service on an external port on all nodes in your\r\ncluster.  If you want to expose this service to the external internet, you may\r\nneed to set up firewall rules for the service port(s) (tcp:30900) to serve traffic.\r\n\r\nSee http:\/\/releases.k8s.io\/release-1.2\/docs\/user-guide\/services-firewalls.md for more details.\r\nservice \"prometheus\" created\r\ndeployment \"prometheus\" created\r\n\r\n\u4f5c\u6210\u3057\u305fdeployment\u3092\u78ba\u8a8d\u3059\u308b\u3002\"prometheus\"\u3068\u3044\u3046deployment\u304c\u4f5c\u6210\u3055\u308c\u305f\u3053\u3068\u304c\u308f\u304b\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> kubectl get deployment\r\n<span class=\"go\">NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE\r\nprometheus   1         1         1            1           24s\r\n\r\n\u4f5c\u6210\u3057\u305fservice\u3092\u78ba\u8a8d\u3059\u308b\u3002\"prometheus\"\u3068\u3044\u3046service\u304c\u4f5c\u6210\u3055\u308c\u305f\u3053\u3068\u304c\u308f\u304b\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> kubectl get svc\r\n<span class=\"go\">NAME         CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE\r\n<\/span><span class=\"gp\">kubernetes   10.254.0.1      &lt;none&gt;<\/span>        443\/TCP    1d\r\n<span class=\"go\">prometheus   10.254.149.17   nodes         9090\/TCP   32s\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">service\u3068daemonset\u30ea\u30bd\u30fc\u30b9\u3092\u4f5c\u6210\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> kubectl create <span class=\"nt\">-f<\/span> node-exporter.yaml\r\n<span class=\"go\">service \"node-exporter\" created\r\ndaemonset \"node-exporter\" created\r\n\r\n\u4f5c\u6210\u3057\u305fservice\u3092\u78ba\u8a8d\u3059\u308b\u3002\"node-exporter\"\u3068\u3044\u3046service\u304c\u4f5c\u6210\u3055\u308c\u305f\u3053\u3068\u304c\u308f\u304b\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> kubectl get svc\r\n<span class=\"go\">NAME            CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE\r\n<\/span><span class=\"gp\">kubernetes      10.254.0.1      &lt;none&gt;<\/span>        443\/TCP    1d\r\n<span class=\"gp\">node-exporter   None            &lt;none&gt;<\/span>        9100\/TCP   1m\r\n<span class=\"go\">prometheus      10.254.149.17   nodes         9090\/TCP   3m\r\n\r\n\u4f5c\u6210\u3057\u305fdaemonset\u3092\u78ba\u8a8d\u3059\u308b\u3002\"node-exporter\"\u3068\u3044\u3046service\u304c\u4f5c\u6210\u3055\u308c\u305f\u3053\u3068\u304c\u308f\u304b\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> kubectl get daemonset\r\n<span class=\"go\">NAME            DESIRED   CURRENT   NODE-SELECTOR   AGE\r\n<\/span><span class=\"gp\">node-exporter   1         1         &lt;none&gt;<\/span>          48s\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">master1\u3001master2\u3067node_exporter\u304c\u52d5\u4f5c\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> kubectl get pod <span class=\"nt\">-o<\/span> wide\r\n<span class=\"go\">NAME                          READY     STATUS    RESTARTS   AGE       NODE\r\nnode-exporter-6hh05           1\/1       Running   0          47s       master2\r\nnode-exporter-w66rw           1\/1       Running   0          1h        master1\r\nprometheus-1189099554-6xt11   1\/1       Running   1          1h        master1\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"go\">kube-proxy\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u78ba\u8a8d\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> lsof <span class=\"nt\">-i<\/span>:30900\r\n<span class=\"go\">COMMAND    PID USER   FD   TYPE DEVICE SIZE\/OFF NODE NAME\r\nkube-prox 1024 root    7u  IPv6  26028      0t0  TCP *:30900 (LISTEN)\r\n\r\nnode_exporter\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u78ba\u8a8d\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> lsof <span class=\"nt\">-i<\/span>:9100\r\n<span class=\"go\">COMMAND    PID USER   FD   TYPE DEVICE SIZE\/OFF NODE NAME\r\nnode_expo 2444 root    3u  IPv6  32252      0t0  TCP *:jetdirect (LISTEN)\r\n\r\netcd\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u78ba\u8a8d\u3059\u308b\u3002\r\n<\/span><span class=\"gp\">[root@master1 prometheus]#<\/span> lsof <span class=\"nt\">-i<\/span>:2379\r\n<span class=\"go\">COMMAND    PID USER   FD   TYPE DEVICE SIZE\/OFF NODE NAME\r\netcd      1027 etcd    7u  IPv6  20991      0t0  TCP *:2379 (LISTEN)\r\n<\/span><\/code><\/pre>\n<h2>4.3 \u52a8\u4f5c\u786e\u8ba4<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d511037434c4406cc891e\/40-0.png\" alt=\"prometheus_kubernetes_etcd.png\" \/><\/div>\n<p>30900\u662fkube-proxy\u76d1\u542c\u7684TCP\u7aef\u53e3\u53f7\u3002<br \/>\n\u5f53kube-proxy\u63a5\u6536\u523030900\u7aef\u53e3\u7684\u6570\u636e\u5305\u65f6\uff0c\u4f1a\u5c06\u76ee\u6807\u7aef\u53e3\u53f7\u8f6c\u6362\u4e3a9090\uff08DNAT\uff09\u3002<br \/>\n\u7136\u540e\u5c06\u76ee\u6807\u7aef\u53e3\u53f7\u4e3a9090\u7684\u6570\u636e\u5305\u8f6c\u53d1\u5230prometheus\u8fdb\u7a0b\u3002<\/p>\n<h2>4.4 \u95ee\u9898<\/h2>\n<p>\uff081\uff09\u65e0\u6cd5\u663e\u793akube-apiserver\u7684\u4fe1\u606f\u3002<br \/>\n\u80fd\u591f\u663e\u793aetcd\u548cnode_exporter\u7684\u4fe1\u606f\u3002<br \/>\n\u53ef\u80fd\u662f\u56e0\u4e3a\u65e0\u6cd5\u6b63\u786e\u914d\u7f6e\u5bf9kube-apiserver\u7684https\u8bbf\u95ee\uff08\u6b63\u5728\u8c03\u67e5\u4e2d\uff09\u3002<\/p>\n<h1>5. \u53c2\u8003\u8d44\u6599<\/h1>\n<p>Prometheus<br \/>\n\u8282\u70b9\u5bfc\u51fa\u5668<br \/>\nPrometheus\u548cKubernetes\u5df2\u7ecf\u8fd0\u884c\u8d77\u6765\u4e86<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. \u4ec0\u4e48\u662f\u666e\u7f57\u7c73\u4fee\u65af\uff1f \u8fd9\u662f\u4e00\u4e2a\u76d1\u89c6\u5de5\u5177\u3002 \u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06\u5c1d\u8bd5\u4ee5\u5bb9\u5668\u65b9\u5f0f\u542f\u52a8Prometheus\u3002 2. P [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-43192","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>\u5982\u4f55\u4ee5 Prometheus \u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8 - 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\/\u5982\u4f55\u4ee5-prometheus-\u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5982\u4f55\u4ee5 Prometheus \u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8\" \/>\n<meta property=\"og:description\" content=\"1. \u4ec0\u4e48\u662f\u666e\u7f57\u7c73\u4fee\u65af\uff1f \u8fd9\u662f\u4e00\u4e2a\u76d1\u89c6\u5de5\u5177\u3002 \u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06\u5c1d\u8bd5\u4ee5\u5bb9\u5668\u65b9\u5f0f\u542f\u52a8Prometheus\u3002 2. P [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5982\u4f55\u4ee5-prometheus-\u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-14T00:55:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T20:46:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d511037434c4406cc891e\/20-0.png\" \/>\n<meta name=\"author\" content=\"\u79d1, \u9896\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u79d1, \u9896\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \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%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/\",\"name\":\"\u5982\u4f55\u4ee5 Prometheus \u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-04-14T00:55:54+00:00\",\"dateModified\":\"2024-04-29T20:46:08+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5982\u4f55\u4ee5 Prometheus \u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8\"}]},{\"@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\/8ca01ba7f7362ad4edb7da206a12f29e\",\"name\":\"\u79d1, \u9896\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"caption\":\"\u79d1, \u9896\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5982\u4f55\u4ee5 Prometheus \u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8 - 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\/\u5982\u4f55\u4ee5-prometheus-\u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5982\u4f55\u4ee5 Prometheus \u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8","og_description":"1. \u4ec0\u4e48\u662f\u666e\u7f57\u7c73\u4fee\u65af\uff1f \u8fd9\u662f\u4e00\u4e2a\u76d1\u89c6\u5de5\u5177\u3002 \u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06\u5c1d\u8bd5\u4ee5\u5bb9\u5668\u65b9\u5f0f\u542f\u52a8Prometheus\u3002 2. P [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5982\u4f55\u4ee5-prometheus-\u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-04-14T00:55:54+00:00","article_modified_time":"2024-04-29T20:46:08+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d511037434c4406cc891e\/20-0.png"}],"author":"\u79d1, \u9896","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u9896","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"5 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/","name":"\u5982\u4f55\u4ee5 Prometheus \u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-04-14T00:55:54+00:00","dateModified":"2024-04-29T20:46:08+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5982\u4f55\u4ee5 Prometheus \u4f5c\u4e3a\u5bb9\u5668\u8fdb\u884c\u542f\u52a8"}]},{"@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\/8ca01ba7f7362ad4edb7da206a12f29e","name":"\u79d1, \u9896","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","caption":"\u79d1, \u9896"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e4%bb%a5-prometheus-%e4%bd%9c%e4%b8%ba%e5%ae%b9%e5%99%a8%e8%bf%9b%e8%a1%8c%e5%90%af%e5%8a%a8\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43192","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\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=43192"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43192\/revisions"}],"predecessor-version":[{"id":89771,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43192\/revisions\/89771"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=43192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=43192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=43192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}