Linux日志系统-2021年11月22日

文章目录

  • [ 远程日志服务器配置(理论)][1]
    • [远程日志服务器配置(实践)][2]
    • 使用环境
    • 1. 更改配置文件rsyslog
    • 2. 远程日志服务器
    • 3. 配置客户端
    • 4.查看日志文件

远程日志服务器配置(理论)

远程日志服务器配置(实践)

使用环境

Centos7

1. 更改配置文件rsyslog

rsyslog配置文件/etc/rsyslog.conf的结构如下:

●模块(modules ):配置加载的模块,如ModL oad imudp so配置加载UDP传输模块。
●全局配置(global directives ):配置rsyslog 守护进程的全局属性,如主信息队列大小
( Main Message Queue Size )。
●规则(rules): 每个规则行由两部分组成: selector 部分和action部分,两部分之间由一个
或多个空格或Tab键分隔,selector 部分指定源和日志等级,action 部分指定对应的操作。
●模板(templates ):指定记录的消息格式,也用于生成动态文件名称。
●输出(outputs ): 对用户期望的消息进行预定义。
常用的模块如下。
●imudp:传统方式的UDP传输,有损耗。

●imtcp:基于TCP明文的传输,只在特定情况下丢失信息,被广泛使用。

规则配置的格式如下:

#selectors action
#kern.* /dev/console

日志设施表格

设备字段 说明
auth(security),authpriv 授权和安全相关的信息
kern 来自Linux相关的信息
mail 又mail子系统产生的信息
cron cron守护的进程相关的信息
daemon 守护进程产生的信息
news 网络消息子信息
users 用户进程相关的信息
Ipr 打印相关的信息
local() to local7 保留给本地其他程序使用

日志级别(升序)有以下几种。
●*:所有级别,除了none。
●debug: 包含详细的开发情报的信息,通常只在调试一个程序时使用。
●info: 情报信息,正常的系统消息,如骚扰报告、带宽数据等,不需要处理。
● notice: 不是错误,也不需要立即处理。
●warning:警告信息,不是错误,如系统磁盘使用了85%等。
● err: 错误,不是非常紧急,在一定时间内修复即可。
●crit: 重要情况,如硬盘错误、备用连接丢失等。
●alert: 应该被立即改正的问题,如系统数据库被破坏、ISP连接丢失等。
●emerg: 紧急情况,需要立即通知技术人员。
●none: 禁止任何消息。

动作字段

动作字段 说明
filename 记录到普通文件或设备文件
:omusrmsg:users 发送信息到指定用户,users可以使用逗号分隔符的用户列表。*表示所有用户
|named_pipe 将日志记录到命名管道
@hostname 将信息发送到远程主机(tcp),该主机必须运行rsyslogd
@@hostname 将信息发送到远程主机(udp)

例子(配置规则):

#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
# 关于内核的所有日志都放到/dev/console(控制台)
#kern.*                                                 /dev/console  
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
# 记录所有日志类型的info级别以及大于info级别的信息到/var/log/messages,但是mail邮件信息,authpriv验证方面的信息和cron时间任务相关的信息除外
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
# The authpriv file has restricted access.
# authpriv验证相关的所有信息存放在/var/log/secure
authpriv.*                                              /var/log/secure
# Log all the mail messages in one place.
# 邮件的所有信息存放在/var/log/maillog; 这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大
mail.*                                                  -/var/log/maillog
# Log cron stuff
# 计划任务有关的信息存放在/var/log/cron
cron.*                                                  /var/log/cron
# Everybody gets emergency messages
# 启动的相关信息
*.emerg                                                 :omusrmsg:*
# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler
# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

2. 远程日志服务器

  • rsyslog是一个开源工具,运用到的地方很多,可以通过TCP/UDP协议转发或接收日志信息。
  1. rsyslog服务段需要在配置文件/etc/rsyslog.conf
# 去掉注释开启TCP,UDP
# Provides UDP syslog reception
$ModLoad imudp  # 引用udp协议的模块
$UDPServerRun 514  # 设置udp协议使用端口
# Provides TCP syslog reception
$ModLoad imtcp  # 引用tcp协议的模块
$InputTCPServerRun 514  # 设置tcp协议使用端口

开启TCP,还需要增加一个配置文件:

$500 #tcp接受连接数为500个

配置完成后重启服务:

[root@test2 ~]# systemctl restart rsyslog

查看监听服务:

[root@test3 log]# ss -ltn | grep 514

3. 配置客户端

将centos7作为客户机,把需要的日志发送到日志服务器上

需要在配置文件中加如下:

*.*hostname:514

rsyslog需要守护进程,将系统上各个设备的日志消息路由到远程rsyslog服务器上的UDP端口514

如果说是更为可靠的协议,如TCP。rsyslog服务器也是可以监听TCP连接的

配置如下:

@@hostname:514

如果只是想转发指定的设备消息,如内核设备等消息时配置如下:

kern.*hostname:514

所有的配置结束后需要重启服务:

systemctl restart rsyslog

4.查看日志文件

从rsyslog 的配置文件可以看出,日志文件存放的路径是/var/log

注意:想要查看日志文件必须要root

你可能感兴趣的:(linux,linux)