<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>日志记录 on Dapr 文档库</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/logging/</link><description>Recent content in 日志记录 on Dapr 文档库</description><generator>Hugo</generator><language>zh-hans</language><atom:link href="https://v1-18.docs.dapr.io/zh-hans/operations/observability/logging/index.xml" rel="self" type="application/rss+xml"/><item><title>日志</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/logging/logs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/operations/observability/logging/logs/</guid><description>&lt;p>Dapr 生成的结构化日志会输出到 stdout，可以选择纯文本或 JSON 格式。默认情况下，所有 Dapr 进程（包括运行时或 sidecar，以及所有控制平面服务）都会以纯文本形式将日志写入控制台（stdout）。若要启用 JSON 格式的日志记录，您需要在运行 Dapr 进程时添加 &lt;code>--log-as-json&lt;/code> 命令标志。&lt;/p>


&lt;div class="alert alert-primary" role="alert">
&lt;h4 class="alert-heading">注意&lt;/h4>

 如果您希望使用 Elastic Search 或 Azure Monitor 等搜索引擎来搜索日志，强烈建议使用 JSON 格式的日志，因为日志收集器和搜索引擎可以利用内置的 JSON 解析器更好地解析这些日志。

&lt;/div>

&lt;h2 id="日志模式">日志模式&lt;/h2>
&lt;p>Dapr 生成的日志遵循以下模式：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>字段&lt;/th>
 &lt;th>描述&lt;/th>
 &lt;th>示例&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>time&lt;/td>
 &lt;td>ISO8601 时间戳&lt;/td>
 &lt;td>&lt;code>2011-10-05T14:48:00.000Z&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>level&lt;/td>
 &lt;td>日志级别 (info/warn/debug/error)&lt;/td>
 &lt;td>&lt;code>info&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>type&lt;/td>
 &lt;td>日志类型&lt;/td>
 &lt;td>&lt;code>log&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>msg&lt;/td>
 &lt;td>日志消息&lt;/td>
 &lt;td>&lt;code>hello dapr!&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>scope&lt;/td>
 &lt;td>日志范围&lt;/td>
 &lt;td>&lt;code>dapr.runtime&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>instance&lt;/td>
 &lt;td>容器名称&lt;/td>
 &lt;td>&lt;code>dapr-pod-xxxxx&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>app_id&lt;/td>
 &lt;td>Dapr 应用 ID&lt;/td>
 &lt;td>&lt;code>dapr-app&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ver&lt;/td>
 &lt;td>Dapr 运行时版本&lt;/td>
 &lt;td>&lt;code>1.9.0&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>API 日志可能会添加其他结构化字段，具体请参阅 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/troubleshooting/api-logs-troubleshooting/">API 日志记录文档&lt;/a>。&lt;/p>
