文章目录

  • ELK部署搭建
    • 1.ELK简述
    • 2.ELK功能介绍
    • 3.ELK组件官方下载
    • 4.ELK部署安装
      • 1)elk组件下载
      • 2)es部署安装
      • 3)kibana部署安装
      • 4)Logstash部署安装

ELK部署搭建

1.ELK简述

ELK概述:

ELK是三个开源软件的缩写简称 ,分别为:Elasticsearch , Logstash, Kibana , 它们都是开源软件;
ELK作为一个日志收集和检索系统,ELK 平台可以用于实现日志收集、日志搜索和日志分析;
elk集群还可以包含FileBeat组件,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具

ELK相关组件详解:

  • Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
  • Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
  • Filebeat隶属于Beats。目前Beats包含四种工具:
    Packetbeat(搜集网络流量数据)
    Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
    Filebeat(搜集文件数据)
    Winlogbeat(搜集 Windows 事件日志数据

ELK 的使用流程为
系统种的服务及应用产生的数据,logstash 从应用收集数据,将数据放入 es,使用 kibana 进行数据展示以及分析。

2.ELK功能介绍

ELK是一套完整的集中式日志分析方案,需要包含以下几个主要特点:

收集-能够采集多种来源的日志数据
传输-能够稳定的把日志数据传输到中央系统
存储-如何存储日志数据
分析-可以支持 UI 分析
警告-能够提供错误报告,监控机制

ELK提供了一整套解决方案,并且全部是开源软件,组件之间互相配合使用,完美衔接,高效的满足了很多场合的应用,目前主流的一种日志系统方案

3.ELK组件官方下载

相关组件:
【Filebeat】
【Logstash】
【Elasticsearch】
【Kibana】

官方文档:
【中文社区 】

# 相关组件详细文档:
https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html
https://www.elastic.co/guide/en/beats/filebeat/5.6/index.html
https://www.elastic.co/guide/en/logstash/5.6/index.html
https://www.elastic.co/guide/en/kibana/5.5/index.html

ELK集群组件安装:

4.ELK部署安装

1)elk组件下载

#elk部署软件包,官方下载(当前为elk8.3.1版本)
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.3.1-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.3.1-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.3.1-linux-x86_64.tar.gz、#查看下载安装包
ll -h |grep 8.3
-rw-r--r--  1 root root 515M 6月  30 21:41 elasticsearch-8.3.1-linux-x86_64.tar.gz
-rw-r--r--  1 root root 258M 6月  30 21:50 kibana-8.3.1-linux-x86_64.tar.gz
-rw-r--r--  1 root root 326M 6月  30 21:53 logstash-8.3.1-linux-x86_64.tar.gz

2)es部署安装

#创建es安装工作目录
mkdir -p /usr/local/elk
ls -d /usr/local/elk
/usr/local/elk#把下载的安装包解压到指定的目录(解压到创建的es共组目录)
tar zxvf elasticsearch-8.3.1-linux-x86_64.tar.gz -C /usr/local/elk/#查看es服务文件
ls /usr/local/elk
elasticsearch-8.3.1
ls /usr/local/elk/elasticsearch-8.3.1/
bin  config  data  jdk  lib  LICENSE.txt  logs  modules  NOTICE.txt  plugins  README.asciidoc#es不能以root用户去启动,创建es管理用户
useradd es#es文件修改所属用户
chown -R es:es /usr/local/elk#切换用户,查看文件
su - es
ll -ld /usr/local/elk/
drwxr-xr-x 3 es es 33 7月   3 23:56 /usr/local/elk/#使用es用户,查看es文件所属用户及所属组
ll -h /usr/local/elk/elasticsearch-8.3.1/
总用量 880K
drwxr-xr-x  2 es es 4.0K 6月  30 02:46 bin
drwxr-xr-x  4 es es  253 7月   4 00:10 config
drwxrwxr-x  5 es es   87 7月   4 01:04 data
drwxr-xr-x  8 es es   96 6月  30 02:46 jdk
drwxr-xr-x  5 es es 4.0K 6月  30 02:46 lib
-rw-r--r--  1 es es 3.8K 6月  30 02:39 LICENSE.txt
drwxr-xr-x  2 es es 4.0K 7月   4 00:58 logs
drwxr-xr-x 66 es es 4.0K 6月  30 02:47 modules
-rw-r--r--  1 es es 855K 6月  30 02:43 NOTICE.txt
drwxr-xr-x  2 es es    6 6月  30 02:44 plugins
-rw-r--r--  1 es es 2.7K 6月  30 02:39 README.asciidoc#修改es启动配置文件(启用如下配置即可)
egrep "^[^#]" /usr/local/elk/elasticsearch-8.3.1/config/elasticsearch.yml
cluster.name: my-es
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]#启动es服务
/usr/local/elk/elasticsearch-8.3.1/bin/elasticsearch

