史上最全从零搭建ELKB(Elasticsearch、Logstash、Kibana、Beat)分布式日志管理可视化平台之一

文章目录

    • ELKB简介
    • ELKB架构
    • ELKB安装
      • 准备工作
      • 下载安装包
      • 解压至/usr/local/elk
      • 设置访问用户
    • ELKB配置及启动
      • Elasticsearch
        • 配置
        • 启动
      • Kibana
        • 配置
        • 启动
    • 报错
    • 参考资料

ELKB简介

ELKB(Elasticsearch、Logstash、Kibana、Beat的组合)是一套开源的分布式日志管理方案。凭借其闭环的日志处理流程、高效的检索性能、线性的扩展能力、较低的运维成本等特点,ELKB在最近几年迅速崛起,成为实时日志处理开源领域的首要选择。(https://cloud.tencent.com/developer/article/1143430)
详细资料可参考官网https://www.elastic.co/cn/start,本文不再赘述。

ELKB架构

史上最全从零搭建ELKB(Elasticsearch、Logstash、Kibana、Beat)分布式日志管理可视化平台之一_第1张图片

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
史上最全从零搭建ELKB(Elasticsearch、Logstash、Kibana、Beat)分布式日志管理可视化平台之一_第2张图片

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

Beats是ELK 协议栈的新成员,一个轻量级开源数据搜集器架构,基于 Logstash-Forwarder 源代码开发,是对它的替代。beats 就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch 进行集中式存储和分析。

ELKB安装

准备工作

Linux机器安装好JAVA 1.8,Node.js

下载安装包

# 安装ELKB7.6.2
cd /opt/soft
# 下载es
wget https://mirrors.huaweicloud.com/elasticsearch/7.6.2/elasticsearch-7.6.2-linux-x86_64.tar.gz
# 下载logstash
wget https://mirrors.huaweicloud.com/logstash/7.6.2/logstash-7.6.2.tar.gz
# 下载kibana
wget https://mirrors.huaweicloud.com/kibana/7.6.2/kibana-7.6.2-linux-x86_64.tar.gz
# 下载filebeat
wget https://mirrors.huaweicloud.com/filebeat/7.6.2/filebeat-7.6.2-linux-x86_64.tar.gz

解压至/usr/local/elk

mkdir -p /usr/local/elk/
cd /opt/soft
# 解压es
tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz -C /usr/local/elk/
# 解压logstash
tar -zxvf logstash-7.6.2.tar.gz -C /usr/local/elk/
# 解压kibana
tar -zxvf kibana-7.6.2-linux-x86_64.tar.gz -C /usr/local/elk/
# 解压filebeat
tar zxvf filebeat-7.6.2-linux-x86_64.tar.gz -C /usr/local/elk/

设置访问用户

由于不能使用root用户运行,在root登录状态下新建elk用户

groupadd elk
useradd elk -g elk
passwd elkb
cd /usr/local/elk/
chown -R elk:elk elasticsearch-7.6.2
chown -R elk:elk kibana-7.6.2-linux-x86_64
chown -R elk:elk logstash-7.6.2
# 这里filebeat没有变更用户,不太需要

ELKB配置及启动

安装完成后就可以先启动Elasticsearch

Elasticsearch

现在elasticsearch-7.6.2下建立data文件夹并修改权限,再进行相应配置就可以启动了,这里以单机为例,集群配置请自行查阅。

cd /usr/local/elk/elasticsearch-7.6.2
mkdir data
chown -R elk:elk data

配置

cd config
vim elasticsearch.yml

修改elasticsearch.yml为下面内容:

cluster.name: elasticsearch
node.name: es-node0
path.data: /usr/local/elk/elasticsearch-7.6.2/data
path.logs: /usr/local/elk/elasticsearch-7.6.2/logs
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["es-node0"]

修改jvm.options文件,其他配置不变,查看-Xms和-Xmx配置,这里默认是1g,我修改为2g。(之前调整过128m,马上会把ES内存撑爆…)

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms2g
-Xmx2g
...

启动

这里注意切换到elk用户才可以启动

su - elk
cd /usr/local/elk/elasticsearch-7.6.2/
./bin/elasticsearch

第一次启动可能会报错

vi /etc/security/limits.conf
# 添加如下设置
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
 
# centos 7 为  20-nproc.conf  centos 6 为 90-nproc.conf
vi /etc/security/limits.d/20-nproc.conf
#修改为
* soft nproc 4096
 
vi /etc/sysctl.conf
# 添加下面配置:
vm.max_map_count=655360
 
# 让内核参数生效
sysctl -p

重新启动即可。

./bin/elasticsearch

查看Elasticsearch健康状态,再新建一个终端窗口运行

curl http://localhost:9200/_cluster/health?pretty

我的status是yellow,因为测试时里面有很多空索引。详细信息可参考ElasticSearch 索引查询使用指南——详细版。
史上最全从零搭建ELKB(Elasticsearch、Logstash、Kibana、Beat)分布式日志管理可视化平台之一_第3张图片
在这里插入图片描述

其他elasticsearch-head插件用法等可自行查阅,不是本文重点。
时间久了,日志文件过多占用空间,需要清理,命令如下:

清理2018年4月12号的日志

curl -XDELETE ‘http://192.168.10.8:9200/nginx-log-2018.04.12’

清理2018年4月的日志

curl -XDELETE ‘http://192.168.10.8:9200/nginx-log-2018.04.*’

清除所有索引日志

curl -XDELETE ‘http://192.168.10.8:9200/*’

如果清理了所有的索引日志,kibana里面没有了索引,无法查看日志,重启logstash服务即可自动生成当天的日志索引。

Kibana

配置

配置config下的kibana.yml

# kibana.yml
server.port: 5601
server.host: "192.168.x.x"
elasticsearch.hosts: ["http://192.168.x.x:9200"]
kibana.index: ".kibana"

启动

启动前提是启动了Elasticsearch
前台终端启动(用于测试)

 ./bin/kibana

这个启动要点时间,需要等一分钟。启动后浏览器访问:
http://192.168.50.109:5601
后续配置了logstash就可以查看日志了。
史上最全从零搭建ELKB(Elasticsearch、Logstash、Kibana、Beat)分布式日志管理可视化平台之一_第4张图片
后台启动

nohup ./bin/kibana &

点击Console,这里有个工具推荐Grok Debugger,可以用来调试Grok Pattern,用于后续Logstash解析日志。

报错

Error: [no_shard_available_action_exception] No shard available for [get [.kibana][_doc][config:7.6.

elasticsearch 报错 NoShardAvailableActionException: No shard available for routing [null]]
https://blog.csdn.net/zhangzc12409/article/details/114292727

参考资料

ELKB 7.X 日志系统搭建
Kibana(一张图片胜过千万行日志)
ES系列十八、FileBeat发送日志到logstash、ES、多个output过滤配置
Logstash常用配置和日志解析
Filebeat+Logstash+ElasticSearch+Kibana搭建Apache访问日志解析平台
filebeat收集日志传输到Redis集群,logstash从Redis集群中拉取数据
使用filebeat收集不同用应用的日志传输到redis,并加以区分
elkb+redis建立日志收集分析系统
Nginx module
Filebeat7.6.1安装使用总结
elk+filebeat的安装并分析nginx日志
Filebeat——grok字段(解析自定义的nginx日志)
ELK7.4+filebeat+Redis分析nginx服务访问日志
日志分析平台ELKB建设的3个演进架构
一篇文章搞懂filebeat(ELK)
ELK架构
Logstash使用grok过滤nginx日志(二)
Grok解析 centos 的 nginx 原生格式日志

你可能感兴趣的:(大数据环境,大数据,可视化,elasticsearch,分布式,搜索引擎,elk,es)