在我们的项目中有日志是一个必不可少的东西,但是日志的检索是一个很麻烦的事情,如每天一个日志,要找到问题就得一个一个找,并不能做到检索功能,这还算好的,如果是分布式的,每个机器都得找一遍,这种效率太低,当然可以把日志收集到一个文件中,多个机器每天的日志可以收集到一块,如果把所有的日志收集一块显然不现实;所以出现了很多的日志检索方式,这篇介绍的是Elastic Stack(ELK)。
1、ELK Stack:ELK是三个开源软件的缩写,分别为:Elasticsearch 、 Logstash以及Kibana ,它们都是开源软件,ELK是5.0版本前的统称;这是一套统一的日志收集分析系统。
2、Elastic Stack:是ELK5.0之后加入了Beats 套件后的新称呼。
3、fielbeat是一个轻量级日志收集工具,类似于Linux系统中tail -f监控文件变化的功能;其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。
4、Logstash是一款开源的日志收集处理框架,负责数据的采集和格式化;Logstash处理数据主要分为三个阶段,inputs、filters、outputs,其中各个阶段,官方提供了丰富的插件,可以对数据进行处理。
5、Elasticsearch是一个开源的分布式搜索引擎,用于数据的快速索引存储。
6、Kibana负责提供web展示功能;可以帮助汇总、分析和搜索重要数据日志。
7、Beats包含六种工具:
Packetbeat: 网络数据(收集网络流量数据)
Metricbeat: 指标 (收集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
Filebeat: 日志文件(收集文件数据)
Winlogbeat: windows事件日志(收集 Windows 事件日志数据)
Auditbeat:审计数据 (收集审计日志)
Heartbeat:运行时间监控 (收集系统运行时的数据)
beat采集–>Elasticsearch–>Kibana
beat采集–>Logstash–>Elasticsearch–>Kibana
ELK要求必须java1.8以上环境,所以先具备java1.8环境;4个服务最好使用相同版本;官网最新为7.2.0,下载Linux包;本人准备把Logstash、Elasticsearch、Kibana、放在一台机器;FileBeat放在服务所在机器。
1、新建好elk用户,然后解压Elasticsearch的压缩包
tar -vxf elasticsearch-7.2.0.tar.gz
2、配置,打开/config/elasticsearch.yml
#ip
network.host: ***.***.*.**
#端口
http.port: 9200
#主要用于集群配置,可以先放开,不打开会报错,后边具体说;ES名称,多台服务器配置名称不可相同
node.name: node-1
cluster.initial_master_nodes: ["node-1"]
3、启动,进入到/bin/ ./elasticsearch -d或者./elasticsearch &
4、访问http://ip:9200,有数据则成功
5、报错:
#修改下面的文件 里面是一些内核参数
vi /etc/sysctl.conf
#添加以下配置
vm.max_map_count=655360
保存然后
sysctl -p
#-p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
vi /etc/security/limits.conf
#添加如下信息
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
vi /etc/security/limits.d/90-nproc.conf
#添加如下信息
* soft nproc 2048
elasticsearch.yml文件
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
elasticsearch.yml文件
node.name: node-1 前面的#打开
cluster.initial_master_nodes: ["node-1"]
1、解压包
tar -vxf kibana-7.2.0.tar.gz
2、进入/config,修改kibana.yml
#端口
server.port: 5601
#ip
server.host: "198.218.*.**"
#elasticsearch的服务,可以配置多个
elasticsearch.hosts: ["http://198.218.6.12:9200"]
#日志输出
logging.dest: /home/elk/kibana/kibanalog/kibana.log
3、启动,进入到/bin目录,./kibana &
4、访问http://ip:5601,如果连接elasticsearch出错,会在页面报连接elasticsearch集群无法连接
5、设置kibana;Managementc菜单,进入Advanced Settings目录,修改Date format更改时间显示格式为yyyy-MM-dd HH:mm:ss:SSS,避免数据导入后显示的时间字段数据和ES存储数据不相同;进入Monitoring菜单添加监控服务,监控运行健康状态。
1、解压包
tar –xvf logstash-7.2.0.tar.gz
2、配置;进入/config,修改logstash.yml
#ip
http.host: "198.218.*.*"
#端口,默认9600
http.port: 9600-9700
修改logstash-sample.conf
input {
#监测beats通过5044传输的数据
beats {
port => 5044
}
}
output {
elasticsearch {
#es的服务
hosts => ["http://198.218.*.*:9200"]
#主键
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
3、启动,进入/bin,./logstash -f /home/elk/logstash/logstash-7.2.0/config/logstash-sample.conf &
日志输出到logs目录的logstash-plain.log文件
4、访问,http://ip:9600;出现数据则成功
1、解压包
tar -vxf filebeat-7.2.0.tar.gz
2、配置;进入/config,修改filebeat.yml
filebeat.inputs:
#输入格式为log
- type: log
#此处一定设置true,否则日志采集不生效
enabled: true
#日志路径
paths:
- /home/erp/erp-interface-logs/*.log
#输出到logstash
output.logstash:
hosts: ["198.218.*.*:5044"]
3、启动,进入/bin, ./filebeat -c filebeat.yml & 查看是否启动成功,查看进程或者查看日志即可
安装:https://blog.csdn.net/xb_workspace/article/details/85165070
https://blog.csdn.net/weixin_43972701/article/details/85161983
错误:https://blog.csdn.net/Dooonald/article/details/87931435
相关:https://mp.weixin.qq.com/s/YyFrqKp9VmKA-_247UVKKw