热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS7搭建Rsyslong集中式日志系统

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

在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中添加新的主机名

#

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

#

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

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

------------------------------------------分割线------------------------------------------

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

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

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

下载方法见 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 
& ~

如下图所示:

#

      在此对该模板进行简单解释,$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"; }'

#

重新加载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替换为你的主机名

#

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

附件:创建日志接收模板

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

[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(设备级别列表),如下图

#

例如:

将全部优先级别的所有内部用户验证消息指定为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协议,而客户端也必须使用一致的协议


推荐阅读
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 本文介绍在使用vmware中配置centos6.5时遇到的网络问题,包括host-only和natip的配置,以及无法上网的原因。同时提供了解决方法,包括去掉host-only配置文件中的gateway。 ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
老黑_微笑
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有