Logstah安装及使用
阴差阳错踏入安全领域, 从一只小菜鸟挣扎着前进, 从一概不知搭建起一套完整的日志系统,走过很多弯路,有过迷茫和彷徨,学习到新东西,完成一个小任务又很有成就感呐,恩,继续学习,记录,干~
Logstash介绍
Logtash,顾名思义就是管道,作为一个开源的数据引擎,可以动态的接收不同的数据源,并且能够标准化的实现你所选择的目的地,以及你想要的数据格式。
输入:采集各种类型和样式的数据
过滤:实时解析和转换数据
输出:随意选择存储方式 ,当然最佳是elasticsearch
安装Logstash
最便捷的安装方式是直接解压压缩包,但是考虑到后续的升级操作,使用RPM包进行安装会更具扩展性。安装步骤如下:
官网下载链接:https://www.elastic.co/downloads/past-releases
选择版本
下一步选择安装包类型
将下载的包放入到系统目录下,执行安装操作
1.解压zip包进行安装
unzip logstash-6.5.4.zip
cd logstash-6.5.4
2.RPM包安装
第一步: rpm -ivh logstash-6.5.4.rpm
使用RPM包安装后会自动在/etc目录下创建一个logstash文件,该文件下是相关的配置信息;
第二步:修改配置信息;
第三步:启动服务;
systemctl start logstash.service
如果您使用的是默认路径的配置文件,修改完配置文件,使用该命令即可直接启动;
用logstash解析日志
在logstash安装目录下新建一个文件logstash.conf, 用来配置管道信息,此处以接收syslog为例进行描述,然后解析这些日志,并将这些日志写到一个Elasticsearch集群中。
通常说的logstash管理有三个部分(input,filter,output)这里的input下面syslog{port => “8514”}的意思是使用该主机的8514端口对插件进行监听,而stdout{codec => rubydebug}的意思是输出到控制台,output有很多插件可供选择,一般首选elasticsearch,可根据实际情况进行配置,此处elasticsearch下面的host和index就是elasticsearch对应的主机和日输出的索引。
用Grok过滤器插件解析日志
logstash拥有丰富的filter插件,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的 logstash 事件到后续的流程中去!Grok 是 Logstash 最重要的插件之一。也是迄今为止使蹩脚的、无结构的日志结构化和可查询的最好方式。Grok在解析 syslog logs、apache and other webserver logs、mysql logs等任意格式的文件上表现完美。
用GeoIP过滤器插件解析IP地址的地理坐标
当然这样配置是解析不出IP地址的,我的理解是一个filter grok插件只能解析一条数据,当使用一个filter解析数据的时候,应该再配一个filter来破译IP地址坐标, 配置如下(亲测可用):
第一个filter配置信息是根据正则截取到source-ip信息,第二个根据source-ip信息破译出该地址的地理位置坐标,此处启动服务后我们查看控制台输出的信息,能够看到响应的地理位置信息:
索引你的数据到Elasticsearch
在这段配置中,logstash用http协议连接到elasticsearch,此处是指定远程的elasticsearch实例,启动服务后,我们查看elasticsearch的索引,数据已经存储进去。
命令行启动logstash
用如下命令启动logstash服务:
bin/logstash -f logstash-waf.conf
-f 意为加载指定的logstash配置文件,但此处启动的服务没有以守护进程运行,日志会直接打印在控制台;
正常的logstash服务应该以守护进程在后台启动,命令如下:
nohup bin/logstash -f logstash-waf.conf>>/data/logstash.out --config.reload.automatic &
nohup 后台启动
–config.reload.automatic 监视配置文件的改变,并且当配置文件被修改以后自动重新加载配置文件。
构思了很久才开始写CSDN博客, 自知排版很不好看, 各位小主勿嫌弃, 后续慢慢改进~