ELK stack实战之结合rsyslog分析系统日志(auth.log)

简介: 打开微信扫一扫,关注微信公众号【数据与算法联盟】 转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.

这里写图片描述
打开微信扫一扫,关注微信公众号【数据与算法联盟】

转载请注明出处: http://blog.csdn.net/gamer_gyt
博主微博: http://weibo.com/234654758
Github: https://github.com/thinkgamer


写在前边的话


在之前的文章中我么谈到了ELK stack的部署和简单的小demo,然后我们又看了elk stack结合filebeat做了一个分析,具体可参考下面的链接:
linux 部署ELK 日志分析系统与简单测试
ELK stack实战之Filebeat的架构分析、配置解释与示例

本篇文章我们主要谈一下linux操作系统的rsyslog(syslog),然后结合elk stack做一个分析autho.log(linux自己生成的日志)的demo

syslog与rsyslog


syslog

    首先需要说明的是syslog是一种协议,广泛用于系统日志,syslog系统日志消息可以记录在本地,也可以发送到接受syslog日志的服务器统一进行存储和处理,也可以解析其中的内容做相应的处理。

    常见的应用场景是网络管理工具、安全管理系统、日志审计系统。
    对于老版本的unix操作系统,默认使用syslog,但是在新版本都已经被rsyslog所替代
    老版本的Linux缺省使用Syslog,其配置大致如下所示:

shell> cat /etc/syslog.conf

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
# kern.* /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages

# The authpriv file has restricted access.
authpriv.* /var/log/secure

# Log all the mail messages in one place.
mail.* -/var/log/maillog

# Log cron stuff
cron.* /var/log/cron

# Everybody gets emergency messages
*.emerg *

# 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

    完整的syslog日志中包含产生日志的程序模块(Facility)、严重性(Severity或 Level)、时间、主机名或IP、进程名、进程ID和正文。在Unix类操作系统上,能够按Facility和Severity的组合来决定什么样的日志消息是否需要记录,记录到什么地方,是否需要发送到一个接收syslog的服务器等。由于syslog简单而灵活的特性,syslog不再仅限于 Unix类主机的日志记录,任何需要记录和发送日志的场景,都可能会使用syslog。

    这里涉及两个概念:Facility和Severity,中文的意思大致是类型和级别。重点说明两条配置的含义:首先,所有Severity大于等于info的信息都会被保存到「/var/log/messages」中,但是Facility为mail、authpriv、cron的消息例外;其次,所有Facility为mail的消息都会保存到「/var/log/maillog」中,日志文件前面的减号表示的意思是异步写文件。

rsyslog

上边也说了,对于现在的很多发行版都默认采用了rsyslog,rsyslog是syslog的升级版,这里我们看些Facility和Serverity
rsyslog通过Facility概念来定义日志消息的来源,以方便对日志进行分类 ,facility有以下几种

        kern                     内核消息
        user                     用户级消息
        mail                     邮件系统消息
        datemon                  系统服务消息
        auth                     认证系统消息
        syslog                   日志系统本身消息
        lpr                      打印系统消息
        authpriv                 权限系统消息
        corn                     定时任务消息
        news                     新闻系统消息
        uucp                     uucp系统消息
        ftp                      ftp系统消息

除了日志来源以外,对于同一来源产生的日志消息,还进行了优先级的划分,优先级分为以下几种

        Emergency                系统已经不能使用
        Alert                    必须立即进行处理
        Critical                 严重错误
        Error                    错误
        Warning                  警告
        Notice                   正常信息,但是较为重要
        Informational            正常信息
        Debug                    debug信息

案例:rsyslog+ELK分析auth.log


启动/停止/查看rsyslog的状态

在配置rsyslog的机器上执行即可

sudo service rsyslog start
sudo service rsyslog stop
Sudo service rsyslog status

使用系统的logger命令测试rsyslog是否工作

在配置rsyslog的机器上执行即可

Logger hello world

查看/var/log/message

[master@localhost log]$ sudo tail -n 1 messages
Sep 29 23:37:00 localhost master: hello word

测试rsyslog的性能

使用官方提供的 tcpflood
https://github.com/rsyslog/rsyslog/blob/master/tests/tcpflood.c

