阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7搭建Rsyslong集中式日志系统

144次阅读
没有评论

共计 3397 个字符,预计需要花费 9 分钟才能阅读完成。

在 CentOS7 中,Rsyslong 是一个集中式的日志收集系统,可以运行在 TCP 或者 UDP 的 514 端口上。

目录

  • 开始之前
  • 配置接收日志的主机
  • 配置发送日志的主机
  • 日志回滚
  • 附件:创建日志接收模板
  • 排错

开始之前

本文的配置环境如下

系统:CentOS7

主机数量:2

接收日志的主机 ip:192.168.1.112;主机名:server112

发送日志的主机 ip:192.168.1.204;主机名:server204

rsyslog 版本号:rsyslog-7.4.7-7.el7_0.x86_64

目的:把 server204 上产生的所有日志信息和所有的操作命令都发送到 server112 主机上,以便集中监控和分析日志

如果你的主机名在安装系统时没有修改,默认为 localhost.domain,如果不修改主机名,那么所有的日志集中在一个服务器上时就会互相覆盖。

查看当前的主机名:hostname

修改主机名流程:

在文件 /etc/hostname 中添加新的主机名

CentOS 7 搭建 Rsyslong 集中式日志系统

在文件 /etc/hosts 的第一行的两个地方添加新的主机名

CentOS 7 搭建 Rsyslong 集中式日志系统

注意:一定要在 localhost.domain 的前面添加{主机名}.domain,否则不能在 /var/log 目录下产生以主机名命名的目录

相关文件可以到 Linux 公社资源站下载:

—————————————— 分割线 ——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2017 年资料 / 2 月 / 8 日 /CentOS 7 搭建 Rsyslong 集中式日志系统 /

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

—————————————— 分割线 ——————————————

在该项目下的 scripts 目录下有两个文件,configure_rsyslog_for_client.sh 是用来配置发送日志的客户端脚本,configure_rsyslog_for_server.sh 是用来配置接收日志的服务器端脚本。往后会在该项目中添加日志分析系统和更为全面的日志管理方法。

配置接收日志的主机

查看你的系统上是否安装了 rsyslog 系统

rpm -qa | grep rsyslog

在主机上安装 rsyslog

yum install rsyslog* -y

安装完成后,打开文件 /etc/rsyslog.conf 进行配置,主要是把下面的注释去掉,并添加三行字符

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" * 
*.* ?RemoteLogs 
& ~

如下图所示:

CentOS 7 搭建 Rsyslong 集中式日志系统

      在此对该模板进行简单解释,$template RemoteLogs(这里“RemoteLogs”字符串可以为任何其他的描述性的名称)指令使 rsyslog 后台进程将日志消息写到 /var/log 下的单独的本地日志文件中,其中日志文件的名称是基于远程日志发送机器的主机名以及生成该日志的应用程序名进行定义的。其中第二行暗示了我们将 RemoteLogs 模板应用到所有接收到的日志上。

      符号 ”& ~” 表示了一个重定向规则,被用来告知 rsyslog 守护进程停止对日志消息的进一步处理,并且不要在本地写入。如果没有使用该重定向规则,那么所有的远程消息都会在写入上述描述的日志文件之外同时被写入到本地日志文件,这就意味着日志消息实际上被写了两次。使用该规则的另外一个结果就是 syslog 服务器本身的日志消息只会被以该机器主机名命名的专有文件中

如果想配置特定的模板,参考本文最后的附件

rsyslog 进程的控制命令为

查看进程运行情况(Status):systemctl status rsyslog

停止(Stop):systemctl stop rsyslog

重启(Restart):systemctl restart rsyslog

启动(Start):systemctl start rsyslog

查看 514 端口是否启动:netstat -antup | grep 514

配置发送日志的主机

如果没有安装 rsyslog,则安装

yum install rsyslog -y

安装完成后,同样配置 /etc/rsyslog.conf 文件,在文件的最后一行添加如下字符

*.* @192.168.1.112:514

如果用的是 TCP 协议,则要多加一个 @:*.* @@192.168.1.112:514

把该主机上的所有操作命令同时发送到日志主机去,打开配置文件 /etc/bashrc

在文件的最后一行添加以下内容:

export PROMPT_COMMAND='{msg=$(history 1 | { read x y; echo $y;});logger"[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'

CentOS 7 搭建 Rsyslong 集中式日志系统

重新加载 bash 配置文件:

source /etc/bashrc

打开防火墙的 514 端口

firewall-cmd --add-port=514/udp --permanent

firewall-cmd --add-port=514/tcp --permanent

firewall-cmd --reload

重启 rsyslog

systemctl restart rsyslog

至此,基本配置完成

日志回滚

在接收日志的主机上,进入目录 /var/log,可以看到生成了两个文件夹 server112 和 server204(根据两台主机名生成的),在 server204 文件夹中的一个名为 root.log 文件就是该主机上执行过的所有命令,其他文件都是根据进程名生成的。

设置日志回滚,编辑文件 /etc/logrotate.d/syslog

把记录日志的两个路径添加进去,记得把 server112 和 server204 替换为你的主机名

CentOS 7 搭建 Rsyslong 集中式日志系统

这样就能自动回滚这两个目录下的所有日志

附件:创建日志接收模板

可以使用下面的模式对特定的设备或严重性级别使用新的模板直接来记录日志消息。

[facility-level].[severity-level] ?RemoteLogs

serverity-level table(服务级别列表)

serverity-level table(服务 级别 列表

数字 代码

服务 级别

描述

0

emerg

系统 不可用

1

alert

必须 马上采取 救援行动

2

crit

严重 错误 信息

3

error

错误信息

4

warning

警告信息

5

notice

普通但是 值得 注意的 信息

6

info

一般 信息

7

debug

调试 信息

facility-level table(设备级别列表),如下图

CentOS 7 搭建 Rsyslong 集中式日志系统

例如:

将全部优先级别的所有内部用户验证消息指定为 RemoteLogs 模板:

authpriv.* ?RemoteLogs

将所有系统进程中除开 mail、用户验证和 cron 消息之外的进程产生的消息级别的日志指定为 RemoteLogs 模板:

*.info,mail.none,authpriv.none,cron.none ?RemoteLogs

如果我们想要将所有从远程客户端接受到的消息写入到一个以它们的 IP 地址命名的单个文件中,可以使用以下的模板。在此我们为该模板赋予了“IpTemplate”名称。

$template IpTemplate,"/var/log/%FROMHOST-IP%.log"

 *.* ?IpTemplate

 & ~

排错

上面的配置很简单,但是有时候服务端就是很诡异地接收不到客户端发送的日志(在服务端的 /var/log 目录下没有以客户端主机名命名的文件夹),此时就要逐一检查以下问题:

1. 检查配置文件是否有错

2. 两台机器之间是否能 ping 通

3. 查看服务端是否已经在监控 514 端口:netstat -lnutp

4. 注意服务端监控的 514 端口究竟是 udp 还是 tcp 协议,而客户端也必须使用一致的协议

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140375.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3397字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中