1# @Time    : 2019-01-28
2# @Language: Markdown
3# @Software: VS Code
4# @Author  : Di Wang
5# @Email   : [email protected]

本博客资料来源:Elastic官网

Elasticsearch+Logstash+Kibana,合称ELK,Elasticsearch用来完成搜索,Logstash用于数据采集,Kibana用于数据可视化。 数据采集工作早期由Logstash完成,现在则使用Beats,Logstash更多用于数据汇聚处理。

Elastic Stack学习笔记

概述

Phronesis!!!

实践是最好的理解,先安装然后慢慢深入了解。

  • Elasticsearch
  • Kibana
  • Beats
  • Logstash (可选安装)

最新版本为7.5,可以在此查看不同版本对不同的系统的支持:版本以及系统支持

安装Java的过程省略,JVM的版本支持:可用Java版本

我使用CentOS 7以及openJDK 1.8 作为测试,测试过程所有软件都安装在一台服务器上。

关于不同Linux发行版本启动系统服务的命令,使用ps -p 1命令查看你的 SysV,如果是init,请使用

1sudo -i service elasticsearch start
2sudo -i service elasticsearch stop

如果是systemd,请使用

1sudo systemctl start elasticsearch.service
2sudo systemctl stop elasticsearch.service

Elasticsearch 安装

 1$ curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.2-x86_64.rpm
 2
 3$ sudo rpm -i elasticsearch-7.5.2-x86_64.rpm
 4warning: elasticsearch-7.5.2-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
 5Creating elasticsearch group... OK
 6Creating elasticsearch user... OK
 7### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 8 sudo systemctl daemon-reload
 9 sudo systemctl enable elasticsearch.service
10### You can start elasticsearch service by executing
11 sudo systemctl start elasticsearch.service
12Created elasticsearch keystore in /etc/elasticsearch
13
14$ sudo systemctl start elasticsearch

如果服务启动成功,在浏览器中输入http://localhost:9200/或者执行 curl http://127.0.0.1:9200,能看到如下Json返回值则表示成功。

 1{
 2  "name" : "wang.linac.kek.jp",
 3  "cluster_name" : "elasticsearch",
 4  "cluster_uuid" : "BSIeBQ36Trqdyj4ve6O3xQ",
 5  "version" : {
 6    "number" : "7.5.2",
 7    "build_flavor" : "default",
 8    "build_type" : "rpm",
 9    "build_hash" : "8bec50e1e0ad29dad5653712cf3bb580cd1afcdf",
10    "build_date" : "2020-01-15T12:11:52.313576Z",
11    "build_snapshot" : false,
12    "lucene_version" : "8.3.0",
13    "minimum_wire_compatibility_version" : "6.8.0",
14    "minimum_index_compatibility_version" : "6.0.0-beta1"
15  },
16  "tagline" : "You Know, for Search"
17}

安装Kibana

1$ curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.5.2-x86_64.rpm
2$ sudo rpm --install kibana-7.5.2-x86_64.rpm
3$ sudo service start elasticsearch

如需关闭,kill 其pid即可。

在浏览器中访问http://127.0.0.1:5601就能看到Kibana。

安装Beats

Beats可以直接传输数据到Elasticsearch或者通过Logstash。不同的Beats支持不同的数据,此处我们安装Metricbeat,使用其system module去收集系统级数据,如CPU使用量,内存,文件系统,磁盘IO,网络等。

Elastic Beasts捕获数据
Auditbeataudit data
Filebeatlog files
Functionbeatcloud data
Heartbeatavailability monitoring
Journalbeatsystemd journals
Metricbeatmetrics
Packetbeatnetwork traffic
Winlogbeatwindows event logs

下载安装

1$ curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.5.2-x86_64.rpm
2$ sudo rpm -vi metricbeat-7.5.2-x86_64.rpm

启动system module之前请确保Elasticsearch和Kibana处于运行状态。执行命令

1$ sudo metricbeat modules enable system
2Module system is already enabled
3$ sudo metricbeat setup -e
4...省略一大堆
52020-01-28T13:05:32.204+0900    INFO    instance/beat.go:780    Kibana dashboards successfully loaded.
6Loaded dashboards
7$ sudo systemctl start metricbeat

然后打开浏览器,进入 http://localhost:5601/app/kibana#/dashboard/Metricbeat-system-overview-ecs 或者点击左侧的dashboard,找到system overview,点击Host Overview就能看到系统数据的图表显示了。

安装Logstash

1curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.5.2.rpm
2sudo rpm -i logstash-7.5.2.rpm

配置Logstash监听beats或者直接读取日志,并添加filter,之后输出到Elasticsearch。