ELK
日志收集、存储、可视化一套组件
1、批量分析 2、数据集关联 3、生成图标进行显示 4、报警
ElasticSearch
易于部署,
竖直和水平可进行伸缩
API易于使用,
多与大多数编程/脚本语言都可以模块化
好的在线文档
免费
logstash
类似flume,收集日志
Kibana
可视化(类似R语言)
FileBeat
类似于flume 的apooldir组件
ELK的关系
---->LEK
logstash(collection)-->Elasticsearch(storage+index+search) ------>kinbana
flume -->kafka ------>R语言
这篇文章概念讲的挺好
https://www.cnblogs.com/kevingrace/p/5919021.html
https://www.elastic.co/cn/products/
最新版本7.1.0,下载直接用。。。
1、先装elasticSearch
这个是ELK中的核心,启动的时候注意es不可以进行root账户启动,所以需要开启一个elsearch账户。
groupadd elsearch #新建elsearch组
useradd elsearch -g elsearch -p elasticsearch #新建一个elsearch用户
chown -R elsearch:elsearch ./elasticsearch #指定elasticsearch所属elsearch组
但是启动的时候报错
所以需要给目录赋权限
chown -R 用户名:用户名 文件(目录)名
然后启动在日志中看到开启了9200,9300端口。
./elasticsearch -d (后台运行)
从外面的浏览器访问,访问不了,这个时候这样配置,进入到下面的目录,然后编辑
elasticsearch.yml文件
node.name: node-1 前面的#打开
#network.host: 192.168.0.1
network.host: 192.168.136.110
#network.host: 0.0.0.0
#network.host: localhost
#network.host: 127.0.0.1 这里把network.host 设置为自己的ip地址 网上有设置成0.0.0.0的应该也可以自己设置一下试试
cluster.initial_master_nodes: ["node-1"] 这里一定要这样设置,我就是这里没有这样设置出问题的,弄了好久
在最后加上这两句,浏览器就可以访问了
http.cors.enabled: true
http.cors.allow-origin: "*"
2、再配置logstash
解压完之后,我们到config目录中新建一个logstash.conf配置。
主要是input ,filter,output三大块, 其中input是吸取logs文件下的所有log后缀的日志文件,filter是一个过滤函数,这里不用配置,output配置了导入到hosts为127.0.0.1:9200的elasticsearch中,每天一个索引。
input {
file {
type => "log"
path => "/logs/*.log"
start_position => "beginning"
}
}
output {
stdout {
codec => rubydebug { }
}
elasticsearch {
hosts => "127.0.0.1"
index => "log-%{+YYYY.MM.dd}"
}
}
配置完了之后,我们就可以到bin目录下启动logstash了,配置文件设置为conf/logstash.conf,从下图中可以看到,当前开启的是9600端口。
3、kibana
它的配置也非常简单,你需要在config下kibana.yml文件中指定一下你需要读取的elasticSearch地址和可供外网访问的bind地址就可以了。
vim kibana.yml(注意:冒号后面有一个空格,否则报 can not read a block mapping entry; a multiline key may not be an implicit key at line 5, column 1:)
elasticsearch.url: "http://localhost:9200"(好像是不让用url了,要是报错的话试试elasticsearch.hosts: ["http://localhost:9200"])
server.host: localhost
然后启动从日志中可以看到5601端口
http://192.168.15.107:5601/ 你就可以打开kibana页面了 ,END!