rsyslog 日志记录

本文档介绍了 Redis Enterprise Software 日志条目的结构rsyslog以及如何使用这些日志条目来识别事件。

Redis 企业软件

日志概念

Redis Enterprise Software 会记录来自各种组件的信息,以响应集群中发生的作和事件。

在某些情况下,单个作(例如从集群中删除节点)实际上可能包含多个事件。这些作可能会生成多个日志条目。

Cluster Manager UI 中显示的所有日志条目也会写入syslog.您可以配置rsyslog监控syslog.已启用的警报将记录到syslog并与其他日志条目一起显示。

您还可以使用远程日志记录服务器和日志轮换来管理您的日志

日志条目的类型

日志条目分为 events 和 alerts。这两种类型的条目都会显示在日志中,但警报日志条目还包括布尔值"state"参数指示警报是启用还是禁用。

日志条目包括有关发生的特定事件的信息。有关更多详细信息,请参阅警报和事件的日志条目表。

严厉

您还可以配置rsyslog以添加其他信息,例如事件严重性。

因为rsyslog条目默认不包括严重性,您可以按照以下步骤启用它:

  1. 将以下行添加到/etc/rsyslog.conf:

    $template TraditionalFormatWithPRI,"%pri-text%: %timegenerated% %HOSTNAME% %syslogtag%%msg:::drop-last-lf%\n"
    
  2. 修改$ActionFileDefaultTemplate使用新模板$ActionFileDefaultTemplateTraditionalFormatWithPRI

  3. 保存这些更改并重新启动rsyslog以应用它们

您可以在/var/log/messages文件。

命令组件:

  • %pri­text%添加严重性
  • %timegenerated%添加时间戳
  • %HOSTNAME%添加计算机名称
  • %syslogtag%添加 Redis Enterprise Software 消息。有关更多详细信息,请参阅 log entry structure 部分。
  • %msg:::drop­last­lf%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- 输入的严重性为 error
  • Jun 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­- 条目的严重性是 info
  • Jun 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"- 此特定事件的代码名称。有关更多详细信息,请参阅记录的警报和事件
为本页评分
返回顶部 ↑