ELK 系统搭建笔记

本贴最后更新于 1911 天前,其中的信息可能已经渤澥桑田

在微服务架构下,服务的数量以及服务集群等,日志散落在各个服务器里,这样不管是运维还是查找问题,都是一件非常困难的事情,这时候日志的统一管理就显得非常重要,ELK 就是为了解决日志管理的问题,ELK 被称为日志分析系统,是三款开源软件的简称,分别是 Elasticsearch+Logstash+Kibana,本篇文章还会用到一个叫 FileBeat 的软件,用来负责收集日志的,下面是 ELK 的部署图:
imagepng

简单介绍一下各个软件的功能:
Elasticsearch:是基于 Lucene 的开源全文搜索引擎,在这里充当日志存储的角色
Logstash:日志搜集、过滤的软件,在这里接收 FileBeat 传过来的日志,充当过滤日志角色
Kibana:是一个开源的分析和可视化平台,从 Elasticsearch 里把日志查询展现出来。
FileBeat:负责日志收集,传输到 Logstash 进行过滤处理后,再录入到 Elasticsearch。

Logstash 就具备日志收集功能,为何还需要 FileBeat 呢?因为 FileBeat 相比 Logstash 更加轻量级和易部署,对系统资源开销更小,Filebeat 适合部署在收集的最前端,Logstash 相比 Filebeat 功能更强,可以在 Filebeat 收集之后,由 Logstash 进一步做日志的解析,所以这里就是使用 FileBeat 来进行收集日志,然后交给 Logstash 来进行过滤分析等。
下面开始安装,环境是 Centos7,ELK 版本都是 6.4.2,JDK1.8。

下载:
JDK8:https://www.oracle.com/technetwork/java/javase/downloads/index.html
Elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz
下载 Logstash:https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.zip
下载 Filebeat:https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-linux-x86_64.tar.gz
下载 Kibana:https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-linux-x86_64.tar.gz

以上软件下载统一放到/usr/local/elk 目录,分别解压所有软件,目录如下:
imagepng

配置 JDK 环境变量:

vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

安装 Elasticsearch

由于 Elasticsearch 不能用 root 用户启动,所以创建一个叫 es 的用户,命令如下:
adduser es

修改密码:
passwd es
回车后输入 es 的密码。

更改目录权限:
sudo chmod 777 -R /usr/local/elk

更改文件:

vi /etc/security/limits.conf

* hard nofile 65536
* soft nofile 65536

vi /etc/sysctl.conf

vm.max_map_count=655360

更新完上面两个文件后执行:
sysctl -p

修改 Elasticsearch 的配置文件:

vi elasticsearch-6.4.2/config/elasticsearch.yml

network.host: 10.211.55.9
http.port: 9200

切换到 es 用户,cd 到 Elasticsearch 的 bin 目录下,启动 Elasticsearch:
./elasticsearch -d

在浏览器访问:http://ip:9200/
出现 Elasticsearch 相关信息就说明 Elasticsearch 已经正确启动了。

安装 Kibana

编辑 kibana 配置文件:

vi kibana-6.4.2/config/kibana.yml

server.port: 5601
server.host: "10.211.55.9"
elasticsearch.url: "http://10.211.55.9:9200"

上面是配置 kibana 的端口为 5601,host 是 10.211.55.9,以及连接 Elasticsearch 的信息。
启动 kibana:
kibana-6.4.2/bin/kibana &

访问:http://10.211.55.9:5601
出现 kibana 的界面说明 kibana 已经成功启动。

安装 Logstash

在 logstash-6.4.2/config 目录下,把 logstash-sample.conf 重命名为 logstash.conf,然后更改里面的内容:

vi logstash-6.4.2/config/logstash.conf

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://10.211.55.9:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" 
  }
}

port=>5044:这个是 Logstash 监听的端口,filebeat 到时发送的日志就是发送到 Logstash 的 5044 端口
host:意思是 Logstash 把日志发送到这个 host 的 Elasticsearch 上。
index:发送到 Elasticsearch 的时候创建的 index 命名规则
user 和 password:Elasticsearch 有设置相关的用户名密码,这里不用,注释掉。

启动 Logstash:
./logstash -f ../config/logstash.conf &

安装 FileBeat

FileBeat 是安装到需要收集日志的服务器上,收集当前服务器的日志发给 Logstash。
更改配置文件:

vi filebeat-6.4.2/filebeat.yml

- type: log
   enabled: true
   paths:
    - /usr/local/log/*.log
   multiline.pattern: ^\d{4}
   multiline.negate: true
   multiline.match: after
   scan_frequency: 60

output.logstash:
   hosts: ["10.211.55.9:5044"]

paths:

  • usr/local/log/*.log#收集该目录下的以.log 后缀结尾的文件

hosts:这个就是 Logstash 的 host 和端口。

启动 FileBeat:
filebeat-6.4.2/filebeat -e -c filebeat.yml &

访问 Kibana:http://10.211.55.9:5601
imagepng

在 FileBeat 能扫描到日志后,可以在 Kibana 里可以看到日志传输到 Elasticsearch 里了。

整个 ELK 的搭建步骤已完成。






扫一扫有惊喜: [![imagepng](http://itechor.top/solo/upload/bb791a58c3a84193b7f643b6849482c5_image.png) ](http://ym0214.com)

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...