安装es时,未对系统配置文件做优化调整,会出现以下错误:
ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
bootstrap check failure [1] of [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
具体问题解析如下所示:

#问题一:主要是文件权限配置的问题
es用户拥有的可创建文件描述的权限太低,至少需要如错误问题所述的65536
问题解决:
使用root用户,添加如下内容,配置最小文件权限
egrep "^[^#]" /etc/security/limits.conf
*       hard    nofile  65536
*       soft    nofile  65536
es      -       nproc   65536
#查看确认修改配置是否生效
ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3818
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 65536           #确认到配置已生效
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited#问题二:主要时虚拟内存大小的问题
max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
问题解决:
使用root用户,添加如下配置,配置虚拟内存大小
egrep "^[^#]" /etc/sysctl.conf
vm.max_map_count=262144
修改配置文件立即生效
sysctl -p
vm.max_map_count = 262144
或者
echo 262144 > /proc/sys/vm/max_map_count#重新启动es服务(启动后服务正常启动,使用web方式却时无法连接的)
/usr/local/elk/elasticsearch-8.3.1/bin/elasticsearch
.........
......
...
[2022-07-04T22:31:39,486][INFO ][o.e.i.g.DatabaseNodeService] [node-1] successfully loaded geoip database file [GeoLite2-Country.mmdb]
[2022-07-04T22:31:39,649][INFO ][o.e.i.g.DatabaseNodeService] [node-1] successfully loaded geoip database file [GeoLite2-ASN.mmdb]
[2022-07-04T22:31:40,826][INFO ][o.e.i.g.DatabaseNodeService] [node-1] successfully loaded geoip database file [GeoLite2-City.mmdb]#测试es服务(出现如下状态,需更改es的web认证方式)
curl 127.0.0.1:9200
curl: (52) Empty reply from server

问题发现:
[node-1] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/127.0.0.1:9200, remoteAddress=/127.0.0.1:56878}
出现如上问题,需要修改es生成的基本配置文件

#问题原因:是因为ES8默认开启了ssl认证,修改es的yml配置文即可
xpack.security.enabled: false
egrep "^[^#]" /usr/local/elk/elasticsearch-8.3.1/config/elasticsearch.yml
cluster.name: my-es
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: false
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:enabled: truekeystore.path: certs/http.p12
xpack.security.transport.ssl:enabled: trueverification_mode: certificatekeystore.path: certs/transport.p12truststore.path: certs/transport.p12#修改es配置后,重新测试,如下状态出现elasticsearch的版本信息,同时,我们还可以使用浏览器访问,至此,我们的elasticsearch就安装并启动完成了
curl 127.0.0.1:9200
{"name" : "node-1","cluster_name" : "my-es","cluster_uuid" : "TH4isYRERIe-qd7JBCO3Og","version" : {"number" : "8.3.1","build_type" : "tar","build_hash" : "b9a6b2867996ba92ceac66cb5bafc6db25e7910e","build_date" : "2022-06-29T18:39:55.731992798Z","build_snapshot" : false,"lucene_version" : "9.2.0","minimum_wire_compatibility_version" : "7.17.0","minimum_index_compatibility_version" : "7.0.0"},"tagline" : "You Know, for Search"
}#web浏览器测试
http://192.168.1.10:9200/

3)kibana部署安装

