在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目录下产生以主机名命名的目录

 

github项目:https://github.com/Kylinlin/logsystem

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

 

声明:本文大量引用了Linux.cn开源中文社区的一篇博客内容:https://linux.cn/article-5023-1.html

 

配置接收日志的主机

查看你的系统上是否安装了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协议,而客户端也必须使用一致的协议

Centos7搭建集中式日志系统的更多相关文章

  1. elk + filebeat,6.3.2版本简单搭建,实现我们自己的集中式日志系统

    前言 刚从事开发那段时间不习惯输出日志,认为那是无用功,徒增代码量,总认为自己的代码无懈可击:老大的叮嘱.强调也都视为耳旁风,最终导致的结果是我加班排查问题,花的时间还挺长的,要复现问题.排查问题等, ...

  2. 安装logstash+kibana+elasticsearch+redis搭建集中式日志分析平台

    安装logstash+kibana+elasticsearch+redis搭建集中式日志分析平台 2014-01-16 19:40:57|  分类: logstash |  标签:logstash   ...

  3. 集中式日志系统 ELK 协议栈详解

    简介 在我们日常生活中,我们经常需要回顾以前发生的一些事情:或者,当出现了一些问题的时候,可以从某些地方去查找原因,寻找发生问题的痕迹.无可避免需要用到文字的.图像的等等不同形式的记录.用计算机的术语 ...

  4. ELK——集中式日志系统

    https://www.ibm.com/developerworks/cn/opensource/os-cn-elk/index.html 基本流程是 Shipper 负责从各种数据源里采集数据,然后 ...

  5. ELK+Filebeat 集中式日志解决方案详解

    链接:https://www.ibm.com/developerworks/cn/opensource/os-cn-elk-filebeat/index.html?ca=drs- ELK Stack ...

  6. 中小型研发团队架构实践七:集中式日志ELK

    一.集中式日志 日志可分为系统日志.应用日志以及业务日志,系统日志给运维人员使用,应用日志给研发人员使用,业务日志给业务操作人员使用.我们这里主要讲解应用日志,通过应用日志来了解应用的信息和状态,以及 ...

  7. 理解OpenShift(6):集中式日志处理

    理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...

  8. 集中式日志分析平台 - ELK Stack - 安全解决方案 X-Pack

    大数据之心 关注  0.6 2017.02.22 15:36* 字数 2158 阅读 16457评论 7喜欢 9 简介 X-Pack 已经作为 Elastic 公司单独的产品线,前身是 Shield, ...

  9. centos7搭建集群必知:centos7已经无iptables,只有firewall

    1.防火墙概述 centos7搭建集群,发现没有iptables,需要安装.防火墙为firewalle CentOS7默认的防火墙不是iptables,而是firewalle. CentOS 7.0默 ...

随机推荐

  1. iOS H5容器的一些探究(一):UIWebView和WKWebView的比较和选择

    一.Native开发中为什么需要H5容器 Native开发原生应用是手机操作系统厂商(目前主要是苹果的iOS和google的Android)对外界提供的标准化的开发模式,他们对于native开发提供了 ...

  2. SQL Server 之 在数据库之间进行数据导入导出

    1.同一服务器上数据库之间进行数据导入导出 (1).使用 SELECT INTO 导出数据 在SQL Server中使用最广泛的就是通过SELECT INTO语句导出数据,SELECT INTO语句同 ...

  3. jQuery Validate 插件[表单验证 属性介绍]

    详细介绍一下Validate插件 $("#form的Id").validate({ }) 属性 规则 描述 required:true 必须输入的字段 required: &quo ...

  4. javaEE的十三个技术规范

    java 是一种非常棒的语言,健壮,跨平台运行,屏蔽了具体的平台环境的要求,也就是说只要支持java 虚拟机,就可以运行java程序. 下面,我们一起学习一下J2EE的十三种技术规范. 一.JDBC: ...

  5. Content-Type一览

    文件扩展名 Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type) .*( 二进制流,不知道下载文件类型) application/octet-st ...

  6. ArcGIS Server 10.2 实战(四)格栅动态配色服务

    当你的地理处理服务输出的是格栅,那个不可避免地需要为格栅的各类型数据添加不同色彩进行区分,而默认时格栅的色彩是随机的,或者固定死一套着色方案是也显得不够人性化,难以满足多样的客户需求,下面谈谈如何解决 ...

  7. 【二分查找最优解】FZU 2056 最大正方形

    题意:现在有一个n*m的矩阵A,在A中找一个H*H的正方形,使得其面积最大且该正方形元素的和不大于 limit. 分析:开始以为是DP或者二维RMQ,其实用二分就可以做出来: 在输入时构造元素和矩阵d ...

  8. CygWin模拟Linux环境进行Ant批量打包

    运行环境:Windows7 + Cygwin + ant 第一种:有源码 这种方式比较 简单.利用ant打包.直接shell脚本修改 配置渠道号的文件.我们目前是用的umeng的.在AndroidMa ...

  9. 是时候全面使用html5标签了

    html5,这个词语,不管是业内还是业外,都已经耳熟能详了.因为已经火了这么长的的时间了.但是,真正开始使用的又有多少人呢?只能用呵呵来形容了! html5真的来了 2014年10月28日,历经八年, ...

  10. JMS - Message

    一条 JMS 消息包含三个部分:消息头.消息属性和消息体. 消息头 消息头提供了和消息有关的元数据,它描述了消息有谁创建.何时创建.数据的有效长度等信息.消息头还包含了描述消息目的地(主题或队列)的路 ...