MongoDB 的日志配置
<div><div>
<h1 class="otl-heading">配置日志相关的参数</h1>
<p>默认的配置文件是/etc/mongod.conf,可以在该文件中配置与日志相关的信息。比如:</p>
<pre><code lang="plaintext">more /etc/mongod.conf
# where to write logging data.
# Enable logging to a file
systemLog:
quiet: false
destination: file
logAppend: true
path: /data/log/mongod.log</code></pre>
<p>这里:</p>
<p><strong>·destination</strong>:定义日志存在哪里,可以设置为file、syslog</p>
<p><strong>·path</strong>:日志文件的位置和名称。缺省是:/var/log/mongodb/mongod.log。如果设置了destination: file,就必须配置path</p>
<p><strong>·verbosity</strong>:定义日志级别</p>
<p><strong>·quiet</strong>:如果设置为true,mongodb会运行在quite模式,限制写入日志的量。生产环境通常建议设置为false</p>
<p><strong>·traceAllExceptions</strong>:如果设置为true,会打印verbose信息,提供用于调试的额外信息</p>
<p><strong>·syslogFacility</strong>:默认是user,与操作系统的syslog设置有关</p>
<p><strong>·logAppend</strong>:如果设置为 true,重启后将日志条目追加到已经存在日志文件;如果设置为 false,重启后将创建新的日志文件,并将老的日志文件做备份。</p>
<p><strong>·logRotate</strong>:设置日志文件rotation,可以设置成rename、reopen。rename会在老的日志文件后面加上时间戳,并打开新的日志文件;reopen会关闭原来的日志文件并重新打开它。</p>
<p><strong>·timeStampFormat</strong>:设置时间戳格式</p>
<p><strong>·component.<component>.verbosity</strong>:定义不同组件的日志级别,比如</p>
<pre><code lang="plaintext">systemLog:
component:
accessControl:
verbosity: <int>
command:
verbosity: <int>
. . .</code></pre>
<p>当然也可以登录mongodb后使用db.adminCommand()命令修改:</p>
<pre><code lang="plaintext">db.adminCommand( { setParameter: 1, <parameter>: <value> } )</code></pre>
<h1 class="otl-heading">查看日志内容</h1>
<p>日志内容是json格式的,可以借助工具jq进行分析。比如:</p>
<pre><code lang="plaintext">sudo cat /var/log/mongodb/mongod.log | jq</code></pre>
<p>输出结果:</p>
<pre><code lang="plaintext">. . .
{
"t": {
"$date": "2024-02-18T14:43:15.107-02:00"
},
"s": "I",
"c": "NETWORK",
"id": 24076,
"ctx": "listener",
"msg": "Waiting for connections",
"attr": {
"port": 27017,
"ssl": "off"
}
}</code></pre>
<p>这里:</p>
<p>·t: 时间戳</p>
<p>·s: 日志严重级别</p>
<p>·c: 该条记录属于哪个组件</p>
<p>·id: 唯一标识符</p>
<p>·ctx: 上下文信息</p>
<p>·msg: 消息主体</p>
<p>·attr: 其它额外信息</p>
<p>·tags: 可选标签</p>
<p>·truncated: 截断信息</p>
<p>·size: 日志条目被截断之前的大小</p>
<h1 class="otl-heading">日志的详细级别</h1>
<p>配置:</p>
<pre><code lang="plaintext">. . .
systemLog:
verbosity: 1
. . .</code></pre>
<p>mongodb提供了以下的一些级别:</p>
<p>·F: Fatal messages.</p>
<p>·E: Error messages.</p>
<p>·W: Warning messages.</p>
<p>·I: Informational messages. Corresponds to numeric value 0.</p>
<p>·D1--D5: Debug messages, Corresponds to numeric value 1-5.</p>
<p>默认设置是 0。</p>
<p> </p>
<p>查看当前的级别:</p>
<pre><code lang="plaintext">db.getLogComponents(){
"verbosity" : 0,
"accessControl" : {
"verbosity" : -1
},
"command" : {
"verbosity" : -1
},
...
}
</code></pre>
<p>这里组件的级别是-1,表示继承父级别的设置。</p>
<h1 class="otl-heading">日志内容分析</h1>
<p>可以使用工具jq对mongodb的日志做分析。例如:</p>
<pre><code lang="plaintext">jq -r ".msg" /var/log/mongodb/mongod.log | sort | uniq -c | sort -rn | head -10</code></pre>
<p> </p>
<p> </p>
</div>
</div>
</div>
<div id="MySignature" role="contentinfo">
<b> <br></b>
<b> <br></b>
<img src="https://files.cnblogs.com/files/abclife/4.gif" width="400px" height="400px"><br>
<p>本文来自博客园,作者:abce,转载请注明原文链接:https://www.cnblogs.com/abclife/p/18077174</p><br><br>
来源:https://www.cnblogs.com/abclife/p/18077174
頁:
[1]