一、介绍
Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力。它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。
顾名思义,Logstash 收集数据对象就是日志文件。由于日志文件来源多(如:系统日志、服务器 日志等),且内容杂乱,不便于人类进行观察。因此,我们可以使用 Logstash 对日志文件进行收集和统一过滤,变成可读性高的内容,方便开发者或运维人员观察,从而有效的分析系统/项目运行的性能,做好监控和预警的准备工作等。
Logstash 也不是唯一的日志传输工具(log shipper)
从数据源获取数据:文件、UNIX socket、TCP、UDP 等等
处理:添加时间戳、解析非结构化数据、根据 IP 添加地理位置信息
传输:到目标存储。比如,Elasticsearch 。由于 Elasticsearch 可能会宕机,或正存在性能 问题,或网络存在问题,那么传输工具最好就需要有能力提供缓冲以及重试。
logstash-6.6.0部署安装
# 因为上一篇文章我已经下载过了,这里我们直接解压就好了
tar xf logstash-6.6.0.tar.gz
./bin/logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug }}' #标准输入和输出
然后输入个hello啥的随你,下面就显示了
标准输出
上面的方法是直接输出到终端显示
测试输出到文件(当然,后面的路径你可以自己定)
./bin/logstash -e 'input { stdin{} } output { file { path => "/tmp/log-%{+YYYY.MM.dd}messages.gz"}}'
然后另起一个shell窗口去查看这个文件
查看文件日志
最后一种就是输出到elasticsearch
# 这里的ip是你自己的,不要无脑复制粘贴,还有后面的索引(index),mytest这个名你可以自己定,并记住
./bin/logstash -e 'input { stdin{} } output { elasticsearch {hosts => ["你的ip:9200"] index => "mytest-%{+YYYY.MM.dd}" }}'
启动之后直接在下面输入字就行,随便乱打,然后按回车。再去页面里看
(图内ip不符是因为有些图是盗的,有些是我自己截的)
elasticsearch
此时我们在另一个shell内查看elasticsearch服务器验证收到数据
ls /data/ELK/elasticsearch/data/nodes/0/indices/ -l
drwxrwxr-x 8 elsearch elsearch 65 3月 27 15:44 Z3cyISqlT9SHuIsTjjCiDQ
这里是传输标准输入的日志,之后再搭配自己项目的日志。
tar xf kibana-6.6.0-linux-x86_64.tar.gz
cd kibana-6.6.0-linux-x86_64
vim config/kibana.yml
# 编辑的跟下面一样就好,改完还要把"#"去掉
server.port: 5601
server.host: "你的ip"
elasticsearch.hosts: ["http://你的ip:9200"]
# 编辑完毕后,敲下面这行,看看是否显示的跟上面的一样
grep -vE "^$|^#" kibana.yml
# 启动
./bin/kibana &
访问 ip:5601
添加数据
填写索引
选择索引类型
查看数据
基本查找
基本样子就是这样了,下一篇写收集项目日志
这里提一个点,直接后面带&启动,退出shell窗口会停掉程序,所以可以用nohub启动或者是screen启动,个人推荐screen。
网友评论