&lt;h2 id="纯文本和-json-格式的日志">纯文本和 JSON 格式的日志&lt;/h2>
&lt;ul>
&lt;li>纯文本日志示例&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">time&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;2022-11-01T17:08:48.303776-07:00&amp;#34;&lt;/span> &lt;span style="color:#000">level&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>info &lt;span style="color:#000">msg&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;starting Dapr Runtime -- version 1.9.0 -- commit v1.9.0-g5dfcf2e&amp;#34;&lt;/span> &lt;span style="color:#000">instance&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>dapr-pod-xxxx &lt;span style="color:#000">scope&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>dapr.runtime &lt;span style="color:#000">type&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>log &lt;span style="color:#000">ver&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>1.9.0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">time&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;2022-11-01T17:08:48.303913-07:00&amp;#34;&lt;/span> &lt;span style="color:#000">level&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>info &lt;span style="color:#000">msg&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;log level set to: info&amp;#34;&lt;/span> &lt;span style="color:#000">instance&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>dapr-pod-xxxx &lt;span style="color:#000">scope&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>dapr.runtime &lt;span style="color:#000">type&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>log &lt;span style="color:#000">ver&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>1.9.0
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>JSON 格式日志示例&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">{&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;instance&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;dapr-pod-xxxx&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;level&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;info&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;msg&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;starting Dapr Runtime -- version 1.9.0 -- commit v1.9.0-g5dfcf2e&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;scope&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;dapr.runtime&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;time&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;2022-11-01T17:09:45.788005Z&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;type&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;log&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;ver&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1.9.0&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">{&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;instance&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;dapr-pod-xxxx&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;level&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;info&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;msg&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;log level set to: info&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;scope&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;dapr.runtime&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;time&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;2022-11-01T17:09:45.788075Z&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;type&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;log&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>&lt;span style="color:#204a87;font-weight:bold">&amp;#34;ver&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1.9.0&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="日志格式">日志格式&lt;/h2>
&lt;p>Dapr 支持输出纯文本（默认）或 JSON 格式的日志。&lt;/p></description></item><item><title>操作指南：在 Kubernetes 中设置 Fluentd、Elastic search 和 Kibana</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/logging/fluentd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/operations/observability/logging/fluentd/</guid><description>&lt;h2 id="前提条件">前提条件&lt;/h2>
&lt;ul>
&lt;li>Kubernetes (&amp;gt; 1.14)&lt;/li>
&lt;li>&lt;a href="https://kubernetes.io/docs/tasks/tools/">kubectl&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://helm.sh/">Helm 3&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="安装-elastic-search-和-kibana">安装 Elastic search 和 Kibana&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>创建一个用于监控工具的 Kubernetes 命名空间&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kubectl create namespace dapr-monitoring
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>添加 Elastic Search 的 Helm 仓库&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>helm repo add elastic https://helm.elastic.co
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>helm repo update
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>使用 Helm 安装 Elastic Search&lt;/p>
&lt;p>默认情况下，chart 会创建 3 个副本，要求它们位于不同的节点上。如果您的集群少于 3 个节点，请指定较少的副本数。例如，将副本数设置为 1：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>helm install elasticsearch elastic/elasticsearch --version 7.17.3 -n dapr-monitoring --set &lt;span style="color:#000">replicas&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#0000cf;font-weight:bold">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>否则：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>helm install elasticsearch elastic/elasticsearch --version 7.17.3 -n dapr-monitoring
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>如果您使用 minikube 或仅在开发过程中想禁用持久卷，可以使用以下命令：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>helm install elasticsearch elastic/elasticsearch --version 7.17.3 -n dapr-monitoring --set persistence.enabled&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>false,replicas&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#0000cf;font-weight:bold">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>安装 Kibana&lt;/p></description></item><item><title>操作指南：为 Dapr 日志配置 New Relic</title><link>https://v1-18.docs.dapr.io/zh-hans/operations/observability/logging/newrelic/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/operations/observability/logging/newrelic/</guid><description>&lt;h2 id="前提条件">前提条件&lt;/h2>
&lt;ul>
&lt;li>注册一个 &lt;a href="https://newrelic.com/signup?ref=dapr">New Relic 账户&lt;/a>，享受每月 100 GB 的免费数据摄取、1 个免费完全访问用户和无限制的免费基本用户。&lt;/li>
&lt;/ul>
&lt;h2 id="背景">背景&lt;/h2>
&lt;p>New Relic 提供了一个 &lt;a href="https://fluentbit.io/">Fluent Bit&lt;/a> 输出 &lt;a href="https://github.com/newrelic/newrelic-fluent-bit-output">插件&lt;/a>，可以轻松地将日志转发到 &lt;a href="https://github.com/newrelic/newrelic-fluent-bit-output">New Relic Logs&lt;/a>。该插件也可以作为独立的 Docker 镜像使用，并在 Kubernetes 集群中以 DaemonSet 的形式安装，我们称之为 Kubernetes 插件。&lt;/p>
&lt;p>本文档将解释如何在集群中安装此插件，推荐使用 Helm chart，也可以通过应用 Kubernetes 清单手动安装。&lt;/p>
&lt;h2 id="安装">安装&lt;/h2>
&lt;h3 id="使用-helm-chart-安装推荐">使用 Helm chart 安装（推荐）&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>按照官方说明安装 Helm。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>添加 New Relic 官方 Helm chart 仓库。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>运行以下命令通过 Helm 安装 New Relic Logging Kubernetes 插件，并将占位符 YOUR_LICENSE_KEY 替换为您的 &lt;a href="https://docs.newrelic.com/docs/accounts/accounts-billing/account-setup/new-relic-license-key/">New Relic 许可证密钥&lt;/a>：&lt;/p>
&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>
&lt;p>Helm 3&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>helm install newrelic-logging newrelic/newrelic-logging --set &lt;span style="color:#000">licenseKey&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>YOUR_LICENSE_KEY
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Helm 2&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>helm install newrelic/newrelic-logging --name newrelic-logging --set &lt;span style="color:#000">licenseKey&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>YOUR_LICENSE_KEY
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ul>
&lt;p>对于欧盟用户，请在上述命令中添加 &lt;code>--set endpoint=https://log-api.eu.newrelic.com/log/v1&lt;/code>。&lt;/p></description></item></channel></rss>