{"id":743,"date":"2022-12-20T15:12:08","date_gmt":"2022-12-20T07:12:08","guid":{"rendered":"https:\/\/ext4.cn\/?p=743"},"modified":"2023-08-30T11:22:58","modified_gmt":"2023-08-30T03:22:58","slug":"loki-s3%e5%ad%98%e5%82%a8","status":"publish","type":"post","link":"https:\/\/ext4.cn\/?p=743","title":{"rendered":"loki-s3\u5b58\u50a8"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">loki<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u914d\u7f6e\u6587\u4ef6<\/h3>\n\n\n\n<p>1\u3001Loki \u7684\u914d\u7f6e\u6587\u4ef6\u975e\u5e38\u590d\u6742\uff0c\u914d\u7f6e\u8d77\u6765\u6709\u4e00\u5b9a\u96be\u5ea6\uff0c\u6240\u4ee5\u6211\u4eec\u975e\u5e38\u6709\u5fc5\u8981\u5bf9 Loki \u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u4e13\u95e8\u7684\u5206\u6790\u3002Loki \u914d\u7f6e\u6587\u4ef6&nbsp;<code>loki.yaml<\/code>&nbsp;\u652f\u6301\u7684\u5185\u5bb9\u548c\u9ed8\u8ba4\u503c\u6570\u636e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u7528\u9017\u53f7\u5206\u9694\u7ec4\u4ef6\u5217\u8868\u8fd0\u884c\uff0c\u9ed8\u8ba4\u7684\u503c all \u8fd0\u884c Loki \u5728\u5355\u4e2a\u4e8c\u8fdb\u5236\u6587\u4ef6\u4e2d\u3002\n# \u503c read \u662f\u4e00\u4e2a\u522b\u540d\uff0c\u7528\u4e8e\u4ec5\u5728\u540c\u4e00\u8fdb\u7a0b\u4e2d\u8fd0\u884c\u4e0e\u8bfb\u53d6\u8def\u5f84\u76f8\u5173\u7684\u7ec4\u4ef6\uff0c\u5982 querier \u548c query-frontend\u3002\n# \u503c write \u540c\u6837\u662f\u4e00\u4e2a\u522b\u540d\uff0c\u7528\u4e8e\u4ec5\u5728\u540c\u4e00\u8fdb\u7a0b\u4e2d\u8fd0\u884c\u4e0e\u5199\u8def\u5f84\u76f8\u5173\u7684\u7ec4\u4ef6\uff0c\u5982 ingester \u548c distributor\u3002\n# \u652f\u6301\u7684\u503c\u5305\u62ec\uff1aall, compactor, distributor, ingester, querier, query-scheduler,\n#  ingester-querier, query-frontend, index-gateway, ruler, table-manager, read, write\u3002\n# \u5f53\u4f7f\u7528 `-list-target` \u547d\u4ee4\u884c\u6807\u5fd7\u8fd0\u884c Loki \u65f6\uff0c\u53ef\u4ee5\u6253\u5370\u53ef\u7528\u76ee\u6807\u7684\u5b8c\u6574\u5217\u8868\u3002\n&#91;target: &lt;string&gt; | default = \"all\"]\n\n# \u901a\u8fc7 X-Scope-OrgID Header \u542f\u7528\u8eab\u4efd\u9a8c\u8bc1\uff0c\u5982\u679c\u4e3a true\uff0c\u8be5 Header \u5fc5\u987b\u5b58\u5728\u3002\n# \u5982\u679c\u4e3a false\uff0cOrgID \u5c06\u59cb\u7ec8\u8bbe\u7f6e\u4e3a \"fake\"\u3002\n&#91;auth_enabled: &lt;boolean&gt; | default = true]\n\n&#91;ballast_bytes: &lt;int&gt; | default = 0]\n\n# \u914d\u7f6e\u5df2\u542f\u52a8\u670d\u52a1\u7684 HTTP \u548c gRPC \u670d\u52a1\u5668\u901a\u4fe1\u3002\n&#91;server: &lt;server&gt;]\n\n# \u914d\u7f6e distributor\u3002\n&#91;distributor: &lt;distributor&gt;]\n\n# \u914d\u7f6e querier\uff0c\u4ec5\u5728\u8fd0\u884c\u6240\u6709\u6a21\u5757\u6216 querier \u65f6\u9002\u7528\u3002\n&#91;querier: &lt;querier&gt;]\n\n# query_scheduler \u5757\u914d\u7f6e Loki \u67e5\u8be2\u8c03\u5ea6\u7a0b\u5e8f\u3002\n# \u914d\u7f6e\u540e\uff0c\u5b83\u5c06\u79df\u6237\u67e5\u8be2\u961f\u5217\u4e0e\u67e5\u8be2\u524d\u7aef\u5206\u79bb\n&#91;query_scheduler: &lt;query_scheduler&gt;]\n\n# \u914d\u7f6e Loki query-frontend \u6a21\u5757\n&#91;frontend: &lt;frontend&gt;]\n\n# \u5728 Loki query-frontend \u914d\u7f6e\u67e5\u8be2\u5206\u5272\u548c\u7f13\u5b58\u3002\n&#91;query_range: &lt;query_range&gt;]\n\n# \u914d\u7f6e Loki ruler \u6a21\u5757\n&#91;ruler: &lt;ruler&gt;]\n\n# \u914d\u7f6e distributor \u5982\u4f55\u8fde\u63a5\u5230 ingester\u3002\n# \u4ec5\u5728\u8fd0\u884c\u6240\u6709\u7ec4\u4ef6\u3001distributor \u6216 querier \u65f6\u9002\u7528\u3002\n&#91;ingester_client: &lt;ingester_client&gt;]\n\n# \u914d\u7f6e ingester \u4ee5\u53ca ingester \u5982\u4f55\u5c06\u81ea\u5df1\u6ce8\u518c\u5230 kv \u5b58\u50a8\u3002\n&#91;ingester: &lt;ingester&gt;]\n\n# \u914d\u7f6e Loki \u5b58\u50a8\u6570\u636e\u7684\u5730\u65b9\n&#91;storage_config: &lt;storage_config&gt;]\n\n# \u914d\u7f6e Loki \u5728\u6307\u5b9a\u7684\u5b58\u50a8\u4e2d\u5982\u4f55\u5b58\u50a8\u6570\u636e\n&#91;chunk_store_config: &lt;chunk_store_config&gt;]\n\n# \u914d\u7f6e chunk \u7d22\u5f15 schema \u548c\u5b58\u50a8\u7684\u4f4d\u7f6e\n&#91;schema_config: &lt;schema_config&gt;]\n\n# \u914d\u7f6e compactor \u7ec4\u4ef6\uff0c\u8be5\u7ec4\u4ef6\u538b\u7f29\u7d22\u5f15\u5206\u7247\u4ee5\u63d0\u9ad8\u6027\u80fd\n&#91;compactor: &lt;compactor&gt;]\n\n# \u914d\u7f6e\u6bcf\u4e2a\u79df\u6237\u6216\u5168\u5c40\u7684\u9650\u5236\n&#91;limits_config: &lt;limits_config&gt;]\n\n# \u914d\u7f6e\u5728 Loki querier \u4e2d\u8fd0\u884c\u7684 worker - \u62fe\u53d6\u5e76\u6267\u884c\u67e5\u8be2\u524d\u7aef\u6392\u961f\u7684\u67e5\u8be2\u3002\n&#91;frontend_worker: &lt;frontend_worker&gt;]\n\n# \u914d\u7f6e\u7528\u4e8e\u4fdd\u7559\u7684 table manager\u3002\n&#91;table_manager: &lt;table_manager&gt;]\n\n# \u914d\u7f6e runtime config \u6a21\u5757\uff0c\u8d1f\u8d23\u91cd\u65b0\u52a0\u8f7d\u8fd0\u884c\u65f6\u914d\u7f6e\u6587\u4ef6\u3002\n&#91;runtime_config: &lt;runtime_config&gt;]\n\n# \u914d\u7f6e tracing\n&#91;tracing: &lt;tracing&gt;]\n\n# \u591a\u4e2a\u6a21\u5757\u4e4b\u95f4\u5171\u4eab\u7684\u901a\u7528\u914d\u7f6e\u3002\n# \u5982\u679c\u5728\u5176\u4ed6\u90e8\u5206\u4e2d\u7ed9\u51fa\u4e86\u66f4\u5177\u4f53\u7684\u914d\u7f6e\uff0c\u5219\u5c06\u5ffd\u7565\u6b64\u90e8\u5206\u4e2d\u7684\u76f8\u5173\u914d\u7f6e\u3002\n&#91;common: &lt;common&gt;]\n\n# \u4f7f\u7528\u60c5\u51b5\u62a5\u544a\u7684\u914d\u7f6e\n&#91;analytics: &lt;analytics&gt;]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">common<\/h4>\n\n\n\n<ul>\n<li>\u901a\u7528\u914d\u7f6e\u5757&nbsp;<code>common<\/code>&nbsp;\u662f\u7531\u4e0d\u540c\u7ec4\u4ef6\u5171\u4eab\u7684\u516c\u5171\u5b9a\u4e49\uff0c\u8fd9\u6837\uff0c\u5c31\u4e0d\u5fc5\u5728\u591a\u4e2a\u5730\u65b9\u91cd\u590d\u914d\u7f6e\u4e86\uff0c\u4e0b\u9762\u662f\u8be5\u914d\u7f6e\u5757\u7684\u76f8\u5173\u5c5e\u6027\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u4e0d\u540c Loki \u7ec4\u4ef6\u4f7f\u7528\u7684\u516c\u5171\u5b58\u50a8\u914d\u7f6e\n&#91;storage: &lt;storage&gt;]\n\n# \u5b9a\u4e49\u540e\uff0c\u6307\u5b9a\u524d\u7f00\u5c06\u51fa\u73b0\u5728\u7aef\u70b9\u8def\u5f84\u7684\u524d\u9762\n&#91;path_prefix: &lt;string&gt;]\n\n# \u4f20\u5165\u7684\u6570\u636e\u5e94\u8be5\u88ab\u590d\u5236\u5230 ingester \u7ec4\u4ef6\u591a\u5c11\u6b21\n&#91;replication_factor: &lt;int&gt; | default = 3]\n\n# \u5982\u679c\u4e3a true\uff0c\u5219 ingester\u3001compactor \u548c query_scheduler \u7684 ring tokens \u5c06\u4fdd\u5b58\u5230 path_prefix \u76ee\u5f55\u4e2d\u7684\u6587\u4ef6\u4e2d\u3002\u5982\u679c\u5c06\u5176\u8bbe\u7f6e\u4e3a true \u4e14 path_prefix \u524d\u7f00\u4e3a\u7a7a\uff0cLoki \u5c06\u51fa\u9519\u3002\n&#91;persist_tokens: &lt;boolean&gt;: default = false]\n\n# \u7528\u4e8e\u5185\u90e8\u67e5\u627e\u5730\u5740\u7684\u901a\u7528\u7684\u7f51\u7edc\u63a5\u53e3\u5217\u8868\u3002\n# \u5982\u679c\u8bbe\u7f6e\u4e86\u66f4\u5177\u4f53\u7684 \"instance_interface_names\"\uff0c\u5219\u5ffd\u7565\u6b64\u9009\u9879\u3002\n# \u5982\u679c\u5728\u516c\u5171\u7684 ring \u6a21\u5757\u4e0b\u914d\u7f6e\u4e86 \"instance_interface_names\"\uff0c\u5219\u8be5\u901a\u7528\u914d\u7f6e \"instance_interface_names\" \u53ea\u9002\u7528\u4e8e\u524d\u7aef\uff0c\u800c\u4e0d\u9002\u7528\u4e8e\u4e0e ring \u76f8\u5173\u7684\u7ec4\u4ef6\uff08\u6bd4\u5982\uff1adistributor\u3001ruler \u7b49\u7b49\uff09\n&#91;instance_interface_names: &lt;list of string&gt; | default = &#91;&lt;private network interfaces&gt;]]\n\n# Loki \u7ec4\u4ef6\u7528\u4e8e\u66b4\u9732\u5176\u5730\u5740\u7684\u516c\u5171\u5730\u5740\u3002\n# \u5982\u679c\u914d\u7f6e\u4e86\u66f4\u5177\u4f53\u7684 \"instance_addr\" \u5730\u5740\uff0c\u8be5\u914d\u7f6e\u4f1a\u88ab\u5ffd\u7565\u3002\n# \u5982\u679c \"instance_addr\" \u5728\u516c\u5171 ring \u90e8\u5206\u4e0b\u914d\u7f6e\u4e86\uff0c\u5219\u8be5\u901a\u7528 \"instance_addr\" \u914d\u7f6e\u53ea\u9002\u7528\u4e8e\u524d\u7aef\uff0c\u800c\u4e0d\u9002\u7528\u4e8e\u4e0e ring \u76f8\u5173\u7684\u7ec4\u4ef6\uff08\u6bd4\u5982\uff1adistributor\u3001ruler \u7b49\u7b49\uff09\u3002\n&#91;instance_addr: &lt;string&gt;]\n\n# \u6240\u6709 Loki rings \u4f7f\u7528\u7684\u901a\u7528 ring \u914d\u7f6e\u3002\n# \u5982\u679c\u6307\u5b9a\u4e86\u901a\u7528\u7684 ring \u73af\uff0c\u5219\u5176\u503c\u7528\u4e8e\u5b9a\u4e49\u4efb\u4f55\u672a\u5b9a\u4e49\u7684 ring \u503c\u3002\n# \u4f8b\u5982\uff0c\u4f60\u53ef\u4ee5\u671f\u671b distributor \u7684 ring \u73af\u4f7f\u7528\u516c\u5171\u90e8\u5206\u4e2d\u5b9a\u4e49\u7684 `heartbeat_period`\uff0c\u4f46\u524d\u63d0\u662f distributor \u7684 ring \u672c\u8eab\u6ca1\u6709\u914d\u7f6e `heartbeat_period`\u3002\n&#91;ring: &lt;ring&gt;]<\/code><\/pre>\n\n\n\n<ul>\n<li>\u4e0a\u9762\u7684\u901a\u7528\u914d\u7f6e\u5757\u4e2d\u6709\u4e00\u4e2a&nbsp;<code>storage<\/code>&nbsp;\u7684\u914d\u7f6e\u9879\uff0c\u7528\u6765\u5b9a\u4e49 Loki \u4e0d\u540c\u7ec4\u4ef6\u4f7f\u7528\u7684\u516c\u5171\u5b58\u50a8\u914d\u7f6e\u3002\u5982\u679c\u5728\u914d\u7f6e\u6587\u4ef6\u7684\u5176\u4ed6\u4f4d\u7f6e\u63d0\u4f9b\u4e86\u5bf9\u8c61\u5b58\u50a8\u5ba2\u6237\u7aef\u7684\u4efb\u4f55\u7279\u5b9a\u914d\u7f6e\uff0c\u5219\u8be5\u7279\u5b9a\u914d\u7f6e\u5c06\u53d6\u4ee3\u901a\u7528\u5b58\u50a8\u914d\u7f6e\uff0c\u5bf9\u5e94\u7684\u5c5e\u6027\u5982\u4e0b\u6240\u793a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># azure \u914d\u7f6e\n&#91;azure: &lt;azure_storage_config&gt;]\n\n# gcs \u914d\u7f6e\n&#91;gcs: &lt;gcs_storage_config&gt;]\n\n# s3 \u914d\u7f6e\n&#91;s3: &lt;s3_storage_config&gt;]\n\n# swift \u914d\u7f6e\n&#91;swift: &lt;swift_storage_config&gt;]\n\n# \u914d\u7f6e\u4e00\u4e2a\uff08\u672c\u5730\uff09\u6587\u4ef6\u7cfb\u7edf\n&#91;filesystem: &lt;filesystem&gt;]\n\n&#91;hedging: &lt;hedging_config&gt;]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">storage_config<\/h4>\n\n\n\n<ul>\n<li>Loki \u7684\u5b58\u50a8\u5f15\u64ce\u914d\u7f6e\uff0c\u8fd9\u4e2a\u914d\u7f6e\u5757\u91cc\u9762\u4e3b\u8981\u5b9a\u4e49\u7684\u662f\u5404\u7c7b\u5b58\u50a8\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\u3002\u5982\u4e0b\u6240\u793a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u5728 AWS \u4e2d\u7684 chunks \u5b58\u50a8\u7684\u914d\u7f6e\u3002\u5fc5\u9700\u7684\u9009\u9879\u53ea\u6709\u5728 aws \u51fa\u73b0\u65f6\u624d\u9700\u8981\u3002\naws:\n  # S3 \u6216 S3 \u517c\u5bb9\u7684 endpoint URL \u5730\u5740\uff0c\u5e26\u6709\u7f16\u7801\u7684 Key \u548c Secret\u3002\n  # \u5982\u679c\u4ec5\u5c06 region \u914d\u7f6e\u4e3a\u4e3b\u673a\uff0c\u5219\u5c06\u63a8\u65ad\u51fa\u6b63\u786e\u7684\u7aef\u70b9\u3002\n  # CLI flag: -s3.url\n  &#91;s3: &lt;string&gt;]\n\n  # \u8bbe\u7f6e\u4e3a true \u53ef\u5f3a\u5236\u8bf7\u6c42\u4f7f\u7528 path-style \u5bfb\u5740\n  # CLI flag: -s3.force-path-style\n  &#91;s3forcepathstyle: &lt;boolean&gt; | default = false]\n\n  # \u4ee5\u9017\u53f7\u5206\u9694\u7684 buckets \u540d\u79f0\u5217\u8868\uff0c\u7528\u4e8e\u5747\u5300\u5206\u5e03 chunks\u3002\n  # \u5728 s3.url \u6807\u5fd7\u4e2d\u8986\u76d6\u4efb\u610f\u7684 buckets\n  # CLI flag: -s3.buckets\n  &#91;bucketnames: &lt;string&gt; | default = \"\"]\n\n  # \u8fde\u63a5\u7684 S3 Endpoint\n  # CLI flag: -s3.endpoint\n  &#91;endpoint: &lt;string&gt; | default = \"\"]\n\n  # AWS \u4f7f\u7528\u7684\u533a\u57df\n  # CLI flag: -s3.region\n  &#91;region: &lt;string&gt; | default = \"\"]\n\n  # AWS Access Key ID.\n  # CLI flag: -s3.access-key-id\n  &#91;access_key_id: &lt;string&gt; | default = \"\"]\n\n  # AWS Secret Access Key.\n  # CLI flag: -s3.secret-access-key\n  &#91;secret_access_key: &lt;string&gt; | default = \"\"]\n\n  # \u7981\u7528 https\n  # CLI flag: -s3.insecure\n  &#91;insecure: &lt;boolean&gt; | default = false]\n\n  # \u542f\u7528 AES256 AWS \u670d\u52a1\u5668\u7aef\u52a0\u5bc6\n  # CLI flag: -s3.sse-encryption\n  &#91;sse_encryption: &lt;boolean&gt; | default = false]\n\n  # ... \u7701\u7565\u5176\u4ed6\u914d\u7f6e\n\n  # \u914d\u7f6e DynamoDB \u8fde\u63a5\n  dynamodb:\n    # DynamoDB URL \u5730\u5740\n    # CLI flag: -dynamodb.url\n    dynamodb_url: &lt;string&gt;\n    # ...... \u7701\u7565 dynamodb \u914d\u7f6e\n\n# \u5728 Bigtable \u4e2d\u914d\u7f6e\u5b58\u50a8\u7d22\u5f15\u3002\u53ea\u6709\u5728\u914d\u7f6e\u4e2d\u5b9a\u4e49\u4e86 bigtable \u65f6\uff0c\u624d\u9700\u8981\u5fc5\u586b\u5b57\u6bb5\u3002\nbigtable:\n  # BigTable project ID\n   # CLI flag: -bigtable.project\n  project: &lt;string&gt;\n\n  # BigTable instance ID\n  # CLI flag: -bigtable.instance\n  instance: &lt;string&gt;\n\n  # \u914d\u7f6e\u8fde\u63a5\u5230 Bigtable \u7684 gRPC \u5ba2\u6237\u7aef\n  &#91;grpc_client_config: &lt;grpc_client_config&gt;]\n\n# \u914d\u7f6e\u5b58\u50a8 chunks \u5728 GCS \u4e2d\uff0c\u53ea\u6709\u5728\u914d\u7f6e\u4e2d\u5b9a\u4e49\u4e86 gcs \u65f6\u624d\u9700\u8981\u8be5\u5b57\u6bb5\ngcs:\n  # \u8981\u653e\u5165 chunks \u7684 GCS \u5b58\u50a8\u6876\u7684\u540d\u79f0\u3002\n  # CLI flag: -gcs.bucketname\n  bucket_name: &lt;string&gt;\n\n  # GCS\u5ba2\u6237\u7aef\u7528\u4e8e\u6bcf\u4e2a PUT \u8bf7\u6c42\u7684\u7f13\u51b2\u533a\u5927\u5c0f\uff0c0\u8868\u793a\u7981\u7528 buffer\u3002\n  # to disable buffering.\n  # CLI flag: -gcs.chunk-buffer-size\n  &#91;chunk_buffer_size: &lt;int&gt; | default = 0]\n\n  # \u5bf9 GCS \u7684\u8bf7\u6c42\u8d85\u65f6\u7684\u65f6\u95f4\u3002\n  # CLI flag: -gcs.request-timeout\n  &#91;request_timeout: &lt;duration&gt; | default = 0s]\n\n# \u5728 Cassandra \u4e2d\u5b58\u50a8 chunks \u548c\/\u6216 \u7d22\u5f15\u7684\u914d\u7f6e\ncassandra:\n  # \u7528\u9017\u53f7\u5206\u9694\u7684 Cassandra \u5b9e\u4f8b\u7684\u4e3b\u673a\u540d\u6216 IPs\n  # CLI flag: -cassandra.addresses\n  addresses: &lt;string&gt;\n  # cassandra \u7aef\u53e3\n  # CLI flag: -cassandra.port\n  &#91;port: &lt;int&gt; | default = 9042]\n\n  # ...... \u7701\u7565\n\nswift:\n#   ...... \u7701\u7565\n\n# \u5b58\u50a8\u7d22\u5f15\u5728 BoltDB \u4e2d\u7684\u914d\u7f6e\u3002\nboltdb:\n  # BoltDB \u7d22\u5f15\u6587\u4ef6\u8def\u5f84\n  # CLI flag: -boltdb.dir\n  directory: &lt;string&gt;\n\n# \u5b58\u50a8 chunks \u5728\u672c\u5730\u6587\u4ef6\u7cfb\u7edf\nfilesystem:\n  # chunks \u5b58\u50a8\u7684\u8def\u5f84\n  # CLI flag: -local.chunk-directory\n  directory: &lt;string&gt;\n\n# \u4ee5 boltdb \u6587\u4ef6\u7684\u5f62\u5f0f\u5728\u5bf9\u8c61\u5b58\u50a8\uff08GCS\/S3\/Azure\/Swift\/Filesystem\uff09\u4e2d\u914d\u7f6e\u5b58\u50a8\u7d22\u5f15\u3002\nboltdb_shipper:\n  # ingesters \u5c06\u6570\u636e\u5199\u5165 boltdb \u6587\u4ef6\u7684\u76ee\u5f55\uff0c\u7136\u540e\u7531 shipper \u4e0a\u4f20\u5230\u914d\u7f6e\u7684\u5b58\u50a8\u4e2d\n  # CLI flag: -boltdb.shipper.active-index-directory\n  &#91;active_index_directory: &lt;string&gt; | default = \"\"]\n\n  # \u7528\u4e8e\u4fdd\u5b58 boltdb \u6587\u4ef6\u7684\u5171\u4eab\u5b58\u50a8\uff0c\u652f\u6301\u7684\u7c7b\u578b\u6709\uff1agcs\u3001s3\u3001azure\u3001filesystem\n  # CLI flag: -boltdb.shipper.shared-store\n  &#91;shared_store: &lt;string&gt; | default = \"\"]\n\n  # \u7528\u4e8e\u6062\u590d\u67e5\u8be2\u7684 boltDB \u6587\u4ef6\u7684\u7f13\u5b58\u4f4d\u7f6e\n  # CLI flag: -boltdb.shipper.cache-location\n  &#91;cache_location: &lt;string&gt; | default = \"\"]\n\n  # \u67e5\u8be2\u7f13\u5b58\u4e2d\u6062\u590d\u7684 boltDB \u6587\u4ef6\u7684 TTL\n  # CLI flag: -boltdb.shipper.cache-ttl\n  &#91;cache_ttl: &lt;duration&gt; | default = 24h]\n\n  # \u5c06\u4e0b\u8f7d\u7684\u6587\u4ef6\u4e0e\u5b58\u50a8\u91cd\u65b0\u540c\u6b65\u7684\u9891\u7387\n  # CLI flag: -boltdb.shipper.resync-interval\n  &#91;resync_interval: &lt;duration&gt; | default = 5m]\n\n  # \u4e3a\u67e5\u8be2\u4fdd\u7559\u4e0b\u8f7d\u7d22\u5f15\u7684\u5929\u6570\uff0c\u4ec5\u9002\u7528\u4e8e\u4ee524\u5c0f\u65f6\u5468\u671f\u521b\u5efa\u7684\u8868\u3002\n  # CLI flag: -boltdb.shipper.query-ready-num-days\n  &#91;query_ready_num_days: &lt;int&gt; | default = 0]\n\n  index_gateway_client:\n    # Index Gateway gRPC \u670d\u52a1\u5730\u5740\n    # CLI flag: -boltdb.shipper.index-gateway-client.server-address\n    &#91;server_address: &lt;string&gt; | default = \"\"]\n    # \u8fde\u63a5 Index Gateway gRPC \u670d\u52a1\u7684 gRPC \u5ba2\u6237\u7aef\n    &#91;grpc_client_config: &lt;grpc_client_config&gt;]\n\n# \u6d3b\u8dc3\u7d22\u5f15\u7684\u7f13\u5b58\u6709\u6548\u671f\uff0c\u4e0d\u5e94\u9ad8\u4e8e ingester \u8bbe\u7f6e\u4e2d\u7684 `chunk_idle_period`\u3002\n# CLI flag: -store.index-cache-validity\n&#91;index_cache_validity: &lt;duration&gt; | default = 5m]\n\n# \u6bcf\u6279\u83b7\u53d6\u7684\u6700\u5927 chunks \u6570\u3002\n# CLI flag: -store.max-chunk-batch-size\n&#91;max_chunk_batch_size: &lt;int&gt; | default = 50]\n\n# \u914d\u7f6e\u5982\u4f55\u6784\u5efa\u7d22\u5f15\u67e5\u8be2\u7684\u7f13\u5b58\u3002\nindex_queries_cache_config: &lt;cache_config&gt;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">distributor<\/h4>\n\n\n\n<ul>\n<li><code>distributor<\/code>&nbsp;\u914d\u7f6e\u5757\u7528\u4e8e\u914d\u7f6e distributor \u7ec4\u4ef6\uff0c\u8be5\u914d\u7f6e\u5757\u5bf9\u5e94\u7684\u5c5e\u6027\u6709\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u914d\u7f6e distributors ring\uff0c\u5728\u542f\u7528 \"global\" \u6444\u53d6\u7387\u7b56\u7565\u65f6\u4f7f\u7528\u3002\nring:\n  kvstore:\n    # ring \u4f7f\u7528\u7684\u540e\u7aef\u5b58\u50a8\uff0c\u652f\u6301\u7684\u503c\u5305\u62ec\uff1aconsul\u3001etcd\u3001inmemory\u3001memberlist\n    # memberlist \u4f7f\u7528\u7684\u662f gossip \u534f\u8bae\u6765\u8ba9\u96c6\u7fa4\u5185\u7684\u6240\u6709\u8282\u70b9\u8fbe\u5230\u6700\u7ec8\u4e00\u81f4\u6027\u7684\n    # CLI flag: -distributor.ring.store\n    store: &lt;string&gt;\n\n    # \u5b58\u50a8\u4e2d key \u7684\u524d\u7f00\uff0c \u5e94\u4ee5 `\/` \u7ed3\u5c3e\u3002\n    # CLI flag: -distributor.ring.prefix\n    &#91;prefix: &lt;string&gt; | default = \"collectors\/\"]\n\n    # Consul \u5ba2\u6237\u7aef\u914d\u7f6e\uff0c\u53ea\u6709\u5f53 store \u914d\u7f6e\u4e3a `consul` \u7684\u65f6\u5019\u624d\u9002\u7528\n    # \u6b64\u5757\u914d\u7f6e\u7684 CLI \u6807\u5fd7\u524d\u7f00\u4e3a\uff1adistributor.ring\n    &#91;consul: &lt;consul_config&gt;]\n\n    # ETCD v3 \u5ba2\u6237\u7aef\u914d\u7f6e\uff0c\u53ea\u6709\u5f53 store \u914d\u7f6e\u4e3a `etcd` \u7684\u65f6\u5019\u624d\u9002\u7528\n    # \u6b64\u5757\u914d\u7f6e\u7684 CLI \u6807\u5fd7\u524d\u7f00\u4e3a\uff1adistributor.ring\n    &#91;etcd: &lt;etcd_config&gt;]\n\n  # \u5fc3\u8df3\u8d85\u65f6\uff0c\u5728\u6b64\u8d85\u65f6\u4e4b\u540e\uff0cring \u5185\u7684 distributor \u88ab\u89c6\u4e3a\u4e0d\u5065\u5eb7\uff0c0\u8868\u793anever\n  # CLI flag: -distributor.ring.heartbeat-timeout\n  &#91;heartbeat_timeout: &lt;duration&gt; | default = 1m]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">querier<\/h4>\n\n\n\n<ul>\n<li><code>querier<\/code>&nbsp;\u914d\u7f6e\u5757\u7528\u4e8e\u914d\u7f6e querier \u7ec4\u4ef6\uff0c\u5305\u542b\u7684\u5c5e\u6027\u6709\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u5728\u6267\u884c\u67e5\u8be2\u8bf7\u6c42\u671f\u95f4\u67e5\u8be2 ingesters \u6216\u5b58\u50a8\u7684\u8d85\u65f6\u65f6\u95f4\u3002\n# CLI flag: -querier.query-timeout\n&#91;query_timeout: &lt;duration&gt; | default = 1m]\n\n# \u4e3a\u5b9e\u65f6\u8ddf\u8e2a\u8bf7\u6c42\u63d0\u4f9b\u670d\u52a1\u7684\u6700\u957f\u6301\u7eed\u65f6\u95f4\u3002\n# CLI flag: -querier.tail-max-duration\n&#91;tail_max_duration: &lt;duration&gt; | default = 1h]\n\n# \u53d1\u9001\u8d85\u8fc7\u6700\u5c0f\u6210\u529f\u67e5\u8be2\u8bf7\u6c42\u4e4b\u524d\u7684\u7b49\u5f85\u65f6\u95f4\u3002\n# CLI flag: -querier.extra-query-delay\n&#91;extra_query_delay: &lt;duration&gt; | default = 0s]\n\n# \u6700\u5927\u56de\u6eaf\u671f\uff0c\u8d85\u8fc7\u8be5\u503c\uff0c\u67e5\u8be2\u4e0d\u4f1a\u53d1\u9001\u5230 ingester\u3002\n# 0 \u610f\u5473\u7740\u6240\u6709\u7684 queries \u88ab\u53d1\u9001\u5230 ingester\u3002\n# CLI flag: -querier.query-ingesters-within\n&#91;query_ingesters_within: &lt;duration&gt; | default = 3h]\n\n# \u5141\u8bb8\u7684\u6700\u5927\u5e76\u53d1\u67e5\u8be2\u6570\n# CLI flag: -querier.max-concurrent\n&#91;max_concurrent: &lt;int&gt; | default = 10]\n\n# \u4ec5\u67e5\u8be2\u5b58\u50a8\u4e2d\u7684\u6570\u636e\uff0c\u4e0d\u5c1d\u8bd5\u67e5\u8be2\u4efb\u4f55 ingesters\n# CLI flag: -querier.query-store-only\n&#91;query_store_only: &lt;boolean&gt; | default = false]\n\n# \u662f\u5426\u5141\u8bb8\u67e5\u8be2\u591a\u4e2a\u79df\u6237\n# CLI flag: -querier.multi-tenant-queries-enabled\n&#91;multi_tenant_queries_enabled: &lt;boolean&gt; | default = false]\n\n# LogQL \u5f15\u64ce\u914d\u7f6e\u9009\u9879\nengine:\n  # \u67e5\u8be2\u6267\u884c\u8d85\u65f6\u65f6\u95f4\n  # CLI flag: -querier.engine.timeout\n  &#91;timeout: &lt;duration&gt; | default = 3m]\n\n  # \u67e5\u627e\u65e5\u5fd7\u884c\u7684\u6700\u957f\u65f6\u95f4\uff0c\u4ec5\u9002\u7528\u4e8e\u5373\u65f6\u65e5\u5fd7\u67e5\u8be2\u3002\n  # CLI flag: -querier.engine.max-lookback-period\n  &#91;max_look_back_period: &lt;duration&gt; | default = 30s]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">query_range<\/h4>\n\n\n\n<ul>\n<li>\u7528\u4e8e\u5728 Loki \u67e5\u8be2\u524d\u7aef\u914d\u7f6e\u67e5\u8be2\u5206\u5272\u548c\u7f13\u5b58\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u4e0d\u63a8\u8350: \u6309\u65e5\u62c6\u5206\u67e5\u8be2\u5e76\u884c\u6267\u884c\u3002\n# \u7528 -querier.split-queries-by-interval \u4ee3\u66ff.\n# CLI flag: -querier.split-queries-by-day\n&#91;split_queries_by_day: &lt;boolean&gt; | default = false]\n\n# \u5bf9\u4f20\u5165\u67e5\u8be2\u8fdb\u884c\u53d8\u66f4\uff0c\u4f7f\u5176\u5f00\u59cb\u548c\u7ed3\u675f\u4e0e\u5176\u6b65\u957f\u4fdd\u6301\u4e00\u81f4\u3002\n# CLI flag: -querier.align-querier-with-step\n&#91;align_queries_with_step: &lt;boolean&gt; | default = false]\n\nresults_cache:  # \u7f13\u5b58\n  cache: &lt;cache_config&gt;\n\n# \u7f13\u5b58\u67e5\u8be2\u7ed3\u679c\n# CLI flag: -querier.cache-results\n&#91;cache_results: &lt;boolean&gt; | default = false]\n\n# \u5355\u4e2a\u8bf7\u6c42\u7684\u6700\u5927\u91cd\u8bd5\u6b21\u6570\n# CLI flag: -querier.max-retries-per-request\n&#91;max_retries: &lt;int&gt; | default = 5]\n\n# \u6839\u636e\u5b58\u50a8\u5206\u7247\u914d\u7f6e\u6267\u884c\u67e5\u8be2\u5e76\u884c\u5316\uff0c\u5e76\u67e5\u8be2AST\u3002\u6b64\u529f\u80fd\u4ec5\u7531 chunks \u5b58\u50a8\u5f15\u64ce\u652f\u6301\u3002\n# CLI flag: -querier.parallelise-shardable-queries\n&#91;parallelise_shardable_queries: &lt;boolean&gt; | default = true]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">schema_config<\/h4>\n\n\n\n<ul>\n<li>\u8fd9\u91cc\u9762\u4e3b\u8981\u5b9a\u4e49\u7684\u662f Loki \u6570\u636e\u5b58\u50a8\u7684\u7b56\u7565\uff0c\u4ece\u9ed8\u8ba4\u7684\u914d\u7f6e\u91cc\u9762\u53ef\u4ee5\u5f97\u5230\u7684\u4fe1\u606f\u662f Loki \u91cc\u9762\u4fdd\u5b58\u7684\u662f2018\u5e744\u670815\u65e5\u4e4b\u540e\u7684\u6570\u636e\uff0c\u540c\u65f6\u539f\u59cb\u6587\u4ef6\uff08chunks\uff09\u5b58\u5728 filesystem \u4e2d\uff0cindex \u5b58\u5728 boltdb \u5f53\u4e2d\u4e14\u4fdd\u5b58\u7684\u5468\u671f\u662f168\u5c0f\u65f6<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u7528\u4e8e chunk \u7d22\u5f15 schemas \u914d\u7f6e\nconfigs:\n- &#91;&lt;period_config&gt;]<\/code><\/pre>\n\n\n\n<ul>\n<li>\u5176\u4e2d\u5c31\u5305\u542b\u4e00\u4e2a&nbsp;<code>period_config<\/code>&nbsp;\u5217\u8868\uff0c\u8be5\u914d\u7f6e\u5757\u7528\u4e8e\u914d\u7f6e\u4ece\u7279\u5b9a\u7684\u65f6\u95f4\u6bb5\u5e94\u8be5\u4f7f\u7528\u54ea\u4e9b\u7d22\u5f15\u6a21\u5f0f<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u5e94\u8be5\u521b\u5efa\u7d22\u5f15 buckets \u7684\u7b2c\u4e00\u5929\u7684\u65e5\u671f\u3002\n# \u5982\u679c\u8fd9\u662f\u552f\u4e00\u7684 `period_config`\uff0c\u5219\u4f7f\u7528\u8fc7\u53bb\u7684\u65e5\u671f\uff0c\u5426\u5219\u5728\u5e0c\u671b\u6a21\u5f0f\u5207\u6362\u65f6\u4f7f\u7528\u65e5\u671f\u3002\n# YYYY-MM-DD \u683c\u5f0f, \u4f8b\u5982: 2018-04-15.\n&#91;from: &lt;daytime&gt;]\n\n# \u4e0b\u9762\u7684 store \u548c object_store \u4f1a\u51b3\u5b9a\u4f7f\u7528\u54ea\u4e2a &lt;storage_config&gt; key\u3002\n\n# \u7528\u4e8e\u7d22\u5f15\u7684\u5b58\u50a8\uff1aaws\u3001aws-dynamo\u3001gcp\u3001bigtable\u3001bigtable-hashed\u3001cassandra\u3001boltdb \u6216\u8005 boltdb-shipper\u3002\nstore: &lt;string&gt;\n\n# \u7528\u4e8e chunks \u7684\u5b58\u50a8\uff1aaws\u3001azure\u3001gcp\u3001bigtable\u3001gcs\u3001cassandra\u3001swift \u6216\u8005 filesystem\n# \u5982\u679c\u7701\u7565\uff0c\u5219\u9ed8\u8ba4\u4e3a\u4e0e store \u76f8\u540c\u7684\u503c\u3002\n&#91;object_store: &lt;string&gt;]\n\n# schema \u4f7f\u7528\u7684\u7248\u672c\nschema: &lt;string&gt;\n\n# \u914d\u7f6e\u7d22\u5f15\u5982\u4f55\u66f4\u65b0\u548c\u5b58\u50a8\nindex:\n  # \u6240\u6709\u5468\u671f\u8868\u7684\u8868\u524d\u7f00\u3002\n  prefix: &lt;string&gt;\n  # Table \u5468\u671f.\n  &#91;period: &lt;duration&gt; | default = 168h]\n  # \u8981\u6dfb\u52a0\u5230\u6240\u6709\u7ba1\u7406\u7684\u8868\u4e2d\u7684\u6807\u7b7e\u3002\n  tags:\n    &#91;&lt;string&gt;: &lt;string&gt; ...]\n\n# \u914d\u7f6e chunks \u7684\u66f4\u65b0\u548c\u5b58\u50a8\u65b9\u5f0f\u3002\nchunks:\n  prefix: &lt;string&gt;\n  &#91;period: &lt;duration&gt; | default = 168h]\n  tags:\n    &#91;&lt;string&gt;: &lt;string&gt; ...]\n\n# \u5c06\u521b\u5efa\u591a\u5c11\u4e2a\u5206\u7247\u3002\u4ec5\u5f53 schema \u4e3a v10 \u6216\u66f4\u9ad8\u7248\u672c\u65f6\u4f7f\u7528\u3002\n&#91;row_shards: &lt;int&gt; | default = 16]<\/code><\/pre>\n\n\n\n<ul>\n<li>Loki \u5bf9\u4e8e\u6570\u636e\u5b58\u50a8\u7684\u76ee\u6807\u662f\u5411\u540e\u517c\u5bb9\uff0c\u901a\u8fc7\u4fee\u6539 Schema \u914d\u7f6e\u5141\u8bb8\u4ee5\u589e\u91cf\u65b9\u5f0f\u5347\u7ea7\u5230\u65b0\u7684\u5b58\u50a8\u6a21\u5f0f\u3002\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u5728<code>schema_config<\/code>&nbsp;\u4e2d\u521b\u5efa\u4e00\u4e2a\u65b0\u7684 configs \u6761\u76ee\uff0c\u8981\u8bb0\u4f4f\u7684\u662f\u65b0\u52a0\u7684\u5b58\u50a8\u6a21\u5f0f\u8d77\u59cb\u65f6\u95f4\u5fc5\u987b\u662f\u5c06\u6765\u7684\u67d0\u4e2a\u65f6\u95f4\u70b9\uff0c\u8fd9\u6837 Table Manager \u5c31\u53ef\u4ee5\u5728\u4e4b\u524d\u521b\u5efa\u6240\u9700\u7684\u8868\uff0c\u5e76\u786e\u4fdd\u4e0d\u4f1a\u67e5\u8be2\u73b0\u6709\u6570\u636e\u3002\u5426\u5219\u5728\u67e5\u8be2\u65f6\u4f1a\u56e0\u4e22\u5931\u65e7\u7684\u65e5\u5fd7\u7d22\u5f15\u9020\u6210\u65e0\u6cd5\u68c0\u7d22\u3002\u4f8b\u5982\u6211\u4eec\u8981\u628a2022\u5e746\u670818\u65e5\u4e4b\u540e\u7684 Loki \u65e5\u5fd7\u5207\u6362\u5230 cassandra \u548c S3 \u4e0a\uff0c\u90a3\u4e48\u6309\u7167\u5982\u4e0b\u914d\u7f6e\u540e\uff0c\u91cd\u542f\u670d\u52a1\u5373\u53ef<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>schema_config:\n  configs:\n  - from: 2018-04-15\n    store: boltdb\n    object_store: filesystem\n    schema: v10\n    index:\n      prefix: index_\n      period: 168h\n  - from: 2022-06-18\n    store: cassandra\n    object_store: aws\n    schema: v11\n    index:\n      prefix: index_\n      period: 720h\n    chunks:\n      prefix: chunks_\n      period: 720h\nstorage_config:\n  boltdb:\n    directory: \/data\/loki\/index\n  filesystem:\n    directory: \/data\/loki\/chunks\n  cassandra:\n    username: cassandra\n    password: cassandra\n    addresses: cassandra\n    auth: true\n    keyspace: lokiindex\n  aws:\n    s3: s3:\/\/&lt;accessKey&gt;:&lt;secretKey&gt;@&lt;s3_url&gt;\/&lt;buckets&gt;\n    s3forcepathstyle: true<\/code><\/pre>\n\n\n\n<ul>\n<li>\u4e0a\u9762\u7684\u914d\u7f6e\u610f\u601d\u5c31\u662f\u5bf9\u4e8e2022\u5e746\u670818\u65e5\u4e4b\u524d\u4fdd\u5b58\u7684\u6240\u6709\u6570\u636e\uff0cLoki \u4f7f\u7528&nbsp;<code>v10<\/code>&nbsp;\u7684 schema\uff0c\u5230\u70b9\u4e4b\u540e\u5c31\u91c7\u7528&nbsp;<code>v11<\/code>&nbsp;\u7684 schema \u7b56\u7565\u6765\u5b58\u50a8\u65e5\u5fd7<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>cache_config<\/strong><\/h4>\n\n\n\n<ul>\n<li><code>cache_config<\/code>&nbsp;\u5757\u7528\u6765\u914d\u7f6e Loki \u5c06\u5982\u4f55\u7f13\u5b58 requests\u3001chunks \u548c\u7d22\u5f15\u5230\u4e00\u4e2a\u540e\u7aef\u7f13\u5b58\u5b58\u50a8\u4e2d\u53bb<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u5f00\u542f\u5185\u5b58\u7f13\u5b58\n# CLI flag: -&lt;prefix&gt;.cache.enable-fifocache\n&#91;enable_fifocache: &lt;boolean&gt;]\n\n# \u7f13\u5b58\u7684\u9ed8\u8ba4\u6709\u6548\u671f\uff08\u9664\u975e\u91cd\u5199\uff09\u3002\n# CLI flag: -&lt;prefix&gt;.default-validity\n&#91;default_validity: &lt;duration&gt;]\n\n# \u5728\u4f7f\u7528 memcached \u65f6\u914d\u7f6e\u540e\u53f0\u7f13\u5b58\nbackground:\n  # \u6709\u591a\u5c11 goroutines \u7528\u6765\u5199\u56de memcached\u3002\n  # CLI flag: -&lt;prefix&gt;.background.write-back-concurrency\n  &#91;writeback_goroutines: &lt;int&gt; | default = 10]\n\n  # \u540e\u53f0\u5199\u56de memcached \u9700\u8981\u7f13\u5b58\u591a\u5c11 chunks\u3002\n  # CLI flagL -&lt;prefix&gt;.background.write-back-buffer\n  &#91;writeback_buffer: &lt;int&gt; = 10000]\n\n# \u914d\u7f6e memcached\nmemcached:\n  # \u914d\u7f6e memcached \u4e2d\u7684 key \u6709\u6548\u671f\n  # CLI flag: -&lt;prefix&gt;.memcached.expiration\n  expiration: &lt;duration&gt;\n\n  # \u914d\u7f6e\u6bcf\u4e2a\u6279\u5904\u7406\u8bf7\u6c42\u4e2d\u8981\u83b7\u53d6\u7684 keys \u6570\u91cf\u3002\n  # CLI flag: -&lt;prefix&gt;.memcached.batchsize\n  batch_size: &lt;int&gt; | default = 1024\n\n  # \u5bf9 memcached \u7684\u6700\u5927\u6d3b\u52a8\u8bf7\u6c42\u6570\u3002\n  # CLI flag: -&lt;prefix&gt;.memcached.parallelism\n  &#91;parallelism: &lt;int&gt; | default = 100]\n\n# \u914d\u7f6e\u5982\u4f55\u8fde\u63a5\u5230\u4e00\u4e2a\u6216\u591a\u4e2a memcached \u670d\u52a1\u5668\nmemcached_client:\n  # \u7f13\u5b58 chunks \u65f6\u7528\u4e8e memcached \u670d\u52a1\u7684\u4e3b\u673a\u540d\u3002\n  # \u5982\u679c\u4e3a\u7a7a\uff0c\u6ca1\u6709 memcached \u4f1a\u88ab\u4f7f\u7528\u3002\u5c06\u4f7f\u7528 SRV \u67e5\u627e\u3002\n  # CLI flag: -&lt;prefix&gt;.memcached.hostname\n  &#91;host: &lt;string&gt;]\n\n  # \u7528\u4e8e\u53d1\u73b0 memcached \u670d\u52a1\u5668\u7684 SRV \u670d\u52a1\u3002\n  # CLI flag: -&lt;prefix&gt;.memcached.service\n  &#91;service: &lt;string&gt; | default = \"memcached\"]\n\n  # (\u5b9e\u9a8c\u6027\u7684) DNS \u670d\u52a1\u53d1\u73b0\u5730\u5740\u5217\u8868(\u9017\u53f7\u5206\u9694)\n  # https:\/\/cortexmetrics.io\/docs\/configuration\/arguments\/#dns-service-discovery\n  # CLI flag: -&lt;prefix&gt;.memcached.addresses\n  &#91;addresses: &lt;string&gt; | default = \"\"]\n\n  # memcached \u8bf7\u6c42\u8d85\u65f6\u65f6\u95f4\n  # CLI flag: -&lt;prefix&gt;.memcached.timeout\n  &#91;timeout: &lt;duration&gt; | default = 100ms]\n\n  # memcached \u5ba2\u6237\u7aef\u6c60\u4e2d\u7684\u6700\u5927\u7a7a\u95f2\u8fde\u63a5\u6570\u3002\n  # CLI flag: -&lt;prefix&gt;.memcached.max-idle-conns\n  &#91;max_idle_conns: &lt;int&gt; | default = 16]\n\n  # \u8f6e\u8be2 memcached \u670d\u52a1\u5668\u7684 DNS \u7684\u65f6\u95f4\u95f4\u9694\u3002\n  # CLI flag: -&lt;prefix&gt;.memcached.update-interval\n  &#91;update_interval: &lt;duration&gt; | default = 1m]\n\n  # \u662f\u5426\u4f7f\u7528\u4e00\u81f4\u54c8\u5e0c\u6765\u53d1\u73b0\u591a\u4e2a memcached \u670d\u52a1\u5668\u3002\n  # CLI flag: -&lt;prefix&gt;.memcached.consistent-hash\n  &#91;consistent_hash: &lt;boolean&gt; | default = true]\n\n  # CLI flag: -&lt;prefix&gt;.memcached.max-item-size\n  &#91;max_item_size: &lt;int&gt; | default = 0]\n  # ...... \u7701\u7565\n\nredis:\n  # \u7528\u4e8e\u7f13\u5b58\u7684 Redis Server \u6216 Cluster \u914d\u7f6e\n  # CLI flag: -&lt;prefix&gt;.redis.endpoint\n  &#91;endpoint: &lt;string&gt;]\n  # ...... \u7701\u7565\n\nfifocache:\n  # \u6700\u5927\u7f13\u5b58\u5927\u5c0f\uff08bytes\uff09\n  # CLI flag: -&lt;prefix&gt;.fifocache.max-size-bytes\n  &#91;max_size_bytes: &lt;string&gt; | default = \"1GB\"]\n\n  # \u6700\u591a\u7f13\u5b58\u591a\u5c11 items\n  # CLI flag: -&lt;prefix&gt;.fifocache.max-size-items\n  &#91;max_size_items: &lt;int&gt; | default = 0]\n\n  # \u7f13\u5b58\u6709\u6548\u671f\n  # The value of 0 disables auto-expiration.\n  # CLI flag: -&lt;prefix&gt;.fifocache.ttl\n  &#91;ttl: &lt;duration&gt; | default = 1h]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>table_manager<\/strong><\/h4>\n\n\n\n<ul>\n<li><code>Table Manager<\/code>&nbsp;\u662f Loki\u7684\u4e00\u4e2a\u7ec4\u4ef6\uff0c\u4e3b\u8981\u8d1f\u8d23\u5728\u5176\u65f6\u95f4\u6bb5\u5f00\u59cb\u4e4b\u524d\u521b\u5efa\u5468\u671f\u8868\uff0c\u5e76\u5728\u5176\u6570\u636e\u65f6\u95f4\u8303\u56f4\u8d85\u51fa\u4fdd\u7559\u671f\u9650\u65f6\u5c06\u5176\u5220\u9664\u3002\u5b83\u5f53\u524d\u652f\u6301\u7684\u540e\u7aef\u5305\u542b\u5982\u4e0b<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u7528\u4e8e\u8868\u5bb9\u91cf\u66f4\u65b0\u7684\u4e3b\u201c\u5173\u95ed\u5f00\u5173\u201d\uff0c\u4f8b\u5982\u6545\u969c\u6392\u9664\u65f6\u3002\n# CLI flag: -table-manager.throughput-updates-disabled\n&#91;throughput_updates_disabled: &lt;boolean&gt; | default = false]\n\n# \u7528\u4e8e\u8868\u4fdd\u7559\u5220\u9664\u7684\u4e3b\u5f00\u5173\n# CLI flag: -table-manager.retention-deletes-enabled\n&#91;retention_deletes_enabled: &lt;boolean&gt; | default = false]\n\n# \u5728\u5220\u9664\u8868\u4e4b\u524d\uff0c\u5b83\u4eec\u5c06\u4fdd\u7559\u591a\u957f\u65f6\u95f4\uff0c0s\u8868\u793a\u7981\u7528\u5220\u9664\u3002\n# \u4fdd\u7559\u671f\u5fc5\u987b\u662f index \/ chunks \u8868 \"period\" \u7684\u500d\u6570\u3002\n# CLI flag: -table-manager.retention-period\n&#91;retention_period: &lt;duration&gt; | default = 0s]\n\n# \u8868\u7ba1\u7406\u5668\u8f6e\u8be2\u8868\u7684\u65f6\u95f4\u95f4\u9694\u3002\n# CLI flag: -table-manager.poll-interval\n&#91;poll_interval: &lt;duration&gt; | default = 2m]\n\n# \u5728\u9700\u8981\u521b\u5efa\u8868\u4e4b\u524d\u7684\u6301\u7eed\u65f6\u95f4\u3002\n# CLI flag: -table-manager.periodic-table.grace-period\n&#91;creation_grace_period: &lt;duration&gt; | default = 10m]\n\n# \u914d\u7f6e DynamoDB \u7d22\u5f15\u8868\u3002\n# The CLI flags prefix for this block config is: table-manager.index-table\nindex_tables_provisioning: &lt;provision_config&gt;\n\n# \u914d\u7f6e DynamoDB chunk \u8868\u3002\n# The CLI flags prefix for this block config is: table-manager.chunk-table\nchunk_tables_provisioning: &lt;provision_config&gt;<\/code><\/pre>\n\n\n\n<p>1\u3001\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u539f\u59cb\u65e5\u5fd7\u6587\u4ef6\u9664\u4e86\u4f7f\u7528 filesystem \u7684\u5b58\u50a8\u6709\u5468\u671f\u5220\u9664\u65e7\u65e5\u5fd7\u6587\u4ef6\u5916\uff0cLoki \u7684\u5176\u4ed6 chunk \u5b58\u50a8\u5747\u4e0d\u4f1a\u5220\u9664\u65e7\u65e5\u5fd7\u6587\u4ef6 \uff0c\u5982\u679c\u4f60\u7684\u65e5\u5fd7\u539f\u59cb\u6587\u4ef6\u5b58\u50a8\u5728 S3 \u4e0a\uff0c\u90a3\u4e48\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u627e\u5230\u65e7\u7684\u6587\u4ef6\u5220\u9664\uff0c\u8fd9\u4e2a\u52a8\u4f5c\u4ec5\u4ec5\u53ea\u4f1a\u5f71\u54cd\u6211\u4eec\u67e5\u8be2\u4e0d\u5230\u8fd9\u4e2a\u65f6\u95f4\u533a\u57df\u7684\u65e5\u5fd7\u5185\u5bb9\u3002\u5982\u679c\u4f60\u7684 Loki \u5b58\u50a8\u7528\u4e86 table-based \u7684\u5b58\u50a8\u670d\u52a1\uff0c\u90a3\u4e48\u65e5\u5fd7\u7684\u7559\u5b58\u7b56\u7565\u5c31\u4f1a\u53d7\u5230&nbsp;<code>Table Manager<\/code>&nbsp;\u7684\u8282\u5236\uff0c\u5b83\u5f53\u524d\u652f\u6301\u7684\u540e\u7aef\u5305\u542b\u5982\u4e0b<\/p>\n\n\n\n<ul>\n<li>Index \u65e5\u5fd7\u7d22\u5f15<\/li>\n\n\n\n<li>Amazon DynamoDB<\/li>\n\n\n\n<li>Google Bigtable<\/li>\n\n\n\n<li>Apache Cassandra<\/li>\n\n\n\n<li>BoltDB (\u4e3b\u8981\u7528\u4e8e\u672c\u5730\u73af\u5883)<\/li>\n\n\n\n<li>Chunk \u65e5\u5fd7\u539f\u59cb\u6587\u4ef6<\/li>\n\n\n\n<li>Amazon DynamoDB<\/li>\n\n\n\n<li>Google Bigtable<\/li>\n\n\n\n<li>Apache Cassandra<\/li>\n\n\n\n<li>Filesystem (\u4e3b\u8981\u7528\u4e8e\u672c\u5730\u73af\u5883)<\/li>\n<\/ul>\n\n\n\n<p>2\u3001\u7531\u4e8e\u5177\u6709\u7834\u574f\u6027\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b&nbsp;<code>Table Manager<\/code>&nbsp;\u529f\u80fd\u88ab\u7981\u7528\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u914d\u7f6e\u4e2d\u663e\u5f0f\u542f\u7528\u6570\u636e\u5220\u9664\u7b56\u7565\u5e76\u5c06\u5176\u4fdd\u7559\u671f\u8bbe\u7f6e\u4e3a\u5927\u4e8e0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>table_manager:\n  retention_deletes_enabled: true\n  retention_period: 336h<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u90e8\u7f72\u914d\u7f6e<\/h3>\n\n\n\n<p>1\u3001yaml<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>version: '3'\nservices:\n  loki:\n    image: grafana\/loki:latest\n    container_name: loki_loki\n    restart: always\n    user: root\n    ports:\n      - 3100:3100\n    volumes:\n      - \/mydata\/loki\/conf:\/etc\/loki\n      - \/mydata\/loki\/db:\/loki\n      - \/mydata\/loki\/log:\/var\/log\n      - \/etc\/localtime:\/etc\/localtime\n    command: -config.file=\/etc\/loki\/local-config.yaml\n  promtail:\n    image: grafana\/promtail:latest\n    container_name: loki_promtail\n    restart: always\n    user: root\n    volumes:\n      - \/mydata\/loki\/promtail:\/etc\/promtail\n      - \/var\/log:\/mydata\n      - \/etc\/localtime:\/etc\/localtime\n    command:\n      -config.file=\/etc\/promtail\/config.yml\nnetworks:\n  default:\n    external:\n      name: prom_net<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Promtail<\/h3>\n\n\n\n<p>\u914d\u7f6e\u6587\u4ef6<\/p>\n\n\n\n<p>1\u3001Promtail \u662f Loki \u5b98\u65b9\u652f\u6301\u7684\u65e5\u5fd7\u91c7\u96c6\u7aef\uff0c\u5728\u9700\u8981\u91c7\u96c6\u65e5\u5fd7\u7684\u8282\u70b9\u4e0a\u8fd0\u884c\u91c7\u96c6\u4ee3\u7406\uff0c\u518d\u7edf\u4e00\u53d1\u9001\u5230 Loki \u8fdb\u884c\u5904\u7406\u3002\u9664\u4e86\u4f7f\u7528 Promtail\uff0c\u793e\u533a\u8fd8\u6709\u5f88\u591a\u91c7\u96c6\u65e5\u5fd7\u7684\u7ec4\u4ef6\uff0c\u6bd4\u5982 fluentd\u3001fluent bit\u3001logstash \u7b49\uff0c\u4e5f\u90fd\u652f\u6301\u53d1\u9001\u5230 Loki<\/p>\n\n\n\n<ul>\n<li>Promtail \u662f\u8d1f\u8d23\u6536\u96c6\u65e5\u5fd7\u53d1\u9001\u7ed9 loki \u7684\u4ee3\u7406\u7a0b\u5e8f\u3002Promtail \u9ed8\u8ba4\u901a\u8fc7\u4e00\u4e2a&nbsp;<code>config.yaml<\/code>&nbsp;\u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\uff0c\u5176\u4e2d\u5305\u542b Promtail \u670d\u52a1\u7aef\u4fe1\u606f\u3001\u5b58\u50a8\u4f4d\u7f6e\u4ee5\u53ca\u5982\u4f55\u4ece\u6587\u4ef6\u4e2d\u6293\u53d6\u65e5\u5fd7\u7b49\u914d\u7f6e<\/li>\n<\/ul>\n\n\n\n<ul>\n<li>\u8981\u6307\u5b9a\u52a0\u8f7d\u54ea\u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u53ea\u9700\u8981\u5728\u547d\u4ee4\u884c\u4e0b\u901a\u8fc7&nbsp;<code>-config.file<\/code>&nbsp;\u53c2\u6570\u4f20\u9012 YAML \u914d\u7f6e\u6587\u4ef6\u5373\u53ef\u3002\u6b64\u5916\u6211\u4eec\u8fd8\u53ef\u4ee5\u901a\u8fc7\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u4f7f\u7528\u73af\u5883\u53d8\u91cf\u5f15\u7528\u6765\u8bbe\u7f6e\u9700\u8981\u7684\u914d\u7f6e\uff0c\u4f46\u662f\u9700\u8981\u5728\u547d\u4ee4\u884c\u4e2d\u914d\u7f6e&nbsp;<code>-config.expand-env=true<\/code><\/li>\n<\/ul>\n\n\n\n<ul>\n<li>\u7136\u540e\u53ef\u4ee5\u4f7f\u7528&nbsp;<code>${VAR}<\/code>&nbsp;\u6765\u914d\u7f6e\uff0c\u5176\u4e2d&nbsp;<code>VAR<\/code>&nbsp;\u662f\u73af\u5883\u53d8\u91cf\u7684\u540d\u79f0\uff0c\u6bcf\u4e2a\u53d8\u91cf\u7684\u5f15\u7528\u5728\u542f\u52a8\u65f6\u88ab\u73af\u5883\u53d8\u91cf\u7684\u503c\u66ff\u6362\uff0c\u66ff\u6362\u662f\u533a\u5206\u5927\u5c0f\u5199\u7684\uff0c\u800c\u4e14\u5728 YAML \u6587\u4ef6\u88ab\u89e3\u6790\u4e4b\u524d\u53d1\u751f\uff0c\u5bf9\u672a\u5b9a\u4e49\u53d8\u91cf\u7684\u5f15\u7528\u5c06\u88ab\u66ff\u6362\u4e3a\u7a7a\u5b57\u7b26\u4e32\uff0c\u9664\u975e\u4f60\u6307\u5b9a\u4e86\u4e00\u4e2a\u9ed8\u8ba4\u503c\u6216\u81ea\u5b9a\u4e49\u7684\u9519\u8bef\u6587\u672c\uff0c\u8981\u6307\u5b9a\u4e00\u4e2a\u9ed8\u8ba4\u503c<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>${VAR:default_value}<\/code><\/pre>\n\n\n\n<ul>\n<li>\u5176\u4e2d&nbsp;<code>default_value<\/code>&nbsp;\u662f\u5728\u73af\u5883\u53d8\u91cf\u672a\u5b9a\u4e49\u7684\u60c5\u51b5\u4e0b\u8981\u4f7f\u7528\u7684\u9ed8\u8ba4\u503c\u3002<\/li>\n\n\n\n<li>\u9ed8\u8ba4\u7684&nbsp;<code>config.yaml<\/code>&nbsp;\u914d\u7f6e\u6587\u4ef6\u652f\u6301\u7684\u5185\u5bb9\u683c\u5f0f\u4e3a\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u914d\u7f6e Promtail \u670d\u52a1\u7aef\n&#91;server: &lt;server_config&gt;]\n\n# \u63cf\u8ff0 Promtail \u5982\u4f55\u8fde\u63a5\u5230 Loki \u7684\u591a\u4e2a\u5b9e\u4f8b\uff0c\u5411\u6bcf\u4e2a\u5b9e\u4f8b\u53d1\u9001\u65e5\u5fd7\u3002\n# \u53d1\u9001\u662f\u5728\u5355\u7ebf\u7a0b\u4e0a\u5b8c\u6210\u7684!\n# \u5982\u679c\u4f60\u60f3\u5411\u591a\u4e2a\u8fdc\u7a0b Loki \u5b9e\u4f8b\u53d1\u9001\uff0c\u4e00\u822c\u5efa\u8bae\u5e76\u884c\u8fd0\u884c\u591a\u4e2a promtail \u5ba2\u6237\u7aef\u3002\nclient: &lt;client_config&gt;\n\n# \u63cf\u8ff0\u4e86\u5982\u4f55\u5c06\u8bfb\u53d6\u7684\u6587\u4ef6\u504f\u79fb\u91cf\u4fdd\u5b58\u5230\u78c1\u76d8\u4e0a\n&#91;positions: &lt;position_config&gt;]\n\n# \u6293\u53d6\u65e5\u5fd7\u914d\u7f6e\nscrape_configs:\n  - &#91;&lt;scrape_config&gt;]\n\n# \u914d\u7f6e\u88ab watch \u7684\u76ee\u6807\u5982\u4f55 tailed\n&#91;target_config: &lt;target_config&gt;]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>server<\/strong><\/h4>\n\n\n\n<ul>\n<li><code>server<\/code>&nbsp;\u5c5e\u6027\u914d\u7f6e Promtail \u4f5c\u4e3a HTTP \u670d\u52a1\u5668\u7684\u884c\u4e3a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u7981\u7528 HTTP \u548c GRPC \u670d\u52a1\n&#91;disable: &lt;boolean&gt; | default = false]\n\n# HTTP \u670d\u52a1\u76d1\u542c\u7684\u4e3b\u673a\n&#91;http_listen_address: &lt;string&gt;]\n\n# HTTP \u670d\u52a1\u76d1\u542c\u7684\u7aef\u53e3\uff080\u8868\u793a\u968f\u673a\uff09\n&#91;http_listen_port: &lt;int&gt; | default = 80]\n\n# gRPC \u670d\u52a1\u76d1\u542c\u4e3b\u673a\n&#91;grpc_listen_address: &lt;string&gt;]\n\n# gRPC \u670d\u52a1\u76d1\u542c\u7684\u7aef\u53e3\uff080\u8868\u793a\u968f\u673a\uff09\n&#91;grpc_listen_port: &lt;int&gt; | default = 9095]\n\n# \u6ce8\u518c\u6307\u6807\u5904\u7406\u5668\n&#91;register_instrumentation: &lt;boolean&gt; | default = true]\n\n# \u4f18\u96c5\u9000\u51fa\u8d85\u65f6\u65f6\u95f4\n&#91;graceful_shutdown_timeout: &lt;duration&gt; | default = 30s]\n\n# HTTP \u670d\u52a1\u8bfb\u53d6\u8d85\u65f6\u65f6\u95f4\n&#91;http_server_read_timeout: &lt;duration&gt; | default = 30s]\n\n# HTTP \u670d\u52a1\u5199\u5165\u8d85\u65f6\u65f6\u95f4\n&#91;http_server_write_timeout: &lt;duration&gt; | default = 30s]\n\n# HTTP \u670d\u52a1\u7a7a\u95f2\u8d85\u65f6\u65f6\u95f4\n&#91;http_server_idle_timeout: &lt;duration&gt; | default = 120s]\n\n# \u53ef\u63a5\u6536\u7684\u6700\u5927 gRPC \u6d88\u606f\u5927\u5c0f\n&#91;grpc_server_max_recv_msg_size: &lt;int&gt; | default = 4194304]\n\n# \u53ef\u53d1\u9001\u7684\u6700\u5927 gRPC \u6d88\u606f\u5927\u5c0f\n&#91;grpc_server_max_send_msg_size: &lt;int&gt; | default = 4194304]\n\n# \u5bf9 gRPC \u8c03\u7528\u7684\u5e76\u53d1\u6d41\u6570\u91cf\u7684\u9650\u5236 (0 = unlimited)\n&#91;grpc_server_max_concurrent_streams: &lt;int&gt; | default = 100]\n\n# \u53ea\u8bb0\u5f55\u7ed9\u5b9a\u4e25\u91cd\u7a0b\u5ea6\u6216\u4ee5\u4e0a\u7684\u4fe1\u606f\uff0c\u652f\u6301\u7684\u503c\uff1a&#91;debug, info, warn, error]\n&#91;log_level: &lt;string&gt; | default = \"info\"]\n\n# \u6240\u6709 API \u8def\u7531\u670d\u52a1\u7684\u57fa\u672c\u8def\u5f84(e.g., \/v1\/).\n&#91;http_path_prefix: &lt;string&gt;]\n\n# \u76ee\u6807\u7ba1\u7406\u5668\u68c0\u6d4b promtail \u53ef\u8bfb\u7684\u6807\u5fd7\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a false \u68c0\u67e5\u5c06\u88ab\u5ffd\u7565\n&#91;health_check_target: &lt;bool&gt; | default = true]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>positions<\/strong><\/h4>\n\n\n\n<ul>\n<li><code>positions<\/code>&nbsp;\u5c5e\u6027\u914d\u7f6e\u4e86 Promtail \u4fdd\u5b58\u6587\u4ef6\u7684\u4f4d\u7f6e\uff0c\u8868\u793a\u5b83\u5df2\u7ecf\u8bfb\u5230\u4e86\u65e5\u5fd7\u6587\u4ef6\u7684\u4ec0\u4e48\u4f4d\u7f6e\u3002\u5f53 Promtail \u91cd\u65b0\u542f\u52a8\u65f6\u9700\u8981\u5b83\uff0c\u4ee5\u5141\u8bb8\u5b83\u4ece\u4e2d\u65ad\u7684\u5730\u65b9\u7ee7\u7eed\u8bfb\u53d6\u65e5\u5fd7<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># positions \u6587\u4ef6\u7684\u8def\u5f84\n&#91;filename: &lt;string&gt; | default = \"\/var\/log\/positions.yaml\"]\n\n# \u66f4\u65b0 positions \u6587\u4ef6\u7684\u5468\u671f\n&#91;sync_period: &lt;duration&gt; | default = 10s]\n\n# \u662f\u5426\u5ffd\u7565\u5e76\u8986\u76d6\u88ab\u7834\u574f\u7684 positions \u6587\u4ef6\n&#91;ignore_invalid_yaml: &lt;boolean&gt; | default = false]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>scrape_configs<\/strong><\/h4>\n\n\n\n<ul>\n<li><code>scrape_configs<\/code>&nbsp;\u914d\u7f6e\u4e86 Promtail \u5982\u4f55\u4f7f\u7528\u6307\u5b9a\u7684\u53d1\u73b0\u65b9\u6cd5\u4ece\u4e00\u7cfb\u5217\u76ee\u6807\u4e2d\u6293\u53d6\u65e5\u5fd7\uff0c\u7c7b\u4f3c\u4e8e Prometheus \u4e2d\u7684\u6293\u53d6\u914d\u7f6e<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u4efb\u52a1\u540d\u79f0\uff0c\u7528\u4e8e\u5728 Promtail \u4e2d\u8bc6\u522b\u8be5\u6293\u53d6\u914d\u7f6e\u7684\u540d\u79f0\u3002\njob_name: &lt;string&gt;\n\n# \u63cf\u8ff0\u5982\u4f55\u5bf9\u76ee\u6807\u65e5\u5fd7\u8fdb\u884c\u7ed3\u6784\u5316\n&#91;pipeline_stages: &lt;pipeline_stages&gt;]\n\n# \u5982\u4f55\u4ece jounal \u6293\u53d6\u65e5\u5fd7\n&#91;journal: &lt;journal_config&gt;]\n\n# \u5982\u4f55\u4ece syslog \u6293\u53d6\u65e5\u5fd7\n&#91;syslog: &lt;syslog_config&gt;]\n\n# \u5982\u4f55\u901a\u8fc7 Loki push API \u63a5\u6536\u65e5\u5fd7 (\u4f8b\u5982\u4ece\u5176\u4ed6 Promtail \u6216 Docker Logging Driver \u4e2d\u83b7\u53d6\u7684\u6570\u636e)\n&#91;loki_push_api: &lt;loki_push_api_config&gt;]\n\n# \u63cf\u8ff0\u4e86\u5982\u4f55 relabel \u76ee\u6807\nrelabel_configs:\n  - &#91;&lt;relabel_config&gt;]\n\n# \u6293\u53d6\u65e5\u5fd7\u9759\u6001\u76ee\u6807\u914d\u7f6e\nstatic_configs:\n  - &#91;&lt;static_config&gt;]\n\n# \u5305\u542b\u8981\u6293\u53d6\u7684\u76ee\u6807\u6587\u4ef6\nfile_sd_configs:\n  - &#91;&lt;file_sd_configs&gt;]\n\n# \u57fa\u4e8ekubernetes\u7684\u81ea\u52a8\u53d1\u73b0\u914d\u7f6e\nkubernetes_sd_configs:\n  - &#91;&lt;kubernetes_sd_config&gt;]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Label \u6807\u7b7e<\/h4>\n\n\n\n<ul>\n<li>Label \u6807\u7b7e\u662f\u4e00\u4e2a\u952e\u503c\u5bf9\uff0c\u53ef\u4ee5\u5b9a\u4e49\u4efb\u4f55\u4e1c\u897f\uff0c\u6211\u4eec\u559c\u6b22\u79f0\u5b83\u4eec\u4e3a\u63cf\u8ff0\u65e5\u5fd7\u6d41\u7684\u5143\u6570\u636e\u3002\u5982\u679c\u4f60\u719f\u6089 Prometheus\uff0c\u90a3\u4e48\u4e00\u5b9a\u5bf9 Label \u6807\u7b7e\u6709\u4e00\u5b9a\u7684\u4e86\u89e3\uff0c\u5728 Loki \u7684 scrape \u914d\u7f6e\u4e2d\u4e5f\u5b9a\u4e49\u4e86\u8fd9\u4e9b\u6807\u7b7e\uff0c\u548c Prometheus \u62e5\u6709\u4e00\u81f4\u7684\u529f\u80fd\uff0c\u8fd9\u4e9b\u6807\u7b7e\u975e\u5e38\u5bb9\u6613\u5c06\u5e94\u7528\u7a0b\u5e8f\u6307\u6807\u548c\u65e5\u5fd7\u6570\u636e\u5173\u8054\u8d77\u6765<\/li>\n<\/ul>\n\n\n\n<ul>\n<li>Loki \u4e2d\u7684\u6807\u7b7e\u6267\u884c\u4e00\u4e2a\u975e\u5e38\u91cd\u8981\u7684\u4efb\u52a1\uff1a\u5b83\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a\u6d41\u3002\u66f4\u5177\u4f53\u5730\u8bf4\uff0c\u6bcf\u4e2a\u6807\u7b7e\u952e\u548c\u503c\u7684\u7ec4\u5408\u5b9a\u4e49\u4e86\u6d41\u3002\u5982\u679c\u53ea\u662f\u4e00\u4e2a\u6807\u7b7e\u503c\u53d8\u5316\uff0c\u8fd9\u5c06\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u6d41<\/li>\n<\/ul>\n\n\n\n<ul>\n<li>\u5982\u679c\u4f60\u719f\u6089 Prometheus\uff0c\u90a3\u91cc\u7684\u672f\u8bed\u53eb\u5e8f\u5217\uff0c\u800c\u4e14 Prometheus \u4e2d\u8fd8\u6709\u4e00\u4e2a\u989d\u5916\u7684\u7ef4\u5ea6\uff1a\u6307\u6807\u540d\u79f0\u3002Loki \u4e2d\u7b80\u5316\u4e86\u8fd9\u4e00\u70b9\uff0c\u56e0\u4e3a\u6ca1\u6709\u6307\u6807\u540d\uff0c\u53ea\u6709\u6807\u7b7e\uff0c\u6240\u4ee5\u6700\u540e\u51b3\u5b9a\u4f7f\u7528\u6d41\u800c\u4e0d\u662f\u5e8f\u5217<\/li>\n<\/ul>\n\n\n\n<p>1\u3001\u9996\u5148\u770b\u4e0b\u4e0b\u9762\u7684\u793a\u4f8b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>scrape_configs:\n- job_name: system\n  static_configs:\n  - targets:\n      - localhost\n    labels:\n      job: syslog\n      __path__: \/var\/log\/syslog<\/code><\/pre>\n\n\n\n<ul>\n<li>\u8fd9\u4e2a\u914d\u7f6e\u5c06\u83b7\u53d6\u65e5\u5fd7\u6587\u4ef6\u6570\u636e\u5e76\u6dfb\u52a0\u4e00\u4e2a&nbsp;<code>job=syslog<\/code>&nbsp;\u7684\u6807\u7b7e\uff0c\u6211\u4eec\u53ef\u4ee5\u8fd9\u6837\u6765\u67e5\u8be2\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>{job=\"syslog\"}<\/code><\/pre>\n\n\n\n<ul>\n<li>\u8fd9\u5c06\u5728 Loki \u4e2d\u521b\u5efa\u4e00\u4e2a\u6d41\u3002\u73b0\u5728\u6211\u4eec\u518d\u65b0\u589e\u4e00\u4e9b\u4efb\u52a1\u914d\u7f6e\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>scrape_configs:\n- job_name: system\n  static_configs:\n  - targets:\n      - localhost\n    labels:\n      job: syslog\n      __path__: \/var\/log\/syslog \n- job_name: system\n  static_configs:\n  - targets:\n      - localhost\n    labels:\n      job: apache\n      __path__: \/var\/log\/apache.log<\/code><\/pre>\n\n\n\n<ul>\n<li>\u73b0\u5728\u6211\u4eec\u91c7\u96c6\u4e24\u4e2a\u65e5\u5fd7\u6587\u4ef6\uff0c\u6bcf\u4e2a\u6587\u4ef6\u6709\u4e00\u4e2a\u6807\u7b7e\u4e0e\u4e00\u4e2a\u503c\uff0c\u6240\u4ee5 Loki \u4f1a\u5b58\u50a8\u4e3a\u4e24\u4e2a\u6d41\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u51e0\u79cd\u65b9\u5f0f\u6765\u67e5\u8be2\u8fd9\u4e9b\u6d41\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>{job=\"apache\"} -&gt; \u663e\u793a job \u6807\u7b7e\u4e3a apache \u7684\u65e5\u5fd7\n{job=\"syslog\"} -&gt; \u663e\u793a job \u6807\u7b7e\u4e3a syslog \u7684\u65e5\u5fd7\n{job=~\"apache|syslog\"} -&gt; \u663e\u793a job \u6807\u7b7e\u4e3a apache \u6216\u8005 syslog \u7684\u65e5\u5fd7<\/code><\/pre>\n\n\n\n<ul>\n<li>\u6700\u540e\u4e00\u79cd\u65b9\u5f0f\u6211\u4eec\u4f7f\u7528\u7684\u662f\u4e00\u4e2a&nbsp;<code>regex<\/code>&nbsp;\u6807\u7b7e\u5339\u914d\u5668\u6765\u83b7\u53d6 job \u6807\u7b7e\u503c\u4e3a apache \u6216\u8005 syslog \u7684\u65e5\u5fd7\u3002\u63a5\u4e0b\u6765\u6211\u4eec\u770b\u770b\u5982\u4f55\u4f7f\u7528\u989d\u5916\u7684\u6807\u7b7e\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>scrape_configs:\n- job_name: system\n  static_configs:\n  - targets:\n      - localhost\n    labels:\n      job: syslog\n      env: dev\n      __path__: \/var\/log\/syslog \n- job_name: system\n  static_configs:\n  - targets:\n      - localhost\n    labels:\n      job: apache\n      env: dev\n      __path__: \/var\/log\/apache.log<\/code><\/pre>\n\n\n\n<ul>\n<li>\u8981\u83b7\u53d6\u8fd9\u4e24\u4e2a\u4efb\u52a1\u7684\u65e5\u5fd7\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u4ee3\u66ff regex \u7684\u65b9\u5f0f\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>{env=\"dev\"} -&gt; \u5c06\u8fd4\u56de\u6240\u6709\u5e26\u6709 env=dev \u6807\u7b7e\u7684\u65e5\u5fd7<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/ext4.cn\/wp-content\/uploads\/2022\/12\/image-5.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" loading=\"lazy\" width=\"570\" height=\"323\" data-original=\"https:\/\/ext4.cn\/wp-content\/uploads\/2022\/12\/image-5.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-767\"  sizes=\"(max-width: 570px) 100vw, 570px\" \/><\/div><\/figure>\n\n\n\n<ul>\n<li>\u901a\u8fc7\u4f7f\u7528\u4e00\u4e2a\u6807\u7b7e\u5c31\u53ef\u4ee5\u67e5\u8be2\u5f88\u591a\u65e5\u5fd7\u6d41\u4e86\uff0c\u901a\u8fc7\u7ec4\u5408\u591a\u4e2a\u4e0d\u540c\u7684\u6807\u7b7e\uff0c\u53ef\u4ee5\u521b\u5efa\u975e\u5e38\u7075\u6d3b\u7684\u65e5\u5fd7\u67e5\u8be2<\/li>\n<\/ul>\n\n\n\n<ul>\n<li>Label \u6807\u7b7e\u662f Loki \u65e5\u5fd7\u6570\u636e\u7684\u7d22\u5f15\uff0c\u5b83\u4eec\u7528\u4e8e\u67e5\u627e\u538b\u7f29\u540e\u7684\u65e5\u5fd7\u5185\u5bb9\uff0c\u8fd9\u4e9b\u5185\u5bb9\u88ab\u5355\u72ec\u5b58\u50a8\u4e3a<code>\u5757<\/code>\u3002\u6807\u7b7e\u548c\u503c\u7684\u6bcf\u4e00\u4e2a\u552f\u4e00\u7ec4\u5408\u90fd\u5b9a\u4e49\u4e86\u4e00\u4e2a<code>\u6d41<\/code>&nbsp;\uff0c\u4e00\u4e2a\u6d41\u7684\u65e5\u5fd7\u88ab\u5206\u6279\uff0c\u538b\u7f29\uff0c\u5e76\u4f5c\u4e3a\u5757\u8fdb\u884c\u5b58\u50a8<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u6536\u96c6docker\u65e5\u5fd7<\/h2>\n\n\n\n<p>1\u3001\u5b89\u88c5loki\u7684docker plugin<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker plugin install grafana\/loki-docker-driver:latest --alias loki --grant-all-permissions<\/code><\/pre>\n\n\n\n<p>2\u3001\u5f53\u6709\u65b0\u7248\u672c\u65f6, \u66f4\u65b0plugins<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker plugin disable loki --force\ndocker plugin upgrade loki grafana\/loki-docker-driver:latest --grant-all-permissions\ndocker plugin enable loki\nsystemctl restart docker<\/code><\/pre>\n\n\n\n<p>3\u3001\u5bf9\u4e8eloki\u7684docker plugin\u6709\u4e24\u79cd\u4f7f\u7528\u65b9\u5f0f<\/p>\n\n\n\n<ul>\n<li>\u914d\u7f6edaemon.json,\u6536\u96c6\u6b64\u540e\u521b\u5efa\u7684\u6240\u6709\u5bb9\u5668\u7684\u65e5\u5fd7(\u6ce8\u610f\uff0c\u662f\u914d\u7f6edaemon.json\u540e\u91cd\u542fdocker\u670d\u52a1\u540e\u521b\u5efa\u7684\u5bb9\u5668\u624d\u4f1a\u628a\u65e5\u5fd7\u8f93\u51fa\u5230loki)<\/li>\n<\/ul>\n\n\n\n<ul>\n<li>\u65b0\u5efa\u5bb9\u5668\u65f6\u6307\u5b9alogging\u7c7b\u578b\u4e3aloki\uff0c\u8fd9\u6837\u53ea\u6709\u6307\u5b9a\u4e86logging\u7684\u5bb9\u5668\u624d\u4f1a\u8f93\u51fa\u5230loki<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\u5168\u5c40\u6536\u96c6\u914d\u7f6e<\/h4>\n\n\n\n<p>1\u3001\u7f16\u8f91daemon.json\u3002linux\u4e0b\u9ed8\u8ba4\u8def\u5f84\u662f\/etc\/docker\/daemon.json (\u9700\u8981sudo)\uff0c windows\u5219\u9ed8\u8ba4\u662f%userprofile%\\.docker\\daemon.json<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"log-driver\": \"loki\",\n  \"log-opts\": {\n    \"loki-url\": \"https:\/\/YOUR_IP:3100\/loki\/api\/v1\/push\",\n    \"max-size\": \"50m\",\n    \"max-file\": \"10\",    \"loki-pipeline-stages\": \"- multiline:\\n      firstline: '^\\&#91;\\d{2}:\\d{2}:\\d{2} \\w{4}\\]'\\n\"\n  },\n  \"registry-mirrors\": &#91;\"https:\/\/registry.docker-cn.com\"]\n}<\/code><\/pre>\n\n\n\n<ul>\n<li>\u5176\u4e2dmax-size\u8868\u793a\u65e5\u5fd7\u6587\u4ef6\u6700\u5927\u5927\u5c0f\uff0cmax-file\u8868\u793a\u6700\u591a10\u4e2a\u65e5\u5fd7\u6587\u4ef6\uff0c\u90fd\u662f\u5bf9\u5355\u4e2a\u5bb9\u5668\u6765\u8bf4\u7684,&nbsp; &nbsp; multiline\u662f\u914d\u7f6e\u591a\u884c\u8bc6\u522b(\u9ed8\u8ba4\u6700\u591a128\u884c),\u8f6c\u4e3a\u5355\u884c, firstline\u8868\u793a\u5355\u6761\u65e5\u5fd7\u7684\u9996\u884c\u6b63\u5219\u8868\u8fbe\u5f0f<\/li>\n\n\n\n<li>\u6211\u7684\u662f [03:00:32 INFO] \u5f00\u5934\u8fd9\u79cd\u683c\u5f0f,\u6240\u4ee5\u5bf9\u5e94\u6b63\u5219\u662f^\\[\\d{2}:\\d{2}:\\d{2} \\w{4}\\]&nbsp; \u6309\u7167\u4f60\u81ea\u5df1\u7684\u65e5\u5fd7\u5f00\u5934\u7f16\u5199\u5bf9\u5e94\u6b63\u5219\u66ff\u6362\u5373\u53ef<\/li>\n<\/ul>\n\n\n\n<p>2\u3001\u7136\u540e\u91cd\u542fdocker\u670d\u52a1<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart docker<\/code><\/pre>\n\n\n\n<ul>\n<li>\u5728\u6b64\u4e4b\u540e\u521b\u5efa\u7684\u5bb9\u5668\u9ed8\u8ba4\u90fd\u4f1a\u628a\u65e5\u5fd7\u53d1\u9001\u5230loki<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">run\u914d\u7f6e\u65e5\u5fd7\u8f93\u51fa\u5230loki<\/h4>\n\n\n\n<p>1\u3001\u901a\u8fc7docker run\u542f\u52a8\u5bb9\u5668\uff0c\u53ef\u4ee5\u901a\u8fc7&#8211;log-driver\u6765\u6307\u5b9a\u4e3aloki\u3002\u793a\u4f8b\u5982\u4e0b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --rm --name=grafana --log-driver=loki --log-opt loki-url=\"https:\/\/YOUR_IP:3100\/loki\/api\/v1\/push\" --log-opt max-size=50m --log-opt max-file=10 grafana\/grafana\n\ndocker run -d --name=nginx -p 8989:80 --log-driver=loki  --log-opt loki-url=\"https:\/\/10.10.10.179:3100\/loki\/api\/v1\/push\"  --log-opt max-size=50m --log-opt max-file=10 nginx:latest\n\n\n--log-driver=loki\u6307\u5b9a\u65e5\u5fd7\u9a71\u52a8\u5668\u4e3aloki\n--log-opt loki-url\u5219\u6307\u5b9a\u4e86loki\u7684url\n--log-opt max-size\u65e5\u5fd7\u6700\u5927\u5927\u5c0f\n--log-opt max-file\u65e5\u5fd7\u6587\u4ef6\u6700\u5927\u6570\u91cf<\/code><\/pre>\n\n\n\n<p>2\u3001docker-compose\u65b9\u5f0f<\/p>\n\n\n\n<ul>\n<li>docker-compose \u5c0f\u4e8e3.4\u53ef\u4ee5\u5bf9\u9700\u8981\u65e5\u5fd7\u8f93\u51fa\u7684\u914d\u7f6e\u6dfb\u52a0\u914d\u7f6e\u5982\u4e0b<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>logging:\n  driver: loki\n  options:\n    loki-url: \"https:\/\/YOUR_IP:3100\/loki\/api\/v1\/push\"\n    max-size: \"50m\"\n    max-file: \"10\"    loki-pipeline-stages: |      - multiline:          firstline: '^\\&#91;\\d{2}:\\d{2}:\\d{2} \\w{4}\\]'<\/code><\/pre>\n\n\n\n<ul>\n<li>\u5bf9\u4e8e3.4\u53ca\u5176\u4ee5\u4e0a\u7248\u672c\u53ef\u4ee5\u901a\u8fc7\u5b9a\u4e49\u6a21\u677f\u6765\u51cf\u5c11\u4ee3\u7801\u91cf<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>version: \"3.4\"\n\nx-logging:\n  &amp;loki-logging\n  driver: loki\n  options:\n    loki-url: \"https:\/\/YOUR_IP:3100\/loki\/api\/v1\/push\"\n    max-size: \"50m\"\n    max-file: \"10\"    loki-pipeline-stages: |      - multiline:          firstline: '^\\&#91;\\d{2}:\\d{2}:\\d{2} \\w{4}\\]'\n\nservices:\n  host:\n    container_name: grafana\n    image: grafana\/grafana\n    environment:\n    - TZ=Asia\/Shanghai\n    - LANG=zh_CN.UTF-8\n    logging: *loki-logging<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">minio\u5b58\u50a8<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>version: '3'\nservices:\n  minio:\n    image: minio\/minio:latest\n    container_name: minio\n    restart: always\n    user: root\n    ports:\n      - 9000:9000\n      - 9090:9090\n    command: server \/data --address \"0.0.0.0:9000\" --console-address \"0.0.0.0:9090\"\n    volumes:\n      - \/etc\/localtime:\/etc\/localtime\n      - \/data\/minio\/conf:\/root\/.minio\n      - \/data\/minio\/db:\/data\n    environment:\n      - 'MINIO_ROOT_USER=admin'\n      - 'MINIO_ROOT_PASSWORD=Admin123!'\nnetworks:\n  default:\n    external:\n      name: minio_net<\/code><\/pre>\n\n\n\n<p>  1\u3001 \u6ce8\u89e3<\/p>\n\n\n\n<ul>\n<li>MINIO_ROOT_USER \uff1a\u8d26\u53f7<\/li>\n\n\n\n<li>MINIO_ROOT_PASSWORD \uff1a\u5bc6\u7801\uff08\u8d26\u53f7\u957f\u5ea6\u5fc5\u987b\u5927\u4e8e\u7b49\u4e8e5\uff0c\u5bc6\u7801\u957f\u5ea6\u5fc5\u987b\u5927\u4e8e\u7b49\u4e8e8\u4f4d\uff09<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/ext4.cn\/wp-content\/uploads\/2022\/12\/image-1-1024x474.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"474\" data-original=\"https:\/\/ext4.cn\/wp-content\/uploads\/2022\/12\/image-1-1024x474.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-750\"  sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p>  2\u3001\u521b\u5efakey<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/ext4.cn\/wp-content\/uploads\/2022\/12\/image-2-1024x469.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"469\" data-original=\"https:\/\/ext4.cn\/wp-content\/uploads\/2022\/12\/image-2-1024x469.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-751\"  sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p>2\u3001\u914d\u7f6e\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>auth_enabled: false\nserver:\n  http_listen_port: 3100\ncommon:\n  path_prefix: \/loki\n  storage:\n    filesystem:\n      chunks_directory: \/loki\/chunks\n      rules_directory: \/loki\/rules\n  replication_factor: 1\n  ring:\n    kvstore:\n      store: inmemory\nschema_config:\n  configs:\n    - from: 2020-10-24\n      store: boltdb-shipper\n      object_store: filesystem\n      schema: v11\n      index:\n        prefix: index_\n        period: 24h\nstorage_config:\n  aws:\n    s3: https:\/\/user:passwd@10.10.200.38:9000\/***\n    s3forcepathstyle: true\n  boltdb_shipper:\n    active_index_directory: \/loki\/boltdb-shipper-active\n    cache_location: \/loki\/boltdb-shipper-cache\n    cache_ttl: 1h\n    shared_store: s3\nruler:\n  alertmanager_url: https:\/\/localhost:9093<\/code><\/pre>\n\n\n\n<p>3\u3001\u5c31\u597d\u4e86url\u6700\u540e\u7684***\u5c31\u662fbucket\u7684\u540d\u5b57<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/ext4.cn\/wp-content\/uploads\/2022\/12\/image-3-1024x471.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"471\" data-original=\"https:\/\/ext4.cn\/wp-content\/uploads\/2022\/12\/image-3-1024x471.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-757\"  sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">oss\u5b58\u50a8<\/h2>\n\n\n\n<p>1\u3001\u670d\u52a1\u5668\u5c1d\u8bd5\u8fde\u63a5oss<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/gosspublic.alicdn.com\/ossutil\/1.7.14\/ossutil64\n\nchmod +x ossutil64\nmv ossutil64 \/usr\/local\/bin\/\n\n&#91;root@ops-prometheus ~]# ossutil64 config\nThe command creates a configuration file and stores credentials.\n\nPlease enter the config file name,the file name can include path(default \/root\/.ossutilconfig, carriage return will use the default file. If you specified this option to other file, you should specify --config-file option to the file when you use other commands):\nNo config file entered, will use the default config file \/root\/.ossutilconfig\n\nFor the following settings, carriage return means skip the configuration. Please try \"help config\" to see the meaning of the settings\nPlease enter language(CH\/EN, default is:EN, the configuration will go into effect after the command successfully executed):\nPlease enter endpoint:oss-cn-shanghai-internal.aliyuncs.com\nPlease enter accessKeyID:\u963f\u91cc\u4e91\nPlease enter accessKeySecret:\u963f\u91cc\u4e91\nPlease enter stsToken:\n&#91;root@ops-prometheus ~]# ossutil64 ls\nCreationTime                                 Region    StorageClass    BucketName\n2022-12-13 10:29:28 +0800 CST       oss-cn-shanghai        Standard    oss:\/\/360-loki\n2020-08-21 15:54:03 +0800 CST       oss-cn-shanghai        Standard    oss:\/\/360aidata\n2022-08-03 09:20:39 +0800 CST       oss-cn-shanghai              IA    oss:\/\/***-ops\n2022-11-14 17:06:28 +0800 CST       oss-cn-shanghai        Standard    oss:\/\/nsfocus-vm\nBucket Number is: 4\n\n0.119188(s) elapsed<\/code><\/pre>\n\n\n\n<p>2\u3001\u914d\u7f6e\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>schema_config:\n  configs:\n    - from: 2020-10-24\n      store: boltdb-shipper\n      object_store: aws\n      schema: v11\n      index:\n        prefix: index_\n        period: 24h\nstorage_config:\n  aws:\n    bucketnames: ***-loki\n    endpoint: oss-cn-shanghai-internal.aliyuncs.com\n    access_key_id: ********  \n    secret_access_key: ******\n#    region: oss-cn-shanghai                                             # \u5bf9\u8c61\u5b58\u50a8\u5b58\u50a8\u6876\u5730\u57df\n  boltdb_shipper:\n    active_index_directory: \/loki\/index\n    shared_store: s3\n    cache_location: \/loki\/boltdb-cache<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/ext4.cn\/wp-content\/uploads\/2022\/12\/image-4-1024x477.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"477\" data-original=\"https:\/\/ext4.cn\/wp-content\/uploads\/2022\/12\/image-4-1024x477.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-758\"  sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>asasa<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>loki \u914d\u7f6e\u6587\u4ef6 1\u3001Loki \u7684\u914d\u7f6e\u6587\u4ef6\u975e\u5e38\u590d\u6742\uff0c\u914d\u7f6e\u8d77\u6765\u6709\u4e00\u5b9a\u96be\u5ea6\uff0c\u6240\u4ee5\u6211\u4eec\u975e\u5e38\u6709\u5fc5\u8981\u5bf9 Loki \u914d\u7f6e [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73],"tags":[],"_links":{"self":[{"href":"https:\/\/ext4.cn\/index.php?rest_route=\/wp\/v2\/posts\/743"}],"collection":[{"href":"https:\/\/ext4.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ext4.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ext4.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ext4.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=743"}],"version-history":[{"count":1,"href":"https:\/\/ext4.cn\/index.php?rest_route=\/wp\/v2\/posts\/743\/revisions"}],"predecessor-version":[{"id":1335,"href":"https:\/\/ext4.cn\/index.php?rest_route=\/wp\/v2\/posts\/743\/revisions\/1335"}],"wp:attachment":[{"href":"https:\/\/ext4.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ext4.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ext4.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}