#kibana服务文件指定解压到之前的工作目录即可
tar zxvf kibana-8.3.1-linux-x86_64.tar.gz -C /usr/local/elk/#查看kibana服务文件
ls /usr/local/elk/kibana-8.3.1/
bin  config  data  LICENSE.txt  logs  node  node_modules  NOTICE.txt  package.json  plugins  README.txt  src  x-pack#修改kibana配置文件(默认无配置,启用以下配置即可)
egrep "^[^#]" /usr/local/elk/kibana-8.3.1/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]#创建用户(默认不要使用root用户直接启动)
useradd kibana#kibana服务文件授权
chown kibana:kibana -R /usr/local/elk/kibana-8.3.1/
ll -h /usr/local/elk/kibana-8.3.1/
总用量 1.2M
drwxr-xr-x   2 kibana kibana  146 6月  29 20:33 bin
drwxr-xr-x   2 kibana kibana   44 7月   4 23:13 config
drwxr-xr-x   2 kibana kibana    6 6月  29 20:33 data
-rw-r--r--   1 kibana kibana 3.8K 6月  29 20:33 LICENSE.txt
drwxr-xr-x   2 kibana kibana    6 6月  29 20:33 logs
drwxr-xr-x   6 kibana kibana  108 6月  29 20:33 node
drwxr-xr-x 677 kibana kibana  20K 6月  29 20:33 node_modules
-rw-r--r--   1 kibana kibana 1.1M 6月  29 20:33 NOTICE.txt
-rw-r--r--   1 kibana kibana  738 6月  29 20:33 package.json
drwxr-xr-x   2 kibana kibana    6 6月  29 20:33 plugins
-rw-r--r--   1 kibana kibana 3.9K 6月  29 20:33 README.txt
drwxr-xr-x  11 kibana kibana  177 6月  29 20:33 src
drwxr-xr-x   3 kibana kibana   79 6月  29 20:33 x-pack#使用kibana用户启动kibana服务
/usr/local/elk/kibana-8.3.1/bin/kibana#web浏览器访问kibana
http://192.168.1.10:5601/app/home#/

进入kibana后,如下所示:

4)Logstash部署安装

#logstash服务文件解压到工作目录
tar zxvf logstash-8.3.1-linux-x86_64.tar.gz -C /usr/local/elk/#查看文件
ls /usr/local/elk/logstash-8.3.1/
bin     CONTRIBUTORS  Gemfile       jdk          lib          logstash-core             modules     tools   x-pack
config  data          Gemfile.lock  JDK_VERSION  LICENSE.txt  logstash-core-plugin-api  NOTICE.TXT  vendor#创建logstash工作用户
useradd logstash#配置文件所属用户及所属组权限
chown logstash:logstash -R /usr/local/elk/logstash-8.3.1/
ll -h  /usr/local/elk/logstash-8.3.1/
总用量 576K
drwxr-xr-x 2 logstash logstash 4.0K 7月   4 23:49 bin
drwxr-xr-x 2 logstash logstash  142 7月   5 00:08 config
-rw-r--r-- 1 logstash logstash 2.3K 6月  30 02:41 CONTRIBUTORS
drwxr-xr-x 2 logstash logstash    6 6月  30 02:41 data
-rw-r--r-- 1 logstash logstash 4.0K 6月  30 02:41 Gemfile
-rw-r--r-- 1 logstash logstash  29K 6月  30 02:41 Gemfile.lock
drwxr-xr-x 9 logstash logstash  121 7月   4 23:49 jdk
-rw-r--r-- 1 logstash logstash   18 6月  30 02:41 JDK_VERSION
drwxr-xr-x 6 logstash logstash   84 7月   4 23:49 lib
-rw-r--r-- 1 logstash logstash  14K 6月  30 02:41 LICENSE.txt
drwxr-xr-x 4 logstash logstash   90 7月   4 23:49 logstash-core
drwxr-xr-x 3 logstash logstash   86 7月   4 23:49 logstash-core-plugin-api
drwxr-xr-x 4 logstash logstash   55 7月   4 23:49 modules
-rw-r--r-- 1 logstash logstash 509K 6月  30 02:41 NOTICE.TXT
drwxr-xr-x 3 logstash logstash   30 7月   4 23:49 tools
drwxr-xr-x 4 logstash logstash   33 7月   4 23:49 vendor
drwxr-xr-x 9 logstash logstash  193 7月   4 23:49 x-pack#配置logstash数据和日志存储路径
#创建用于存储logstash数据目录
mkdir -p /data/logstash/data
#修改目录权限
chown -R logstash:logstash /data/logstash/data
#创建日志目录
mkdir -p /data/logstash/log
#修改目录权限
chown -R logstash:logstash /data/logstash/log#修改logstash配置文件
#设置data存储目录
path.data: /data/logstash/data
#设置配置文件目录
path.config: /usr/local/elk/logstash-8.3.1/config/
#设置日志存储目录
path.logs: /data/logstash/logegrep "^[^#]" /usr/local/elk/logstash-8.3.1/config/logstash.yml
path.data:  /logstash/data
path.config:    /usr/local/elk/logstash-8.3.1/config/
path.logs:  /data/logstash/log#使用logstash用户启动logstash服务
/usr/local/elk/logstash-8.3.1/bin/logstash

