【四月更文打卡】网络日志服务

257 阅读7分钟

2.4 网络日志服务

centos6 以后,rsyslog 就支持网络日志。启用网络日志服务功能,可以 将多个远程主机的日志,发送到集中的日志服务器,方便统一管理。

2.4.1 CentOS 7|6 启用网络日志功能

启动 rsyslog 的网络功能其实就是修改 rsyslog 的配置文件,加载支持 tcp 和 udp 通讯的模块,默认监听 514 端口

具体操作如下:

[root@centos8 ~]#vim /etc/rsyslog.conf
####MODULES####
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

2.4.2 CentOS 8 启用网络日志功能

centos8 的配置文件语法有点变化,只不过本质是一样的,都是加载相应的 支持模块。

[root@centos8 ~]#vim /etc/rsyslog.conf
#### MODULES ####
...省略...
# Provides UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.html
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

2.5 日志管理工具--journalct

CentOS 7 以后版,利用 Systemd 统一管理所有 Unit 的启动 日志。带来的好处就是,可以只用 journalctl 一个命令,查看 所有日志(内核日志和应用日志)。

  • 配置文件/etc/systemd/journald.conf
  • 语法journalctl [OPTIONS...] [MATCHES...]

2.5.1 journalctl 选项说明

--no-full, --full, -l
    如果字段内容超长则以省略号(...)截断以适应列宽。
    默认显示完整的字段内容(超长的部分换行显示或者被分页工具截断)。
    老旧的 -l/--full 选项 仅用于撤销已有的 --no-full 选项,除此之外没有其他用处。
-a, --all
    完整显示所有字段内容, 即使其中包含不可打印字符或者字段内容超长。
-f, --follow
    只显示最新的日志项,并且不断显示新生成的日志项。 此选项隐含了 -n 选项。
-e, --pager-end
    在分页工具内立即跳转到日志的尾部。 此选项隐含了 -n1000
    以确保分页工具不必缓存太多的日志行。 不过这个隐含的行数可以被明确设置的 -n
    选项覆盖。 注意,此选项仅可用于 less(1) 分页器。
-n, --lines=
    限制显示最新的日志行数。 --pager-end--follow 隐含了此选项。
    此选项的参数:若为正整数则表示最大行数; 若为 "all" 则表示不限制行数;
    若不设参数则表示默认值10行。
--no-tail
    显示所有日志行, 也就是用于撤销已有的 --lines= 选项(即使与 -f 连用)。
-r, --reverse
    反转日志行的输出顺序, 也就是最先显示最新的日志。
-o, --output=
    控制日志的输出格式。 可以使用如下选项:
    short
        这是默认值, 其输出格式与传统的 syslog[1] 文件的格式相似, 每条日志一行。
    short-iso
        与 short 类似,只是将时间戳字段以 ISO 8601 格式显示。
    short-precise
        与 short 类似,只是将时间戳字段的秒数精确到微秒级别。
    short-monotonic
        与 short 类似,只是将时间戳字段的零值从内核启动时开始计算。
    short-unix
        与 short 类似,只是将时间戳字段显示为从"UNIX时间原点"(1970-1-1 00:00:00
        UTC)以来的秒数。 精确到微秒级别。
    verbose
        以结构化的格式显示每条日志的所有字段。
    export
        将日志序列化为二进制字节流(大部分依然是文本) 以适用于备份与网络传输(详见
        Journal Export Format[2] 文档)。
    json
        将日志项按照JSON数据结构格式化, 每条日志一行(详见 Journal JSON Format[3]
        文档)。
    json-pretty
        将日志项按照JSON数据结构格式化, 但是每个字段一行, 以便于人类阅读。
    json-sse
        将日志项按照JSON数据结构格式化,每条日志一行,但是用大括号包围, 以适应
        Server-Sent Events[4] 的要求。
    cat
        仅显示日志的实际内容, 而不显示与此日志相关的任何元数据(包括时间戳)。
--utc
    以世界统一时间(UTC)表示时间
