rsyslog 日志记录
本文档介绍了 Redis Enterprise Software 日志条目的结构rsyslog
以及如何使用这些日志条目来识别事件。
Redis 企业软件 |
---|
日志概念
Redis Enterprise Software 会记录来自各种组件的信息,以响应集群中发生的作和事件。
在某些情况下,单个作(例如从集群中删除节点)实际上可能包含多个事件。这些作可能会生成多个日志条目。
Cluster Manager UI 中显示的所有日志条目也会写入syslog
.您可以配置rsyslog
监控syslog
.已启用的警报将记录到syslog
并与其他日志条目一起显示。
您还可以使用远程日志记录服务器和日志轮换来管理您的日志。
日志条目的类型
日志条目分为 events 和 alerts。这两种类型的条目都会显示在日志中,但警报日志条目还包括布尔值"state"
参数指示警报是启用还是禁用。
日志条目包括有关发生的特定事件的信息。有关更多详细信息,请参阅警报和事件的日志条目表。
严厉
您还可以配置rsyslog
以添加其他信息,例如事件严重性。
因为rsyslog
条目默认不包括严重性,您可以按照以下步骤启用它:
-
将以下行添加到
/etc/rsyslog.conf
:$template TraditionalFormatWithPRI,"%pri-text%: %timegenerated% %HOSTNAME% %syslogtag%%msg:::drop-last-lf%\n"
-
修改
$ActionFileDefaultTemplate
使用新模板$ActionFileDefaultTemplateTraditionalFormatWithPRI
-
保存这些更改并重新启动
rsyslog
以应用它们
您可以在/var/log/messages
文件。
命令组件:
%pritext%
添加严重性%timegenerated%
添加时间戳%HOSTNAME%
添加计算机名称%syslogtag%
添加 Redis Enterprise Software 消息。有关更多详细信息,请参阅 log entry structure 部分。%msg:::droplastlf%n
删除重复的日志条目
日志条目结构
日志条目的基本结构如下:
event_log[<process id>]:{<list of key-value pairs in any order>}
- event_log:纯静态文本始终显示在条目的开头。
- process id:日志记录进程的 ID
- list of key-value pairs in any order(任意顺序的键值对列表):描述特定事件的键值对列表。它们可以按任何顺序显示。一些键值对始终显示,而一些键值对则根据特定事件显示。
- 始终出现的键值对:
"type"
:记录的事件的唯一代码名称。有关代号的列表,请参阅记录的警报和事件表。"object"
:定义与此事件相关的对象的对象类型和 ID(如果相关),例如群集、具有 ID 的节点、具有 ID 的 BDB 等。格式为 .<object type>[:<id>]
"time"
:Unix 纪元时间,但在此上下文中可以忽略。
- 根据特定条目可能显示的键值对:
"state"
:一个布尔值,其中true
表示警报已启用,并且false
表示警报已禁用。这仅与警报日志条目相关。"global_threshold"
:与集群或节点对象相关的警示的阈值。"threshold"
:与 BDB 对象相关的警报的阈值
- 始终出现的键值对:
日志条目示例
本节提供了包括rsyslog
配置以添加 Severity、Timestamp 和 Machine Name。
短暂存储超过阈值
“Alert on” 日志条目示例
daemon.warning: Jun 14 14:49:20 node1 event_log[3464]:
{
"storage_util": 90.061643120001,
"global_threshold": "70",
"object": "node:1",
"state": true,
"time": 1434282560,
"type": "ephemeral_storage"
}
在此示例中,节点 1 上的存储利用率达到了 ~90% 的值,这触发了“短暂存储已达到其容量的 70%”警报。
日志条目组件:
daemon.warning
- 进入的严重性warning
Jun 14 14:49:20
- 事件的时间戳node1
:计算机名称event_log
- 始终显示的静态文本[3464]
- 进程 ID"storage_util":90.061643120001
- 当前短暂存储利用率"global_threshold":"70"
- 用户配置的阈值,超过该阈值时,将引发警报"object":"node:1"
- 与此警报相关的对象"state":true
- 警报的当前状态"time":1434282560
- 可以忽略"type":"ephemeral_storage"
- 此特定事件的代码名称。有关更多详细信息,请参阅记录的警报和事件。
“Alert off” 日志条目示例
daemon.info: Jun 14 14:51:35 node1 event_log[3464]:
{
"storage_util":60.051723520008,
"global_threshold": "70",
"object": "node:1",
"state":false,
"time": 1434283480,
"type": "ephemeral_storage"
}
此日志条目是一个示例,说明由于存储利用率达到 ~60% 的值,ID 为 1“短暂存储已达到其容量的 70%”的节点的警报已关闭。
日志条目组件:
daemon.info
- 进入的严重性info
Jun 14 14:51:35
- 事件的时间戳node1
- 机器名称event_log
- 始终显示的静态文本[3464]
- 进程 ID"storage_util":60.051723520008
- 当前短暂存储利用率"global_threshold":"70"
- 用户配置的阈值,超过该阈值时,将引发警报(在本例中为 70%)"object":"node:1"
- 与此警报相关的对象"state":false
- 警报的当前状态"time":1434283480
- 可以忽略"type":"ephemeral_storage"
- 此特定事件的代码名称标识符。有关更多详细信息,请参阅记录的警报和事件。
奇数个节点,至少有三个节点警报
“Alert on” 日志条目示例
daemon.warning: Jun 14 15:25:00 node1 event_log[8310]:
{
"object":"cluster",
"state": true,
"time": 1434284700,
"node_count": 1,
"type":"even_node_count"
}
此日志条目是一个示例,说明由于集群只有一个节点而打开了“真正的高可用性需要奇数个节点,至少有三个节点”的警报。
日志条目组件:
daemon.warning
- 条目的严重性为警告Jun 14 15:25:00
- 事件的时间戳node1
- 机器名称event_log
- 始终显示的静态文本[8310]
- 进程 ID"object":"cluster"
- 与此警报相关的对象"state":true
- 警报的当前状态"time":1434284700
- 可以忽略"node_count":1
- 集群中的节点数"type":"even_node_count"
- 此特定事件的代码名称标识符。有关更多详细信息,请参阅记录的警报和事件。
“Alert off” 日志条目示例
daemon.warning: Jun 14 15:30:40 node1 event_log[8310]:
{
"object":"cluster",
"state": false,
"time": 1434285200,
"node_count": 3,
"type":"even_node_count"
}
此日志条目是一个示例,说明由于群集具有 3 个节点而关闭了“真正的高可用性需要奇数个节点,至少有三个节点”的警报。
日志条目组件:
daemon.warning
- 条目的严重性为警告Jun 14 15:30:40
- 事件的时间戳node1
- 机器名称event_log
- 始终显示的静态文本[8310]
- 进程 ID"object":"cluster"
- 与此警报相关的对象"state":false
- 警报的当前状态"time":1434285200
- 可以忽略"node_count":3
- 集群中的节点数"type":"even_node_count"
- 此特定事件的代码名称。有关更多详细信息,请参阅记录的警报和事件。
节点没有足够的磁盘空间进行 AOF 重写
“Alert on” 日志条目示例
daemon.err: Jun 15 13:51:23 node1 event_log[34252]:
{
"used": 23457188,
"missing": 604602126,
"object": "node:1",
"free": 9867264,
"needed":637926578,
"state": true,
"time": 1434365483,
"disk": 705667072,
"type":"insufficient_disk_aofrw"
}
此日志条目是一个示例,说明由于没有足够的持久存储磁盘空间进行 AOF 重写而打开了 “Node has insufficient disk space for AOF rewrite” 警报。它缺少 604602126 字节。
日志条目组件:
daemon.err
- 输入的严重性为 errorJun 15 13:51:23
- 事件的时间戳node1
- 机器名称event_log
- 始终显示的静态文本[34252]
- 进程 ID"used":23457188
- 当前用于 AOF 文件的磁盘空间量(以字节为单位)"missing":604602126
- 当前为 AOF 重写目的而缺少的磁盘空间量(以字节为单位)"object":"node:1″
- 与此警报相关的对象"free":9867264
- 当前磁盘空间量(以字节为单位) 自由"needed":637926578
- 用于 AOF 重写目的所需的总磁盘空间量(以字节为单位)"state":true
- 警报的当前状态"time":1434365483
- 可以忽略"disk":705667072
- 持久性存储的总大小(以字节为单位)"type":"insufficient_disk_aofrw"
- 此特定事件的代码名称。有关更多详细信息,请参阅记录的警报和事件。
“Alert off” 日志条目示例
daemon.info: Jun 15 13:51:11 node1 event_log[34252]:
{
"used": 0, "missing":-21614592,
"object": "node:1",
"free": 21614592,
"needed": 0,
"state":false,
"time": 1434365471,
"disk": 705667072,
"type":"insufficient_disk_aofrw"
}
日志条目组件:
daemon.info
- 条目的严重性是 infoJun 15 13:51:11
- 事件的时间戳node1
- 机器名称event_log
- 始终显示的静态文本[34252]
- 进程 ID"used":0
- 当前用于 AOF 文件的磁盘空间量(以字节为单位)"missing":‐21614592
- 当前为 AOF 重写目的而缺少的磁盘空间量(以字节为单位)。在这种情况下,它不会丢失,因为数字为负数。"object":"node:1″
- 与此警报相关的对象"free":21614592
- 当前可用的磁盘空间量(以字节为单位)"needed":0
- 用于 AOF 重写目的所需的总磁盘空间量(以字节为单位)。在这种情况下,不需要任何空间。"state":false
- 警报的当前状态"time":1434365471
- 可以忽略"disk":705667072
- 持久性存储的总大小(以字节为单位)"type":"insufficient_disk_aofrw"
- 此特定事件的代码名称。有关更多详细信息,请参阅记录的警报和事件。