@ELK集群环境部署搭建相关推荐

  1. 现学现用大数据分布式集群环境部署

    导读:        随着大数据时代的到来,传统的GIS分析工具越来越难以满足对超大体量空间数据的分析需求.SuperMap iServer 9D(本文简称iServer)实现了地理信息服务的分布式集 ...

  2. Hadoop集群环境配置搭建

    一.简单介绍 Hadoop最早诞生于Cutting于1998年左右开发的一个全文文本搜索引擎 Lucene,这个搜索引擎在2001年成为Apache基金会的一个子项目,也是 ElasticSearch ...

  3. kafka 基础知识梳理及集群环境部署记录

    一.kafka基础介绍 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特 ...

  4. APACHE-TOMCAT集群环境部署

    APACHE-TOMCAT集群环境部署 -----------------–Shanks ---------------------------------------- 本集群不涉及session同 ...

  5. centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解

    centos6.5环境下Zookeeper-3.4.6集群环境部署 [系统]Centos 6.5 集群部署 [软件]准备好jdk环境,此次我们的环境是open_jdk1.8.0_101 zookeep ...

  6. SUSE11 Oracle11gR2 RACASM双机集群环境部署

    Oracle RAC集群环境部署 一. 安装前准备 (1) Linux系统版本 SUSE Linux Enterprise Server 11 (x86_64) (2) Oracle database ...

  7. 科普扫盲---centos7 集群环境的搭建指南

    一般集群所需要的到底是什么环境?,需要明白的一件事,集群是由一个个单例服务通过各个单例服务之间的socket通信,从而规避一些性能瓶颈,达到1+1大于2的效果. 常见的集群有:weblogic集群,r ...

  8. docker-Consul的概述及consul集群环境的搭建

    目录 一.概述 Consul的作用 二.搭建consul集群环境 1.安装Consul 2.配置容器服务自动加入nginx集群 (1)安装Gliderlabs/Registrator (2)测试服务 ...

  9. Pinpoint 集群环境部署

    前期准备 节点准备 本次节点列表如下: Ip Hostname 角色 192.168.2.131 pinpointNode1 hbase master节点:NameNode:pinpoint coll ...

最新文章

  1. SAP QM 权限控制可以到Inspection Type上
  2. 基于SSM实现餐饮管理系统
  3. sdut-1153 C语言实验——求两个整数之中较大者
  4. Spring Boot-Spring Tool Suit + Gradle 构建第一个Spring Boot 项目02
  5. 数据结构一:链表(循环链表)
  6. f2812的c语言与标准c语言,关于F2812中用C语言来实现中断的说明
  7. ACL 2020 | 基于多级排序学习的层次化实体标注
  8. LeetCode 罗马数字与阿拉伯数字的转换
  9. android 4.4 OpenGL实现库的加载规则
  10. dart系列之:在dart中使用生成器
  11. 牛客小白月赛12 D 月月给华华出题 (欧拉函数,数论,线筛)
  12. MassTransit中RequestResponse基本使用
  13. sstv解码_SSTV通联活动:ISS国际空间站2020年1月30日和1月31日
  14. mocano editor中使用代码比对功能
  15. ArcGIS按属性选择多个地类
  16. 从App直接打开小程序
  17. 3 Layer and 3 Tier
  18. 可用c语言编程的科学计算器,一个用C语言实现的科学计算器
  19. 2019年安徽省模块七满分多少_2019年安徽中考总分是多少 考试科目及分值
  20. win10系统安装器使用教程

热门文章

  1. mac环境下搭建frida环境并连接网易mumu模拟器
  2. 郑州财经学院第54次全国计算机,听爷爷讲故事
  3. 如何在QII中直接调用ModelSim
  4. 什么是云渲染?为什么要用电脑渲图?
  5. 比较线程子进程 占用的内存情况
  6. Alpine中文字体
  7. 光追(光线追踪)和 DLSS是什么?
  8. linux d开头是什么文件夹,linux文件权限,p开头/d开头/l开头
  9. Verilog学习之求两个数的差值设计
  10. Linux:UID和EUID