0%

开源日志分析平台ELK

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用户
1
useradd 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用户
1
useradd 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.启动
1
bin/kibana
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>"
3.Enable and configure the nginx module
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

查看日志