{"id":1004,"date":"2021-09-16T15:48:33","date_gmt":"2021-09-16T07:48:33","guid":{"rendered":"https:\/\/www.yinyubo.com\/?p=1004"},"modified":"2022-05-16T18:02:54","modified_gmt":"2022-05-16T10:02:54","slug":"eck","status":"publish","type":"post","link":"https:\/\/www.yinyubo.com\/?p=1004","title":{"rendered":"ECK\u5b89\u88c5elasticsearch,\u63a5\u5165apm\u6d4b\u8bd5"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u4efb\u52a1\u76ee\u6807<\/h2>\n\n\n\n<p>\u4ee5\u524d\u90fd\u662f\u7528helm\u5b89\u88c5elasticsearch\uff0c\u6700\u8fd1\u53d1\u73b0elasticsearch\u63a8\u8350\u4f7f\u7528ECK\u5728K8S\u4e0a\u5b89\u88c5\uff0c\u90a3\u6211\u4eec\u5c31\u6765\u8bd5\u8bd5\u5427<\/p>\n\n\n\n<p>\u6211\u4eec\u4f1a\u5728\u5df2\u6709\u7684K8S\u4e0a\u5b89\u88c5ECK,elasticsearch\uff0ckibana\uff0capm\uff0c\u5173\u95edssl\uff0cloadbalancer\u66b4\u9732\u5e94\u7528\u8bbf\u95ee<\/p>\n\n\n\n<p>\u6d4b\u8bd5golang\u63a5\u5165apm<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ECK\u521b\u5efa\u8fc7\u7a0b<\/h2>\n\n\n\n<p>1.\u5148\u5b89\u88c5\u4e0aoperator<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create -f https:\/\/download.elastic.co\/downloads\/eck\/1.7.1\/crds.yaml\nkubectl apply -f https:\/\/download.elastic.co\/downloads\/eck\/1.7.1\/operator.yaml<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>2.\u5b89\u88c5elasticsearch<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &lt;&lt;EOF | kubectl apply -f -\napiVersion: elasticsearch.k8s.elastic.co\/v1\nkind: Elasticsearch\nmetadata:\n  name: quickstart\nspec:\n  version: 7.14.1\n  nodeSets:\n  - name: default\n    count: 1\n    config:\n      node.store.allow_mmap: false\nEOF<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>3.\u5b89\u88c5kibana<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &lt;&lt;EOF | kubectl apply -f -\napiVersion: kibana.k8s.elastic.co\/v1\nkind: Kibana\nmetadata:\n  name: quickstart\nspec:\n  version: 7.14.1\n  count: 1\n  elasticsearchRef:\n    name: quickstart\nEOF<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>4.\u5b89\u88c5apm<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &lt;&lt;EOF | kubectl apply -f -\napiVersion: apm.k8s.elastic.co\/v1\nkind: ApmServer\nmetadata:\n  name: apm-server-quickstart\n  namespace: default\nspec:\n  version: 7.14.1\n  count: 1\n  elasticsearchRef:\n    name: quickstart\nEOF<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>5.\u66b4\u9732kibana\u53ef\u5916\u90e8\u8bbf\u95ee\uff0c\u5e76\u4e14\u5173\u95edssl<\/p>\n\n\n\n<p>kubectl edit kibanas.kibana.k8s.elastic.co quickstart\u3002\u8fd9\u91cc\u53ea\u8d34\u4e0a\u5173\u952e\u7684spec\u90e8\u5206\u4ee3\u7801<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>spec:\r\n  count: 1\r\n  elasticsearchRef:\r\n    name: quickstart\r\n  enterpriseSearchRef:\r\n    name: \"\"\r\n  http:\r\n    service:\r\n      metadata: {}\r\n      spec:\r\n        type: LoadBalancer\r\n    tls:\r\n      selfSignedCertificate:\r\n        disabled: true\r\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>6.\u66b4\u9732apm\u53ef\u5916\u90e8\u8bbf\u95ee<\/p>\n\n\n\n<p>kubectl edit apmserver.apm.k8s.elastic.co\/apm-server-quickstart<\/p>\n\n\n\n<p>\u4fee\u6539\u7684\u5185\u5bb9\u4e0e\u4e0a\u9762kibana\u4fee\u6539\u5185\u5bb9\u4e00\u81f4\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>7.\u83b7\u53d6kibana\u767b\u5f55\u7528\u6237\u540d\u548c\u5bc6\u7801<\/p>\n\n\n\n<p>\u9ed8\u8ba4\u7528\u6237\u540d elastic<\/p>\n\n\n\n<p>\u9ed8\u8ba4\u5bc6\u7801\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u83b7\u53d6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get secret quickstart-es-elastic-user -o go-template='{{.data.elastic | base64decode }}'<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>8.\u83b7\u53d6apm-server\u7684secret-token<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get secret\/apm-server-quickstart-apm-token -o go-template='{{index .data \"secret-token\" | base64decode}}'<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">golang\u6d4b\u8bd5APM-SERVER\u901a\u4fe1<\/h2>\n\n\n\n<p>1.\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff0c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u670d\u52a1\u540d\uff0c\u4e0d\u8bbe\u7f6e\u7684\u8bdd\uff0c\u5c31\u662f\u4ee3\u7801\u7684\u6587\u4ef6\u540d\nexport ELASTIC_APM_SERVICE_NAME=\r\n\r\n# apm\u670d\u52a1\u5668\u5730\u5740\r\nexport ELASTIC_APM_SERVER_URL=http:\/\/localhost:8200\r\n\r\n# \u6211\u4eec\u4e0a\u4e00\u6b65\u62ff\u5230\u7684token\r\nexport ELASTIC_APM_SECRET_TOKEN=\r\n\r\n# \u53ef\u4ee5\u8bbe\u7f6e\u4e5f\u53ef\u4ee5\u4e0d\u8bbe\u7f6e\uff0c\u7528\u4e8e\u6807\u8bc6\u73af\u5883\u7684\uff0c\u7c7b\u4f3c\u6807\u7b7e\u529f\u80fd\r\nexport ELASTIC_APM_ENVIRONMENT=<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>2.\u7f16\u5199golang\u6d4b\u8bd5\u4ee3\u7801main.go<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package main\r\n\r\nimport (\r\n\t\"fmt\"\r\n\t\"log\"\r\n\t\"net\/http\"\r\n\r\n\t\"github.com\/gorilla\/mux\"\r\n\t\"go.elastic.co\/apm\/module\/apmgorilla\"\r\n)\r\n\r\nfunc helloHandler(w http.ResponseWriter, req *http.Request) {\r\n\tfmt.Fprintf(w, \"Hello, %s!\\n\", mux.Vars(req)&#91;\"name\"])\r\n}\r\nfunc main() {\r\n\tr := mux.NewRouter()\r\n\tr.HandleFunc(\"\/hello\/{name}\", helloHandler)\r\n\tr.Use(apmgorilla.Middleware())\r\n\tlog.Fatal(http.ListenAndServe(\":8000\", r))\r\n}\r\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>3,\u5728kibana\u4e0a\u68c0\u67e5apm\u7684\u4fe1\u606f\uff0c\u5e94\u8be5\u4f1a\u770b\u5230\u4e00\u4e2amain\u7684server\uff0c\u6709\u4e00\u4e9b\u6570\u636e\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u8bc1\u660eapm\u53ef\u6210\u529f\u8fde\u901a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/yinyubo-1257235934.cos.ap-nanjing.myqcloud.com\/2021\/09\/Image%203.png\" alt=\"\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u4efb\u52a1\u76ee\u6807 \u4ee5\u524d\u90fd\u662f\u7528helm\u5b89\u88c5elasticsearch\uff0c\u6700\u8fd1\u53d1\u73b0elasticsearch\u63a8\u8350\u4f7f\u7528ECK\u5728 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1004","post","type-post","status-publish","format-standard","hentry","category-elasticsearch"],"_links":{"self":[{"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/posts\/1004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1004"}],"version-history":[{"count":2,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/posts\/1004\/revisions"}],"predecessor-version":[{"id":1007,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/posts\/1004\/revisions\/1007"}],"wp:attachment":[{"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}