简介:

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尽量使用同一版本。避免不必要的麻烦。

链接:

1.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

修改配置文件:

配置文件太多了只列出了修改项,且保证正常使用的前提,其他配项请参考官方文档: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 查看日志,就是左边导航条时钟下面那个标志。点击下面的展开就显示名称了。

打赏
相关文件下载地址
该资源需登录后下载,去登录?
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!
分类: 文档

0 条评论

发表评论