--no-hostname
    不显示来源于本机的日志消息的主机名字段。 此选项仅对 short
    系列输出格式(见上文)有效。
-x, --catalog
    在日志的输出中增加一些解释性的短文本, 以帮助进一步说明日志的含义、
    问题的解决方案、支持论坛、 开发文档、以及其他任何内容。
    并非所有日志都有这些额外的帮助文本, 详见 Message Catalog Developer
    Documentation[5] 文档。
    注意,如果要将日志输出用于bug报告, 请不要使用此选项。
-q, --quiet
    当以普通用户身份运行时, 不显示任何警告信息与提示信息。 例如:"-- Logs begin at
    ...", "-- Reboot --"
-m, --merge
    混合显示包括远程日志在内的所有可见日志。
-b [ID][±offset], --boot=[ID][±offset]
    显示特定于某次启动的日志, 这相当于添加了一个 "_BOOT_ID=" 匹配条件。
    如果参数为空(也就是 ID 与 ±offset 都未指定), 则表示仅显示本次启动的日志。
    如果省略了 ID , 那么当 ±offset 是正数的时候, 将从日志头开始正向查找,
    否则(也就是为负数或零)将从日志尾开始反响查找。 举例来说, "-b
    1"表示按时间顺序排列最早的那次启动, "-b 2"则表示在时间上第二早的那次启动; "-b
    -0"表示最后一次启动, "-b -1"表示在时间上第二近的那次启动, 以此类推。 如果
    ±offset 也省略了, 那么相当于"-b -0", 除非本次启动不是最后一次启动(例如用
    --directory 指定了另外一台主机上的日志目录)。
    如果指定了32字符的 ID , 那么表示以此 ID 所代表的那次启动为基准
    计算偏移量(±offset), 计算方法同上。 换句话说, 省略 ID 表示以本次启动为基准
    计算偏移量(±offset)。
--list-boots
    列出每次启动的 序号(也就是相对于本次启动的偏移量)、32字符的ID、
    第一条日志的时间戳、最后一条日志的时间戳。
-k, --dmesg
    仅显示内核日志。隐含了 -b 选项以及 "_TRANSPORT=kernel" 匹配项。
-t, --identifier=SYSLOG_IDENTIFIER
    仅显示 syslog[1] 识别符为 SYSLOG_IDENTIFIER 的日志项。
    可以多次使用该选项以指定多个识别符。
-u, --unit=UNIT|PATTERN
    仅显示属于特定单元的日志。 也就是单元名称正好等于 UNIT 或者符合 PATTERN
    模式的单元。 这相当于添加了一个 "_SYSTEMD_UNIT=UNIT" 匹配项(对于 UNIT 来说),
    或一组匹配项(对于 PATTERN 来说)。
    可以多次使用此选项以添加多个并列的匹配条件(相当于用"OR"逻辑连接)。
--user-unit=
    仅显示属于特定用户会话单元的日志。 相当于同时添加了 "_SYSTEMD_USER_UNIT=" 与
    "_UID=" 两个匹配条件。
    可以多次使用此选项以添加多个并列的匹配条件(相当于用"OR"逻辑连接)。
-p, --priority=
    根据日志等级(包括等级范围)过滤输出结果。 日志等级数字与其名称之间的对应关系如下
    (参见 syslog(3)): "emerg" (0), "alert" (1), "crit" (2), "err" (3),
    "warning" (4), "notice" (5), "info" (6), "debug" (7) 。
    若设为一个单独的数字或日志等级名称, 则表示仅显示小于或等于此等级的日志
    (也就是重要程度等于或高于此等级的日志)。 若使用 FROM..TO.. 设置一个范围,
    则表示仅显示指定的等级范围内(含两端)的日志。 此选项相当于添加了 "PRIORITY="
    匹配条件。
-c, --cursor=从指定的游标(cursor)开始显示日志。
    [提示]每条日志都有一个"__CURSOR"字段,类似于该条日志的指纹。
--after-cursor=
    从指定的游标(cursor)之后开始显示日志。 如果使用了 --show-cursor 选项,
    则也会显示游标本身。