ELK stack实战之结合rsyslog分析系统日志(auth.log)
来源:互联网 发布:python宝典 pdf 编辑:程序博客网 时间:2024/05/22 03:21
转载请注明出处: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 stuffcron.* /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.loglocal7.* /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 startsudo service rsyslog stopSudo 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 receptionmodule(load="imudp")input(type="imudp" port="5514")# provides TCP syslog receptionmodule(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
- ELK stack实战之结合rsyslog分析系统日志(auth.log)
- ELK实战-Logstash:收集rsyslog日志
- ELK实战二:日志收集利器rsyslog
- Search-guard在ELK Stack日志分析系统中的应用
- elk 日志分析系统
- ELK 日志分析系统
- ELK 日志分析系统
- ELK日志分析系统
- ELK 日志分析系统
- ELK 日志分析系统
- ELK 日志分析系统
- ELK日志分析系统
- ELK 日志分析系统
- ELK 日志分析系统
- ELK 日志分析系统
- ELK日志分析系统
- ELK 日志分析系统
- ELK 日志分析系统
- -Dmaven.multiModuleProjectDirectory system property is not set
- [Leetcode] Remove Element
- c# 利用 splitcontainer 和treeview 在MDI上面显示窗体 (进阶)
- spring中各种经典的注解
- 缓存字段和方法ID
- ELK stack实战之结合rsyslog分析系统日志(auth.log)
- 外星人的密码数字
- 利用MAVEN打包可运行jar包,包括依赖的第三方包
- ggplot2 分面多数据源组合示例
- NodeJs 安装静态的文件服务
- 【Python专题】 使用pycharm+pyqt5 控件事件触发
- 可扩展的web单页应用程序架构
- Andriod Studio基础界面设计
- Apache日志解读,Apache日志每列代表什么?