文档 · 2020年5月29日 1

ELK日志系统部署

简介:

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

安装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.yml

配置文件太多了只列出了修改项,且保证正常使用的前提,其他配项请参考官方文档: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

Kibana.yml

只列出修改的部分:没有的手动添加至尾部即可。参数的意思配置文件中有英文解释。是在不行就百度翻译吧

路径:/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.yml

最基础的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}

###看到类似上面输出说明启动正常了,可以进行下一步。

Filebeat.yml

基本配置,收集系统日志。
路径:/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 查看日志,就是左边导航条时钟下面那个标志。点击下面的展开就显示名称了。

信息
到这里就安装完成啦,我把我用的包以及配置文件上传了,有需要的可以直接下载。

打赏
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!
 
ELK日志系统部署