Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。
概览
https://www.elastic.co/cn/elastic-stack
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
部署文档:https://www.elastic.co/cn/start
部署
一、安装Elasticsearch
1.创建es用户
2.下载安装包
1 2 3 4
| https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-linux-x86_64.tar.gz
#由于访问国外网站速度受限,已经软件包上传到oss中供大家下载。 https://geeksre.oss-cn-beijing.aliyuncs.com/download/elasticsearch-7.10.1-linux-x86_64.tar.gz
|
3.初始化环境
1 2 3 4 5 6 7 8
| # 使用root用户创建/data/ 目录 mkdir /data/ # 授权 chown es:es /data/
su - es
tar zxf elasticsearch-7.10.1-linux-x86_64.tar.gz -C /data/
|
4.目录介绍
- bin:可执行文件在里面,运行es的命令就在这个里面,包含了一些脚本文件等
- config:配置文件目录
- jdk:java环境
- lib:依赖的jar,类库
- logs:日志文件
- modules:es相关的模块
- plugins:可以自己开发的插件
- data:索引目录
5.修改es配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| vim config/elasticsearch.yml
# 1、网络配置 # 默认情况下,Elasticsearch 仅仅绑定回环地址,比如127.0.0.1 和[::1] 。这足以在服务器上运行单个开发节点。 # 为了与其他服务器上的节点进行通信并形成集群,你的节点将需要绑定到非环回地址。 # 一旦配置了network.host之类的网络设置,Elasticsearch就会假定您正在转向生产并将上述警告升级为异常。 这些异常将阻止您的Elasticsearch节点启动。 这是一项重要的安全措施,可确保您不会因服务器配置错误而丢失数据。 network.host: 0.0.0.0
# 2、discovery配置 # 在开始生产之前,应该配置两个重要的discovery 和cluster 设置,以便群集中的节点可以相互发现并选择主节点。 discovery.seed_hosts: ["172.21.4.91"]
vim config/jvm.options # 修改JVM参数
-Xms8g -Xmx8g
|
6.修改系统参数
1 2 3 4 5 6 7
| # max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
# 使用root账户 sysctl -w vm.max_map_count=655360
# 验证 sysctl -a|grep vm.max_map_count
|
7.启动es
1 2 3 4
| bin/elasticsearch
#后台运行启动方式 bin/elasticsearch -d
|
8.验证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| # 检查端口 netstat -ntlpa |grep 9200
tcp6 0 0 :::9200 :::* LISTEN 15026/java tcp6 0 0 172.21.4.91:9200 43.247.177.226:62904 ESTABLISHED 15026/java tcp6 0 0 172.21.4.91:9200 43.247.177.226:62903 ESTABLISHED 15026/java
#浏览器或curl访问 curl 127.0.0.1:9200
{ "name" : "iZ2ze2u8hiajmbxrnpsvuyZ", "cluster_name" : "elasticsearch", "cluster_uuid" : "OQp7CeEfQKyvTYHyExci6w", "version" : { "number" : "7.10.1", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa", "build_date" : "2020-12-05T01:00:33.671820Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
|
二、安装kibana
1.创建kibana用户
2.下载安装包
1 2 3 4
| https://artifacts.elastic.co/downloads/kibana/kibana-7.10.1-linux-x86_64.tar.gz
#由于访问国外网站速度受限,已经软件包上传到oss中供大家下载。 https://geeksre.oss-cn-beijing.aliyuncs.com/download/kibana-7.10.1-linux-x86_64.tar.gz
|
3.初始化环境
1 2 3 4 5 6 7 8
| # 使用root用户创建/data/ 目录 mkdir /data/ # 授权 chown kibana:kibana /data/
su - kibana
tar zxf kibana-7.10.1-linux-x86_64.tar.gz -C /data/
|
4.修改配置
1 2 3 4
| vim config/kibana.yml
server.host: "0.0.0.0" elasticsearch.hosts: ["http://172.21.4.91:9200"]
|
5.启动
6.访问
三、安装Filebeat
1.Download and install Filebeat
First time using Filebeat? See the Quick Start.
1 2 3 4 5
| curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.1-x86_64.rpm sudo rpm -vi filebeat-7.10.1-x86_64.rpm
#由于访问国外网站速度受限,已经软件包上传到oss中供大家下载。 https://geeksre.oss-cn-beijing.aliyuncs.com/download/filebeat-7.10.1-x86_64.rpm
|
2.Edit the configuration
Modify /etc/filebeat/filebeat.yml
to set the connection information:
1 2 3 4 5 6
| output.elasticsearch: hosts: ["<es_url>"] username: "elastic" password: "<password>" setup.kibana: host: "<kibana_url>"
|
1
| sudo filebeat modules enable nginx
|
Modify the settings in the /etc/filebeat/modules.d/nginx.yml
file.
4.Start Filebeat
The setup
command loads the Kibana dashboards. If the dashboards are already set up, omit this command.
1 2
| sudo filebeat setup sudo service filebeat start
|
5.Module status
Check that data is received from the Filebeat nginx
module
查看日志