{"id":43277,"date":"2023-02-03T13:53:54","date_gmt":"2023-11-15T12:54:44","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/"},"modified":"2024-04-29T12:55:49","modified_gmt":"2024-04-29T04:55:49","slug":"%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/","title":{"rendered":"\u4f7f\u7528Prometheus+Grafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86AKS\u4e0aNGINX\u548cRedis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\u63a7"},"content":{"rendered":"<p>\u6211\u5728\u4e0b\u9762URL\u7684Hatenablog\u4e0a\u5199\u4e86\u540c\u6837\u7684\u6587\u7ae0\uff1a<br \/>\n<iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" title=\"\uff11\u65e5\u3067AKS\u4e0a\u306eNGINX\u3001Redis\u30c7\u30e2\u30a2\u30d7\u30ea\u76e3\u8996\u3092Prometheus+Grafana\u3067\u691c\u8a3c\u3059\u308b - kashinoki38 blog\" src=\"https:\/\/hatenablog-parts.com\/embed?url=https%3A%2F%2Fkashionki38.hatenablog.com%2Fentry%2F2020%2F03%2F01%2F003812#?secret=r7K5fcsuts\" data-secret=\"r7K5fcsuts\" scrolling=\"no\" frameborder=\"0\"><\/iframe><\/p>\n<p>\u6211\u6b63\u5728\u9a8c\u8bc1\u5e76\u63d0\u51fa\u4e00\u79cd\u76d1\u63a7k8s\u7684\u65b9\u6cd5\u3002<\/p>\n<p>\u5982\u679c\u4f60\u6025\u4e8e\u51c6\u5907\u793a\u5a01\u6d3b\u52a8\uff0c\u5e76\u4e14\u5e0c\u671b\u901a\u8fc7OSS\u8fdb\u884c\u76d1\u63a7\uff0c\u90a3\u4e48\u552f\u4e00\u7684\u9009\u62e9\u5c31\u662fPrometheus\u3002\u56e0\u6b64\uff0c\u6211\u5f00\u59cb\u5728\u6211\u7684\u73af\u5883\u4e2d\u8fdb\u884c\u51c6\u5907\u5de5\u4f5c\u3002<\/p>\n<p>\u7531\u4e8e\u6700\u7ec8\u60f3\u8981\u8fdb\u884c\u8ffd\u8e2a\uff0c\u6240\u4ee5\u6211\u4eec\u51b3\u5b9a\u8f6c\u5411\u5f15\u5165Istio\uff0c\u8fd9\u5c06\u5728\u53e6\u4e00\u7bc7\u6587\u7ae0\u4e2d\u8fdb\u884c\u8ba8\u8bba\u3002<\/p>\n<p>\u8bf7\u7528\u4e2d\u6587\u5c06\u4ee5\u4e0b\u5185\u5bb9\u8bd1\u8ff0\uff0c\u53ea\u9700\u7ed9\u51fa\u4e00\u79cd\u9009\u9879\u3002<\/p>\n<p>To achieve success, you need to constantly challenge yourself and think outside the box. Additionally, always strive for improvement and never settle for mediocrity. Aim high and work hard to make your dreams come true. Success comes to those who are willing to put in the effort and embrace continuous growth.<\/p>\n<h3>\u6f14\u793a\u73af\u5883<\/h3>\n<p>\u4e00\u5f00\u59cb\u6211\u5bf9\u4e8e\u642d\u5efak8s\u73af\u5883\u4e00\u65e0\u6240\u77e5\uff0c\u4e0d\u77e5\u9053\u8be5\u600e\u4e48\u529e\uff0c\u4f46\u8003\u8651\u5230AKS\u5f15\u64ce\u5728VM\u4e0a\u7684\u9009\u62e9\uff0c\u6211\u51b3\u5b9a\u4eceAKS\u5f00\u59cb\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d517c37434c4406cca095\/8-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u56e0\u4e3aAKS\u80fd\u591f\u521b\u5efa\u8fd9\u6837\u7684\u6295\u7968\u5e94\u7528\u7a0b\u5e8f\u6f14\u793a\uff0c\u6240\u4ee5\u6211\u4eec\u51b3\u5b9a\u4f7f\u7528Prometheus\u6765\u76d1\u63a7\u5b83\u3002<\/p>\n<p>\u6309\u7167\u5404\u79cd\u6f14\u793a\u7684\u6b65\u9aa4\u8fdb\u884c\u4e0b\u53bb\uff0c\u5c31\u4f1a\u751f\u6210\u8fd9\u6837\u7684Pod\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl get po\r\nNAME READY STATUS RESTARTS AGE\r\nazure-vote-back-679f7b955f-pwdpd 3\/3 Running 0 2d1h\r\nazure-vote-front-b47b4fbf8-4c8rk 3\/3 Running 1 27h\r\n<\/code><\/pre>\n<p>azure-vote-front\u5305\u542b\u4e86nginx\u548cPython\u7684flask\uff0cazure-vote-back\u5219\u5305\u542b\u4e86Redis\uff0c\u770b\u8d77\u6765\u662f\u4e00\u4e2a\u4e24\u5c42\u67b6\u6784\u3002<\/p>\n<p>\u987a\u4fbf\u8bf4\u4e00\u4e0b\uff0c\u5728Windows\u4e0a\u8fd0\u884ckubectl\u65f6\uff0c\u6211\u6700\u521d\u4f7f\u7528\u7684\u662fgit bash\uff0c\u4f46\u5982\u679c\u4f60\u4f7f\u7528\u7684\u662fWindows10\uff0c\u6211\u5efa\u8bae\u4f60\u5728WSL\u4e0a\u4f7f\u7528Ubuntu\u63a7\u5236\u53f0\u6765\u8fd0\u884c\u5b83\u3002<br \/>\n\u4f60\u53ef\u4ee5\u4f7f\u7528\u4e00\u4e9b\u5728watch\u548cgit bash\u4e2d\u65e0\u6cd5\u4f7f\u7528\u7684\u547d\u4ee4\uff0c\u800c\u4e14\u5c3d\u7ba1\u8fd9\u662f\u4e00\u4e2a\u4e0d\u540c\u7684\u6587\u7ae0\uff0c\u4f46\u5b89\u88c5istioctl\u4e5f\u5f88\u7b80\u5355\u3002<\/p>\n<h3>\u901a\u8fc7Helm\u5b89\u88c5Prometheus<\/h3>\n<p>\u6211\u6253\u7b97\u5c1d\u8bd5\u4f7f\u7528helm\u8fdb\u884c\u5b89\u88c5\uff0c\u56e0\u4e3a\u5b83\u5f88\u65b9\u4fbf\uff0c\u6211\u60f3\u5f15\u5165prometheus-operator\u8fd9\u4e2acharts\u3002\u60a8\u53ef\u4ee5\u5728https:\/\/github.com\/helm\/charts\/tree\/master\/stable\/prometheus-operator \u4e0a\u627e\u5230\u5b83\u3002<\/p>\n<p>\u6211\u4f1a\u5728\u53c2\u8003\u8fd9\u4e2a\u7f51\u5740\u7684\u60c5\u51b5\u4e0b\u5c1d\u8bd5\u7ee7\u7eed\u8fdb\u884c\u3002<\/p>\n<p>\u4f7f\u7528helm install\u5373\u53ef\u5b8c\u6210\u5b89\u88c5\u672c\u8eab\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>helm <span class=\"nb\">install <\/span>pg-op stable\/prometheus-operator\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u5f53\u524d\u662f\u4ec0\u4e48\u5728\u91cc\u9762\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl get all\r\nNAME                                                        READY   STATUS    RESTARTS   AGE\r\npod\/alertmanager-pg-op-prometheus-operator-alertmanager-0   2\/2     Running   0          10m\r\npod\/azure-vote-back-5966fd4fd4-d87zv                        1\/1     Running   0          94m\r\npod\/azure-vote-front-67fc95647d-sgr42                       1\/1     Running   0          94m\r\npod\/pg-op-grafana-5b75f465d7-wq9rf                          2\/2     Running   0          11m\r\npod\/pg-op-kube-state-metrics-5fc85698d4-pjmzr               1\/1     Running   0          11m\r\npod\/pg-op-prometheus-node-exporter-2r6p8                    1\/1     Running   0          11m\r\npod\/pg-op-prometheus-node-exporter-cm2x8                    1\/1     Running   0          11m\r\npod\/pg-op-prometheus-node-exporter-fjfd2                    1\/1     Running   0          11m\r\npod\/pg-op-prometheus-operator-operator-7c7cb98579-xhlgt     2\/2     Running   0          11m\r\npod\/prometheus-pg-op-prometheus-operator-prometheus-0       3\/3     Running   1          10m\r\n\r\nNAME                                             TYPE           CLUSTER-IP     EXTERNAL-IP    PORT<span class=\"o\">(<\/span>S<span class=\"o\">)<\/span>                      AGE\r\nservice\/alertmanager-operated                    ClusterIP      None           &lt;none&gt;         9093\/TCP,9094\/TCP,9094\/UDP   10m\r\nservice\/azure-vote-back                          ClusterIP      10.0.120.31    &lt;none&gt;         6379\/TCP                     94m\r\nservice\/azure-vote-front                         LoadBalancer   10.0.176.255   51.138.50.33   80:32737\/TCP                 94m\r\nservice\/kubernetes                               ClusterIP      10.0.0.1       &lt;none&gt;         443\/TCP                      124m\r\nservice\/pg-op-grafana                            ClusterIP      10.0.81.187    &lt;none&gt;         80\/TCP                       11m\r\nservice\/pg-op-kube-state-metrics                 ClusterIP      10.0.7.118     &lt;none&gt;         8080\/TCP                     11m\r\nservice\/pg-op-prometheus-node-exporter           ClusterIP      10.0.3.136     &lt;none&gt;         9100\/TCP                     11m\r\nservice\/pg-op-prometheus-operator-alertmanager   ClusterIP      10.0.7.11      &lt;none&gt;         9093\/TCP                     11m\r\nservice\/pg-op-prometheus-operator-operator       ClusterIP      10.0.67.126    &lt;none&gt;         8080\/TCP,443\/TCP             11m\r\nservice\/pg-op-prometheus-operator-prometheus     ClusterIP      10.0.67.201    &lt;none&gt;         9090\/TCP                     11m\r\nservice\/prometheus-operated                      ClusterIP      None           &lt;none&gt;         9090\/TCP                     10m\r\n\r\nNAME                                            DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE\r\ndaemonset.apps\/pg-op-prometheus-node-exporter   3         3         3       3            3           &lt;none&gt;          11m\r\n\r\nNAME                                                 READY   UP-TO-DATE   AVAILABLE   AGE\r\ndeployment.apps\/azure-vote-back                      1\/1     1            1           94m\r\ndeployment.apps\/azure-vote-front                     1\/1     1            1           94m\r\ndeployment.apps\/pg-op-grafana                        1\/1     1            1           11m\r\ndeployment.apps\/pg-op-kube-state-metrics             1\/1     1            1           11m\r\ndeployment.apps\/pg-op-prometheus-operator-operator   1\/1     1            1           11m\r\n\r\nNAME                                                            DESIRED   CURRENT   READY   AGE\r\nreplicaset.apps\/azure-vote-back-5966fd4fd4                      1         1         1       94m\r\nreplicaset.apps\/azure-vote-front-67fc95647d                     1         1         1       94m\r\nreplicaset.apps\/pg-op-grafana-5b75f465d7                        1         1         1       11m\r\nreplicaset.apps\/pg-op-kube-state-metrics-5fc85698d4             1         1         1       11m\r\nreplicaset.apps\/pg-op-prometheus-operator-operator-7c7cb98579   1         1         1       11m\r\n\r\nNAME                                                                   READY   AGE\r\nstatefulset.apps\/alertmanager-pg-op-prometheus-operator-alertmanager   1\/1     10m\r\nstatefulset.apps\/prometheus-pg-op-prometheus-operator-prometheus       1\/1     10m\r\n<\/code><\/pre>\n<p>\u597d\u50cf\u975e\u5e38\u6df7\u4e71\u3002\u3002\u3002\u8fde\u547d\u540d\u7a7a\u95f4\u4e5f\u6ca1\u9ed8\u8ba4\u5206\u5f00\uff0c\u4e0d\u8fc7\u65e0\u89c6\u5b83\u7ee7\u7eed\u8fdb\u884c\u3002<\/p>\n<p>\u987a\u4fbf\u63d0\u4e00\u53e5\uff0c\u4f7f\u7528kubectl get all\u547d\u4ee4\u65e0\u6cd5\u771f\u6b63\u8f93\u51fa\u6240\u6709\u8d44\u6e90\u3002<br \/>\n\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u8f93\u51fa\u5168\u90e8\u8d44\u6e90\u3002<\/p>\n<pre class=\"post-pre\"><code>kubectl get <span class=\"s2\">\"<\/span><span class=\"si\">$(<\/span>kubectl api-resources <span class=\"nt\">--namespaced<\/span><span class=\"o\">=<\/span><span class=\"nb\">true<\/span> <span class=\"nt\">--verbs<\/span><span class=\"o\">=<\/span>list <span class=\"nt\">-o<\/span> name | <span class=\"nb\">tr<\/span> <span class=\"s2\">\"<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span> <span class=\"s2\">\",\"<\/span> | <span class=\"nb\">sed<\/span> <span class=\"nt\">-e<\/span> <span class=\"s1\">'s\/,$\/\/'<\/span><span class=\"si\">)<\/span><span class=\"s2\">\"<\/span>  \r\n<\/code><\/pre>\n<h3>\u786e\u8ba4Prometheus\u7684targets<\/h3>\n<p>Prometheus\u91c7\u7528\u4e86Pull\u5f0f\u67b6\u6784\uff0c\u9700\u8981\u4ece\u6bcf\u4e2a\u8981\u76d1\u89c6\u7684\u5bf9\u8c61\u4e2d\u901a\u8fc7exporter\u6765\u8fdb\u884c\u62c9\u53d6\u3002\u53ef\u4ee5\u901a\u8fc7\u76ee\u6807(targets)\u6765\u786e\u8ba4\u53ef\u4ee5\u62c9\u53d6\u4ec0\u4e48\u3002\u7531\u4e8e\u76ee\u524d\u6ca1\u6709\u5c06Prometheus\u516c\u5f00\u5230\u5916\u90e8\uff0c\u56e0\u6b64\u9700\u8981\u5c06\u672c\u5730\u7aef\u53e3\u8fdb\u884c\u8f6c\u53d1\u4ee5\u8fdb\u884c\u8bbf\u95ee\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl port-forward <span class=\"si\">$(<\/span>kubectl get pod <span class=\"nt\">-l<\/span> <span class=\"nv\">app<\/span><span class=\"o\">=<\/span>prometheus <span class=\"nt\">-o<\/span> template <span class=\"nt\">--template<\/span> <span class=\"s2\">\"{{(index .items 0).metadata.name}}\"<\/span><span class=\"si\">)<\/span> 9090:9090\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d517c37434c4406cca095\/28-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u6211\u60f3\u8981\u786e\u8ba4\u5728\u8fd9\u91cc\u662f\u5426\u6709\u786e\u5207\u7684\u76d1\u89c6\u9879\u76ee\u3002<br \/>\n\u6211\u60f3\u8981\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\u3002<\/p>\n<h4>\u8282\u70b9\u7684\u8d44\u6e90\u6307\u6807<\/h4>\n<p>\u53ea\u9700\u4e00\u79cd\u9009\u62e9\uff1a<br \/>\n\u4f7f\u7528Node Exporter\u83b7\u53d6\u3002\u5982\u679c\u6b63\u786e\u5b89\u88c5\u4e86Prometheus Operator\uff0c\u5b83\u5e94\u8be5\u4f1a\u81ea\u52a8\u542f\u7528\u3002<\/p>\n<h4>\u5bb9\u5668\u8d44\u6e90\u5ea6\u91cf<\/h4>\n<p>\u6839\u636eQiita\u7684\u6587\u7ae0\uff0c\u770b\u8d77\u6765\u662f\u4f7f\u7528kubelet exporter\u4ececadvisor\u4e2d\u83b7\u53d6\u6570\u636e\u3002\u521d\u59cb\u65f6\uff0ckubelet exporter\u7684\u5bfc\u51fa\u529f\u80fd\u4f3c\u4e4e\u5e76\u4e0d\u6b63\u5e38\u3002\u901a\u8fc7\u4ee5\u4e0b\u6b65\u9aa4\u5c06https\u6539\u4e3ahttp\uff0c\u5373\u53ef\u76d1\u89c6kubelet exporter\u3002<\/p>\n<blockquote><p>kubelet exporter\u4f7f\u7528\u7684\u7aef\u53e3\u4ecehttps\u66f4\u6539\u4e3ahttp<br \/>\n\u5728Azure AKS\u4e2d\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u4f7f\u7528https\u5bfc\u51fa\u5728kubelets\u4e0a\u4f3c\u4e4e\u65e0\u6cd5\u6b63\u5e38\u5de5\u4f5c\u3002\u5c06\u5c06kubelets\u72b6\u6001\u5bfc\u51fa\u5230prometheus\u7684\u7aef\u53e3\u4ecehttps\u66f4\u6539\u4e3ahttp\u3002<br \/>\n$ kubectl get servicemonitors pg-exporter-kubelets &#8211;namespace monitoring -o yaml | sed &#8216;s\/https\/http\/&#8217; | kubectl replace -f &#8211;<br \/>\n\u8bf7\u53c2\u9605https:\/\/github.com\/coreos\/prometheus-operator\/issues\/926<\/p><\/blockquote>\n<h4>nginx\u548credis\u7684\u6bcf\u4e2aMW\u6307\u6807<\/h4>\n<p>\u5f53\u7136\u5730\uff0c\u7531\u4e8e\u9ed8\u8ba4\u8bbe\u7f6e\u4e0b\u6ca1\u6709\u5305\u542b\uff08\u305d\u306e\u305f\u3081\uff09\uff0c\u9700\u8981\u5355\u72ec\u5f15\u5165exporter\u5e76\u8fdb\u884cscrape\uff08\u8bbe\u7f6ePrometheus\u7684Pull\u76ee\u6807\uff09\u3002\u56e0\u6b64\uff0c\u63a5\u4e0b\u6765\u5c06\u4f1a\u8fdb\u884c\u76f8\u5173\u7684\u7f16\u5199\u3002<\/p>\n<h3>Prometheus\u76d1\u63a7\u6307\u6807\u6269\u5c55<\/h3>\n<h4>\u5b89\u88c5nginx exporter\u3002<\/h4>\n<p>\u4f7f\u7528\u8fd9\u4e2aexporter\u6765\u5c1d\u8bd5\u4e00\u4e0b\uff0c\u867d\u7136\u6709\u5f88\u591a\u5176\u4ed6\u7684\u9009\u9879\u53ef\u4f9b\u9009\u62e9\u3002\u53ef\u4ee5\u76d1\u63a7Nginx\u7684\u8fde\u63a5\u6570\u3002\u5176\u4ed6\u7684exporter\u53ef\u80fd\u4f7f\u7528mtail\u6765\u76d1\u63a7\u8bbf\u95ee\u65e5\u5fd7\uff0c\u4e0b\u6b21\u53ef\u4ee5\u8bd5\u8bd5\u90a3\u4e2a\u3002<\/p>\n<h5>\u4e8b\u5148\u51c6\u5907<\/h5>\n<blockquote><p>\u5728NGINX\u4e2d\uff0c\u5c06stub_status\u9875\u9762\u66b4\u9732\u5728\u7aef\u53e38080\u4e0a\u7684\/stub_status\u8def\u5f84\u4e0b\uff0c\u9700\u8981\u9884\u5148\u542f\u7528stub status\uff0c\u5c31\u50cf\u5728GitHub\u4e0a\u4e00\u6837\u3002stub status\u53ef\u4ee5\u83b7\u53d6HTTP\u8fde\u63a5\u6570\u3002\u9700\u8981\u4fee\u6539nginx.conf\u6587\u4ef6\u3002<\/p><\/blockquote>\n<p>\u6211\u8ba4\u4e3a\u6839\u636e\u4e0d\u540c\u7684\u9879\u76ee\uff0c\u4f7f\u7528Container\u6216Kubernetes\u66f4\u6539\u914d\u7f6e\u7684\u65b9\u6cd5\u53ef\u80fd\u5404\u4e0d\u76f8\u540c\uff0c\u4f46\u672c\u6b21\u6211\u4eec\u9009\u62e9\u4f7f\u7528ConfigMap\u5c06\u6587\u4ef6\u6302\u8f7d\u5230Volume\u4e0a\u6765\u4fee\u6539\u914d\u7f6e\u3002<\/p>\n<h6>\u51c6\u5907nginx.conf\u6587\u4ef6<\/h6>\n<pre class=\"post-pre\"><code><span class=\"k\">http<\/span> <span class=\"p\">{<\/span>\r\n<span class=\"kn\">\uff08\u4e2d\u7565\uff09<\/span>\r\n    <span class=\"s\">server<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"kn\">location<\/span> <span class=\"n\">\/stub_status<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"kn\">stub_status<\/span> <span class=\"no\">on<\/span><span class=\"p\">;<\/span>\r\n        <span class=\"p\">}<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u9996\u5148\uff0c\u51c6\u5907\u4e00\u4e2a\u5df2\u6dfb\u52a0\u4e86 stub_status \u8bbe\u7f6e\u7684 nginx.conf \u6587\u4ef6\u3002<\/p>\n<h6>\u5c06\u4f7f\u7528ConfigMap\u6765\u6302\u8f7d\u5230nginx.conf\u7684\u5bb9\u5668\u4e2d\u3002<\/h6>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl create configmap nginx-config <span class=\"nt\">--from-file<\/span> nginx.conf\r\n<\/code><\/pre>\n<p>\u521b\u5efa\u4e00\u4e2a\u914d\u7f6e\u6620\u5c04\u3002\u901a\u8fc7&#8211;from-file\u9009\u9879\uff0c\u6587\u4ef6\u540d\u5c06\u76f4\u63a5\u4f5c\u4e3a\u952e\uff08key\uff09\uff0c\u503c\uff08value\uff09\u5c06\u4f5c\u4e3angixn.conf\u6587\u4ef6\u7684\u5185\u5bb9\u3002<\/p>\n<p>\u4f7f\u7528kubectl\u547d\u4ee4\u4ee5YAML\u683c\u5f0f\u83b7\u53d6nginx-config\u914d\u7f6e\u6620\u5c04\u7684\u9009\u9879\u4e3a\uff1a<br \/>\nkubectl\u4ee5YAML\u683c\u5f0f\u83b7\u53d6\u540d\u79f0\u4e3anginx-config\u7684\u914d\u7f6e\u6620\u5c04\u7684\u547d\u4ee4\u4e3a\uff1a$ kubectl get configmap nginx-confg -o yaml<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"s\">nginx.conf<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">|-<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n    <span class=\"s\">http {<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n        <span class=\"s\">server {<\/span>\r\n            <span class=\"s\">listen 8080;<\/span>\r\n            <span class=\"s\">location \/stub_status {<\/span>\r\n                <span class=\"s\">stub_status on;<\/span>\r\n                <span class=\"s\">allow 127.0.0.1;<\/span>\r\n                <span class=\"s\">deny all;<\/span>\r\n            <span class=\"s\">}<\/span>\r\n        <span class=\"s\">}<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<\/code><\/pre>\n<p>\u901a\u8fc7\u4f7f\u7528\u4f5c\u3063\u305f.spec.template.spec.volumes\uff0c\u5728volume\u4e2d\u6dfb\u52a0configmap\uff0c\u5e76\u901a\u8fc7volumeMounts\u5c06\u5176\u6302\u8f7d\u5230\/etc\/nginx\/nginx.conf\u3002<\/p>\n<p>\u4ee5\u4e2d\u56fd\u672c\u5730\u8bed\u8a00\u8fdb\u884c\u91cd\u65b0\u8868\u8ff0\uff1a<br \/>\n\u7528kubectl\u547d\u4ee4\u83b7\u53d6\u540d\u4e3aazure-vote-front\u7684deploy\u7684YAML\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"s\">\u00a0\u00a0template<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0spec<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0containers<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name:\u00a0azure-vote-front<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0volumeMounts<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-\u00a0mountPath:\u00a0\/etc\/nginx\/nginx.conf<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name:\u00a0nginx-config<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0subPath:\u00a0nginx.conf<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0volumes<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-\u00a0configMap<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0defaultMode:\u00a0420<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0items<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-\u00a0key:\u00a0nginx.conf<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0path:\u00a0nginx.conf<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name:\u00a0nginx-config<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name:\u00a0nginx-config<\/span>\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u4ee5\u4e0b\u914d\u7f6e\u6587\u4ef6nginx.conf\u662f\u5426\u6b63\u786e\u5e94\u7528\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl <span class=\"nb\">exec<\/span> <span class=\"nt\">-it<\/span> azure-vote-front-67fc95647d-sgr42 \/\/bin\/cat \/\/etc\/nginx\/conf\/nginx.conf\r\n<\/code><\/pre>\n<p>\u5982\u679cconfimap\u5728\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u672a\u80fd\u52a8\u6001\u53cd\u6620\uff0c\u5c31\u9700\u8981\u5220\u9664pod\u5e76\u91cd\u65b0\u90e8\u7f72\u3002<\/p>\n<p>\u5982\u679c\u5df2\u88ab\u53cd\u6620\uff0c\u5219\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u786e\u8ba4\u8bbe\u7f6e\u4e86stub\u72b6\u6001\u3002\uff08\u7531\u4e8e\u6ca1\u6709curl\uff0c\u6240\u4ee5\u4f7f\u7528wget\u3002\uff09<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl <span class=\"nb\">exec<\/span> <span class=\"nt\">-it<\/span> azure-vote-front-67fc95647d-sgr42 \/\/bin\/sh\r\nwget http:\/\/127.0.0.1\/stub_status <span class=\"nt\">-qO<\/span> -\r\n<\/code><\/pre>\n<h4>\u5c06nginx exporter\u4f5c\u4e3a\u4fa7\u8f66\u914d\u7f6e\u5b89\u88c5<\/h4>\n<p>\u628anginx exporter\u4f5c\u4e3apod\u5185\u7684\u4e00\u4e2a\u8fb9\u8f66\u5bb9\u5668\u8fdb\u884c\u914d\u7f6e\u3002<br \/>\n\u7531\u4e8e\u9700\u8981\u4f20\u9012\u53c2\u6570-nginx.scrape-uri http:\/\/:8080\/stub_status\uff0c\u6211\u5c06\u5b83\u6307\u5b9a\u4e3a.spec.template.spec.containers[1].args\u3002<\/p>\n<p>\u7528\u4e2d\u6587\u8fdb\u884c\u672c\u5730\u5316\u6539\u5199\uff1a $ kubectl \u83b7\u53d6 deploy azure-vote-front -o yaml<\/p>\n<pre class=\"post-pre\"><code><span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"s\">\u00a0\u00a0template<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0spec<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0containers<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n      <span class=\"s\">- args<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">-nginx.scrape-uri<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">http:\/\/127.0.0.1:8080\/stub_status<\/span>\r\n        <span class=\"na\">env<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">name<\/span>\r\n          <span class=\"na\">value<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-prom-exp<\/span>\r\n        <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx\/nginx-prometheus-exporter:0.6.0<\/span>\r\n        <span class=\"na\">imagePullPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">IfNotPresent<\/span>\r\n        <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-prom-exp<\/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\">9113<\/span>\r\n          <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n        <span class=\"na\">resources<\/span><span class=\"pi\">:<\/span>\r\n          <span class=\"na\">limits<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"na\">cpu<\/span><span class=\"pi\">:<\/span> <span class=\"s\">250m<\/span>\r\n            <span class=\"na\">memory<\/span><span class=\"pi\">:<\/span> <span class=\"s\">256Mi<\/span>\r\n          <span class=\"na\">requests<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"na\">cpu<\/span><span class=\"pi\">:<\/span> <span class=\"s\">100m<\/span>\r\n            <span class=\"na\">memory<\/span><span class=\"pi\">:<\/span> <span class=\"s\">128Mi<\/span>\r\n        <span class=\"na\">terminationMessagePath<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/dev\/termination-log<\/span>\r\n        <span class=\"na\">terminationMessagePolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">File<\/span>\r\n<\/code><\/pre>\n<p>\u8fd9\u6837\uff0c\u4fa7\u8fb9\u8f66\u4e5f\u5df2\u7ecf\u6210\u529f\u90e8\u7f72\u597d\u4e86\u3002\u901a\u8fc7service\u6253\u5f00\u7aef\u53e3\u6765\u5141\u8bb8\u5916\u90e8\u7684pod\u8bbf\u95eeexporter\u7684\u7aef\u53e39113\u3002\u4f7f\u7528kubectl\u547d\u4ee4\u83b7\u53d6\u540d\u4e3aazure-vote-front\u7684service\u7684yaml\u914d\u7f6e\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n  <span class=\"s\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">web<\/span>\r\n    <span class=\"na\">nodePort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">32737<\/span>\r\n    <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n    <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n    <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-prom-exp<\/span>\r\n    <span class=\"na\">nodePort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">31217<\/span>\r\n    <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">9113<\/span>\r\n    <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n    <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">9113<\/span>\r\n<\/code><\/pre>\n<p>\u5728\u6b64\u4e4b\u524d\uff0cexporter\u7684\u914d\u7f6e\u5df2\u5168\u90e8\u5b8c\u6210\u3002<br \/>\n\u63a5\u4e0b\u6765\uff0c\u4eceprometheus\u7684pod\u5411azure-vote-front\u8fdb\u884cPull\uff0c\u5e76\u786e\u8ba4\u662f\u5426\u53ef\u4ee5\u83b7\u53d6\u5230nginx\u7684\u6307\u6807\u6570\u636e\u3002<\/p>\n<p>\u786e\u8ba4 azure-vote-front \u7684\u96c6\u7fa4 IP\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl get service\r\nNAME                                     TYPE           CLUSTER-IP     EXTERNAL-IP     PORT<span class=\"o\">(<\/span>S<span class=\"o\">)<\/span>                       AGE\r\nazure-vote-front                         LoadBalancer   10.0.176.255       80:32737\/TCP,9113:31217\/TCP   6d1h\r\n<\/code><\/pre>\n<p>\u68c0\u67e5\u5df2\u786e\u8ba4\u7684\u96c6\u7fa4IP\u5730\u5740\uff0c\u7528wget\u547d\u4ee4\u6765\u68c0\u67e5\u662f\u5426\u80fd\u591f\u62c9\u53d6\u5230\u6307\u6807\u6570\u636e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl <span class=\"nb\">exec<\/span> <span class=\"nt\">-it<\/span> prometheus-pg-op-prometheus-operator-prometheus-0 <span class=\"nt\">-c<\/span> prometheus \/\/bin\/sh\r\n<span class=\"nv\">$ <\/span>wget http:\/\/10.0.176.255:9113\/metrics <span class=\"nt\">-qO<\/span> -\r\n<\/code><\/pre>\n<h4>\u4f7f\u7528Redis\u5bfc\u51fa\u5668<\/h4>\n<p>\u53ef\u4ee5\u8bd5\u7740\u4f7f\u7528\u8fd9\u4e2a\u94fe\u63a5\u4e2d\u7684Redis exporter\u3002<\/p>\n<p>\u4fa7\u8fb9\u8f66\u914d\u7f6e\u3002<\/p>\n<p>\u7528\u4e2d\u6587\u5c06\u4ee5\u4e0b\u5185\u5bb9\u91cd\u65b0\u8868\u8fbe\u4e00\u904d\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff1a<br \/>\n&#8220;kubectl get deploy azure-vote-back -o yaml&#8221;<\/p>\n<p>kubectl get deploy azure-vote-back -o yaml\u7684\u539f\u6587\u4e3a\uff1a<\/p>\n<pre class=\"post-pre\"><code>      <span class=\"pi\">-<\/span> <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">oliver006\/redis_exporter:latest<\/span>\r\n        <span class=\"na\">imagePullPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Always<\/span>\r\n        <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis-exporter<\/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\">9121<\/span>\r\n          <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n        <span class=\"na\">resources<\/span><span class=\"pi\">:<\/span>\r\n          <span class=\"na\">requests<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"na\">cpu<\/span><span class=\"pi\">:<\/span> <span class=\"s\">100m<\/span>\r\n            <span class=\"na\">memory<\/span><span class=\"pi\">:<\/span> <span class=\"s\">100Mi<\/span>\r\n        <span class=\"na\">terminationMessagePath<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/dev\/termination-log<\/span>\r\n        <span class=\"na\">terminationMessagePolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">File<\/span>\r\n<\/code><\/pre>\n<p>\u53d1\u5e03\u7aef\u53e3\u3002<br \/>\nkubectl\u83b7\u53d6\u670d\u52a1azure-vote-back\u7684yaml\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">clusterIP<\/span><span class=\"pi\">:<\/span> <span class=\"s\">10.0.120.31<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis<\/span>\r\n    <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">6379<\/span>\r\n    <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n    <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">6379<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis-exp<\/span>\r\n    <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">9121<\/span>\r\n    <span class=\"na\">protocol<\/span><span class=\"pi\">:<\/span> <span class=\"s\">TCP<\/span>\r\n    <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">9121<\/span>\r\n<\/code><\/pre>\n<p>\u8fd9\u6837\u51fa\u53e3\u5546\u5c31\u5b8c\u6210\u4e86\u3002<\/p>\n<p>\u786e\u8ba4\u662f\u5426\u53ef\u4ee5\u4ecePrometheus\u4e2d\u62c9\u53d6\u76f8\u540c\u7684\u6570\u636e\u3002<\/p>\n<p>\u786e\u8ba4 azure-vote-front \u7684 cluster-ip\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl get service\r\nNAME                                     TYPE           CLUSTER-IP     EXTERNAL-IP     PORT<span class=\"o\">(<\/span>S<span class=\"o\">)<\/span>                       AGE\r\nazure-vote-back                          ClusterIP      10.0.120.31    &lt;none&gt;          6379\/TCP,9121\/TCP             6d1h\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u96c6\u7fa4IP\uff0c\u5e76\u4f7f\u7528wget\u547d\u4ee4\u68c0\u67e5\u662f\u5426\u80fd\u6210\u529f\u63d0\u53d6\u6307\u6807\u6570\u636e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl <span class=\"nb\">exec<\/span> <span class=\"nt\">-it<\/span> prometheus-pg-op-prometheus-operator-prometheus-0 <span class=\"nt\">-c<\/span> prometheus \/\/bin\/sh\r\n\/prometheus <span class=\"nv\">$ <\/span>wget http:\/\/10.0.120.31:9121\/metrics <span class=\"nt\">-qO<\/span> -\r\n<\/code><\/pre>\n<h4>Prometheus\u7684scrape\u914d\u7f6e\u8bbe\u7f6e<\/h4>\n<p>\u5373\u4f7f\u53ef\u4ee5\u914d\u7f6eexporter\uff0c\u4ecd\u7136\u6709\u4e8b\u60c5\u8981\u505a\u3002\u56e0\u4e3aPrometheus\u662f\u62c9\u6a21\u578b\uff0c\u6240\u4ee5Prometheus\u672c\u8eab\u9700\u8981\u77e5\u9053exporter\u7684\u5730\u5740\u3002<br \/>\n\u6709\u4e24\u79cd\u6307\u5b9a\u65b9\u6cd5\uff0c\u9759\u6001\u548c\u52a8\u6001\uff08\u670d\u52a1\u53d1\u73b0\uff09\uff0c\u8fd9\u4e2a\u7f51\u7ad9\u63d0\u4f9b\u4e86\u5f88\u597d\u7684\u670d\u52a1\u53d1\u73b0\u914d\u7f6e\u65b9\u6cd5\u6307\u5357\u3002<br \/>\n<iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" title=\"Prometheus \u306e\u76e3\u8996\u5bfe\u8c61\u3092 ServiceDiscovery \u3067\u52d5\u7684\u306b\u8a2d\u5b9a\u3059\u308b - Carpe Diem\" src=\"https:\/\/hatenablog-parts.com\/embed?url=https%3A%2F%2Fchristina04.hatenablog.com%2Fentry%2Fprometheus-service-discovery#?secret=twOpZTlxvQ\" data-secret=\"twOpZTlxvQ\" scrolling=\"no\" frameborder=\"0\"><\/iframe><\/p>\n<p>\u8fd9\u6b21\u6211\u4eec\u53ea\u662f\u60f3\u5c3d\u5feb\u5b9e\u65bd\uff0c\u6240\u4ee5\u6211\u4eec\u9009\u62e9\u4e86\u9759\u6001\u5b9e\u65bd\u3002<br \/>\n\u4f3c\u4e4e\u662f\u5728Prometheus\u7684scrape_configs\u4e2d\u8fdb\u884c\u914d\u7f6e\uff0c\u4f46\u5728prometheus-operator\u4e2d\uff0c\u6211\u4e0d\u77e5\u9053\u5982\u4f55\u6dfb\u52a0\u5e76\u9047\u5230\u4e86\u56f0\u96be\u3002<\/p>\n<p>\u6700\u7ec8\u901a\u8fc7\u53c2\u8003\u4ee5\u4e0b\u7f51\u9875\uff0c\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3a&#8221;secret&#8221;\u7684\u81ea\u5b9a\u4e49\u8d44\u6e90\uff0c\u5e76\u5c06\u5176\u4f5c\u4e3aadditionalScrapeConfigs\u52a0\u8f7d\u5230prometheus\u4e2d\u8fdb\u884c\u5b9e\u65bd\u3002<br \/>\nhttps:\/\/github.com\/coreos\/prometheus-operator\/blob\/master\/Documentation\/additional-scrape-config.md<\/p>\n<p>\u5236\u9020\u4e00\u4e2a\u79d8\u5bc6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl create secret generic additional-scrape-configs <span class=\"nt\">--from-file<\/span><span class=\"o\">=<\/span>prometheus-additional.yaml\r\n<\/code><\/pre>\n<p>\u666e\u7f57\u7c73\u4fee\u65af-\u8ffd\u52a0.yml<\/p>\n<pre class=\"post-pre\"><code><span class=\"pi\">-<\/span> <span class=\"na\">job_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">custome\/nginx-exporter\/0<\/span>\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>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">10.0.176.255:9113<\/span>\r\n<span class=\"pi\">-<\/span> <span class=\"na\">job_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis_exporter<\/span>\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> \r\n      <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">10.0.120.31:9121'<\/span>\r\n<\/code><\/pre>\n<p>\u7f16\u8f91custom resource Prometheus\u3002\u5c06secret\u4f5c\u4e3aadditionalScrapeConfigs\u8fdb\u884c\u5f15\u7528\u3002<br \/>\nkubectl get prometheus pg-op-prometheus-operator-prometheus -o yaml<\/p>\n<pre class=\"post-pre\"><code><span class=\"s\">\uff08\u4e2d\u7565\uff09<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">additionalScrapeConfigs<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">key<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-additional.yaml<\/span>\r\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">additional-scrape-configs<\/span>\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d517c37434c4406cca095\/93-1.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d517c37434c4406cca095\/94-1.png\" alt=\"image.png\" \/><\/div>\n<h3>Grafana\u4eea\u8868\u76d8\u5b9a\u5236<\/h3>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d517c37434c4406cca095\/96-0.png\" alt=\"image.png\" \/><\/div>\n<h5>\u8bd5\u7528\u4e86\u4e4b\u540e\u611f\u89c9\u5f88\u597d\u7684\u4eea\u8868\u76d8<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Node<\/ul>\n<\/li>\n<\/ul>\n<p>https:\/\/grafana.com\/grafana\/dashboards\/11074<\/p>\n<p>Pod<\/p>\n<p>https:\/\/grafana.com\/grafana\/dashboards\/6336<br \/>\nhttps:\/\/grafana.com\/grafana\/dashboards\/10518<\/p>\n<p>Redis<\/p>\n<p>https:\/\/grafana.com\/grafana\/dashboards\/763<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d517c37434c4406cca095\/99-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u5230\u76ee\u524d\u4e3a\u6b62\uff0c\u5df2\u7ecf\u80fd\u591f\u901a\u8fc7AKS\u4e0a\u7684azure-vote\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\u63a7node\u3001pod\/container\u3001nginx\u548credis\u7684\u8d44\u6e90\u3002<\/p>\n<h3>\u505a\u4e0d\u5230\u7684\u4e8b\u60c5 (zu\u00f2 b\u00f9 de sh\u00ec<\/h3>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Grafana\u306e\u5916\u90e8\u516c\u958b\uff08\u3084\u3063\u305f\u3051\u3069\u5c11\u3057\u529b\u5c3d\u304d\u305f\u3002\u304b\u3064\u30bb\u30ad\u30e5\u30a2\u306a\u89b3\u70b9\u304c\u629c\u3051\u3066\u308b\u306e\u3067\u66f8\u304b\u306a\u3044\uff09<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Prometheus\u30c7\u30fc\u30bf\u6c38\u7d9a\u5316\uff08\u4eca\u306fPrometheus\u304c\u6b7b\u306c\u3068\u30c7\u30fc\u30bf\u3082\u98db\u3076\u3002\uff09<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">RED\u30e1\u30c8\u30ea\u30af\u30b9\u76e3\u8996\uff08\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u3067\u30ec\u30b9\u30dd\u30f3\u30b9\u30bf\u30a4\u30e0\u3068\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\u306f\u53ef\u8996\u5316\u3057\u305f\u304b\u3063\u305f\u3051\u3069\u307e\u3060\u3067\u304d\u3066\u306a\u3044\u3002Istio\u5165\u308c\u3066\u307f\u305f\u3089\u3044\u3063\u305f\u3093\u3053\u308c\u3067\u3044\u3044\u3058\u3083\u3093\u3068\u306a\u3063\u305f\u3002\uff09<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u5728\u4e0b\u9762URL\u7684Hatenablog\u4e0a\u5199\u4e86\u540c\u6837\u7684\u6587\u7ae0\uff1a \u6211\u6b63\u5728\u9a8c\u8bc1\u5e76\u63d0\u51fa\u4e00\u79cd\u76d1\u63a7k8s\u7684\u65b9\u6cd5\u3002 \u5982\u679c\u4f60\u6025\u4e8e\u51c6\u5907 [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-43277","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\u7528Prometheus+Grafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86AKS\u4e0aNGINX\u548cRedis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\u63a7 - 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\u7528prometheusgrafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86aks\u4e0anginx\u548credis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528Prometheus+Grafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86AKS\u4e0aNGINX\u548cRedis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\u63a7\" \/>\n<meta property=\"og:description\" content=\"\u6211\u5728\u4e0b\u9762URL\u7684Hatenablog\u4e0a\u5199\u4e86\u540c\u6837\u7684\u6587\u7ae0\uff1a \u6211\u6b63\u5728\u9a8c\u8bc1\u5e76\u63d0\u51fa\u4e00\u79cd\u76d1\u63a7k8s\u7684\u65b9\u6cd5\u3002 \u5982\u679c\u4f60\u6025\u4e8e\u51c6\u5907 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528prometheusgrafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86aks\u4e0anginx\u548credis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-15T12:54:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T04:55:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d517c37434c4406cca095\/8-0.png\" \/>\n<meta name=\"author\" content=\"\u96c5, \u609f\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u96c5, \u609f\" \/>\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\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/\",\"name\":\"\u4f7f\u7528Prometheus+Grafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86AKS\u4e0aNGINX\u548cRedis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\u63a7 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-11-15T12:54:44+00:00\",\"dateModified\":\"2024-04-29T04:55:49+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528Prometheus+Grafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86AKS\u4e0aNGINX\u548cRedis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\u63a7\"}]},{\"@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\/f044a4b7fa4ee2701702942002419ca6\",\"name\":\"\u96c5, \u609f\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g\",\"caption\":\"\u96c5, \u609f\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yawu\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528Prometheus+Grafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86AKS\u4e0aNGINX\u548cRedis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\u63a7 - 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\u7528prometheusgrafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86aks\u4e0anginx\u548credis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528Prometheus+Grafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86AKS\u4e0aNGINX\u548cRedis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\u63a7","og_description":"\u6211\u5728\u4e0b\u9762URL\u7684Hatenablog\u4e0a\u5199\u4e86\u540c\u6837\u7684\u6587\u7ae0\uff1a \u6211\u6b63\u5728\u9a8c\u8bc1\u5e76\u63d0\u51fa\u4e00\u79cd\u76d1\u63a7k8s\u7684\u65b9\u6cd5\u3002 \u5982\u679c\u4f60\u6025\u4e8e\u51c6\u5907 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528prometheusgrafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86aks\u4e0anginx\u548credis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-11-15T12:54:44+00:00","article_modified_time":"2024-04-29T04:55:49+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d517c37434c4406cca095\/8-0.png"}],"author":"\u96c5, \u609f","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u96c5, \u609f","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"5 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/","name":"\u4f7f\u7528Prometheus+Grafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86AKS\u4e0aNGINX\u548cRedis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\u63a7 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-11-15T12:54:44+00:00","dateModified":"2024-04-29T04:55:49+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528Prometheus+Grafana\u57281\u5929\u5185\u9a8c\u8bc1\u4e86AKS\u4e0aNGINX\u548cRedis\u7684\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u76d1\u63a7"}]},{"@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\/f044a4b7fa4ee2701702942002419ca6","name":"\u96c5, \u609f","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g","caption":"\u96c5, \u609f"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yawu\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8prometheusgrafana%e5%9c%a81%e5%a4%a9%e5%86%85%e9%aa%8c%e8%af%81%e4%ba%86aks%e4%b8%8anginx%e5%92%8credis%e7%9a%84%e6%bc%94%e7%a4%ba%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e7%9b%91\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43277","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=43277"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43277\/revisions"}],"predecessor-version":[{"id":85404,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/43277\/revisions\/85404"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=43277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=43277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=43277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}