简介:
ELK是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash和Kibana。
Logstash:负责数据的处理和储存,也可以当做日志收集器来使用,但是占用资源较高所以不建议直接使用logstash收集,本次安装使用filebeat进行日志收集,并发送给logstash进行处理。
Elasticsearch:负责数据的检索和分析
Kibana:负责可视化
Filebeat: 负责采集日志,并发送给logstash或者elasticsearch。轻量化的收集工具,方便部署在被收集日志的终端上。
环境介绍:
1.系统版本:Centos7.4
2.配置:4C 8G 40G硬盘(可能小伙伴们用虚机装的配置达不到可以适当修改ELK内存参数进行启动。见下文)
3.软件版本:Elasticsearch-7.6.2,Logstash-7.6.2,Kibana-7.6.2,filebeat-7.6.2,JDK-1.8
注意:
本次部署为单节点部署
软件包下载:
ELK直接去官网下载就可以,可能页面加载会慢点,下载前期可能比较慢,后期会很快。以上安装包皆有rpm包,Ubuntu也有deb包,比较傻瓜式安装,简单高效就好。JAVA版本没有硬性要求,ELK尽量使用同一版本。避免不必要的麻烦。
链接:
2.JDK1.8下载
下载好软件包后开始安装:
下载好以上全部的软件包后放入服务器中,目录就随便了自己能找到就行了,我放在了elk目录下,java我已经安装完了。
[root@az2-cls-prd-logstash-01 elk]# ls elasticsearch-7.6.2-x86_64.rpm filebeat-7.6.2.rpm logstash-7.6.2.rpm Kibana-7.6.2.rpm [root@az2-cls-prd-logstash-01 elk]# pwd /elk
安装JDK
安装Elasticsearch
安装Logstash
安装Kibana
安装Filebeat
安装JDK
[root@az2-cls-prd-logstash-01 elk]# rpm -ivh jdk1.8.0_144-1.8.0_144-fcs.x86_64.rpm
[root@az2-cls-prd-logstash-01 elk]# java -version
java version “1.8.0_144”
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
[root@az2-cls-prd-logstash-01 elk]#
###看到以上结果java环境就配置好了。如果java -version 不能正常显示版本,请自行百度配置java环境,这里不多阐述。
安装Elasticsearch
[root@az2-cls-prd-logstash-01 elk]# rpm -ivh elasticsearch-7.6.2-x86_64.rpm
安装Logstash
[root@az2-cls-prd-logstash-01 elk]# rpm -ivh logstash-7.6.2-x86_64.rpm
安装Kibana
[root@az2-cls-prd-logstash-01 elk]# rpm -ivh kibana-7.6.2-x86_64.rpm
安装Filebeat
[root@az2-cls-prd-logstash-01 elk]# rpm -ivh filebeat-7.6.2-x86_64.rpm
修改配置文件:
配置文件太多了只列出了修改项,且保证正常使用的前提,其他配项请参考官方文档:Elasticsearch官方文档-中文
路径:/etc/logstash/elasticsearch.yml
cluster.name: elastic
node.name: node-10.15
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 192.168.10.15
http.port: 9200
discovery.seed_hosts: ["host1"]
cluster.initial_master_nodes: ["node-10.15"]
配置完成后启动Es
systemctl start elasticsearch
检查运行状态
systemctl status elasticsearch
只列出修改的部分:没有的手动添加至尾部即可。参数的意思配置文件中有英文解释。是在不行就百度翻译吧
路径:/etc/logstash/kibana.yml
server.port: 5601
server.host: “192.168.10.15”
#此处你本机的IP
server.name: “kb-10.15”
elasticsearch.hosts: [“192.168.10.15:9200”]
#此处是Elasticsearch的地址
elasticsearch.preserveHost: true
kibana.index: “.kibana”
elasticsearch.requestTimeout: 300000
logging.dest: stdout
i18n.locale: “zh-CN”
配置完成后启动Ka
systemctl start kibana
检查运行状态
systemctl status kibana
确认启动正常后可以通过访问IP:5601来确认Kibana 是否正常,大概就是下面这个样子,但是左边导航条比我的多,只要进来这个页面就没啥问题了
最基础的logstash配置:
路径:/etc/logstash/logstash.yml
path.data: /var/lib/logstash
http.host: “0.0.0.0”
#地址可以写你自己的本机IP
path.logs: /var/log/logstash
修改完成后进行日志处理的配置:
路径:/etc/logstash/conf.d/test.conf
#这个路径下存放的就是针对日志接收处理发送的配置了,本次只给出简单的例子。
原理:监听9600端口进行日志收集。根据判断字段内容将日志发送给Elasticsearch,并自动创建索引名字为
input { tcp { port => 9600 type => syslog codec => json } }
filter {
}
output {
if “message-10-15” in [tags]{
elasticsearch {
hosts => [“192.168.10.15:9200”]
index => “message-10-15-%{+yyyy.MM.dd}”
}
}
}
配置完成后启动logstash:
systemctl start logstash
检查运行状态:此处可以多执行几遍因为不会马上显示运行的最终结果。或者可以去日志查看,日志路径/var/log/logstash/logstash-plain.log
systemctl status logstash
运行正常时不会有ERROR提示,切输出为
[2020-05-28T15:13:45,756][INFO ][logstash.javapipeline ] Pipeline started {“pipeline.id”=>”main”}
[2020-05-28T15:13:45,774][INFO ][logstash.inputs.tcp ] Starting tcp input listener {:address=>”0.0.0.0:9600″, :ssl_enable=>”false”}
[2020-05-28T15:13:46,306][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2020-05-28T15:13:46,896][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9601}
###看到类似上面输出说明启动正常了,可以进行下一步。
基本配置,收集系统日志。 路径:/etc/filebeat/filebeat.yml
filebeat.inputs:
– type: log
enabled: true
paths:
– /var/log/messages #此处配置日志路径
tags: [“message-10-15”] #给日志打个标签,方便后期分类
#include_lines: [‘^*ERROR’, ‘^*WARN’]
#exclude_lines: [‘^*200’]
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: true
setup.ilm.enabled: false
setup.template.enabled: false
setup.template.name: “message”
setup.template.pattern: “message-*”
setup.template.settings:
index.number_of_shards: 1
index.number_of_replicas: 0
index.codec: best_compression
setup.kibana:
output.logstash:
hosts: [“192.168.10.15:9600”]
processors:
– add_host_metadata: ~
– add_cloud_metadata: ~
– add_docker_metadata: ~
– add_kubernetes_metadata: ~
配置完成后启动filebeat
systemctl start filebeat
检查状态:
systemctl status filebeat
登录Kibana创建索引:
1.点击小齿轮⚙标志:选择索引管理,检查一下是否成功创建了索引:如图 2.成功添加索引后创建索引模式:如图 索引模式名字就写:你新增的索引模式名称就行,支持正则匹配:例如message-*然后下一步即可。 3.选择时间线:默认是 @timestamp 4.创建索引模式结束: 5.点击discover 查看日志,就是左边导航条时钟下面那个标志。点击下面的展开就显示名称了。
信息
到这里就安装完成啦,我把我用的包以及配置文件上传了,有需要的可以直接下载。
占座