远程日志服务器配置(理论)
本文最后更新于 2024-10-09,文章内容可能已经过时。
[TOC]
远程日志服务器配置
使用环境
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协议转发或接收日志信息。
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