rsyslog+elk做日志收集

1、服务器两台

192.168.197.129    配置elk            OS:redhat
192.168.197.131    rsyslog客户端  OS:Centos7

2、ELK客户端配置
即129这个服务器
rsyslog.conf

input {
  tcp{
    port => 5514
    type => syslog
  }
  udp{
    port => 5514
    type => syslog
  }
}
output {
  stdout {
    codec=> rubydebug
  }
  elasticsearch {
    hosts => ["192.168.197.129:9200"]
  }
}

启动ELK服务

rsyslog客户端配置

即131这个服务器

sudo vim /etc/rsyslog.conf

找到下边的一段,去掉注释:

# provides UDP syslog reception
# module(load="imudp")
# input(type="imudp" port="5514")

# provides TCP syslog reception
# module(load="imtcp")
# input(type="imtcp" port="5514")

如下:

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="5514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="5514")

最后添加一行(elk所在机器的ip和监听的端口)

*.*  @192.168.197.129:5514

重启rsyslog服务

sudo service rsyslog restart

测试

在rsyslog所在客户端执行

logger -p info “hello, remote rsyslog”

部署ELK的服务器终端查看Elasticsearch的输出

这里写图片描述

kibana的web展示界面可以看到

这里写图片描述

当然我们也可以执行一些其他的命令

ssh localhost

输入正确的密码,在终端可以监测到:

这里写图片描述

ssh localhost 输入错误的密码:

这里写图片描述

根据这种情况我们就可以针对登录日志做出相应的分析

这里的logstash中的rsyslog.conf文件也可以这样写

input {
   syslog{
    port => 5514
    type => syslog
  }
}
output {
  stdout {
    codec=> rubydebug
  }
  elasticsearch {
    hosts => ["192.168.197.129:9200"]
  }
}

这个时候在rsyslog的服务器中执行

logger -p info “hello, remote rsyslog”

这里写图片描述


END

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
10月前
|
存储 运维 监控
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
|
5月前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
219 0
|
10月前
|
SQL 监控 数据挖掘
SLS 重磅升级:超大规模数据实现完全精确分析
SLS 全新推出的「SQL 完全精确」模式,通过“限”与“换”的策略切换,在快速分析与精确计算之间实现平衡,满足用户对于超大数据规模分析结果精确的刚性需求。标志着其在超大规模日志数据分析领域再次迈出了重要的一步。
692 117
|
7月前
|
运维 安全 数据可视化
日志审查安排工具实战攻略:中小团队如何通过日志审查安排工具建立可控、安全的审查机制?
在审计敏感时代,日志审查安排工具成为安全运维与合规管理的关键利器。它实现审查任务的流程化、周期化与可视化,支持多系统协作、责任到人,确保“可控、可查、可追”的日志治理。工具如板栗看板、Asana、Monday 等提供任务调度、问题闭环与合规对接能力,助力企业构建高效、透明的日志审查体系,提升安全与合规水平。
|
7月前
|
监控 安全 NoSQL
【DevOps】Logstash详解:高效日志管理与分析工具
Logstash是ELK Stack核心组件之一,具备强大的日志收集、处理与转发能力。它支持多种数据来源,提供灵活的过滤、转换机制,并可通过插件扩展功能,广泛应用于系统日志分析、性能优化及安全合规等领域,是现代日志管理的关键工具。
1101 0
|
9月前
|
自然语言处理 监控 安全
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里云可观测官方发布了Observable MCP Server,提供了一系列访问阿里云可观测各产品的工具能力,包含阿里云日志服务SLS、阿里云应用实时监控服务ARMS等,支持用户通过自然语言形式查询
1313 0
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
|
8月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。
|
Go 数据处理 Docker
elk stack部署自动化日志收集分析平台
elk stack部署自动化日志收集分析平台
435 0
|
存储 消息中间件 运维
Kubernetes中部署ELK Stack日志收集平台(上)
Kubernetes中部署ELK Stack日志收集平台
Kubernetes中部署ELK Stack日志收集平台(上)
|
Kubernetes 数据可视化 API
Kubernetes中部署ELK Stack日志收集平台(下)
Kubernetes中部署ELK Stack日志收集平台
Kubernetes中部署ELK Stack日志收集平台(下)