elk(elasticsearch+logstash+kibana)搭建日志监控平台

这篇具有很好参考价值的文章主要介绍了elk(elasticsearch+logstash+kibana)搭建日志监控平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

elk架构原理

安装部署elasticsearch

什么是elasticsearch

创建elasticserch docker容器

 安装部署kibana

什么是Kinana

创建Kibana docker容器

        拉取镜像

        创建配置文件:D:\Programs\docker\kibana\kibana.yml

         创建并运行kibana容器

        验证登录kibana

安装部署logstash

什么是logstash

创建logstash docker容器

创建dockerfile

        创建并运行logstash容器

通过kibana检索日志

​编辑 创建data view

 检索日志

 问题记录


elk架构原理

elk日志监控平台,elk,elasticsearch,大数据,全文检索

        从上图可以看出,ELK Stack 的基本思路是,Logstash 将监听应用程序日志,将其转换为 JSON 格式并发送到 Elasticsearch。然后将其转换成 Elasticsearch 索引的格式,并存储到 Elasticsearch 中。最后使用 KibanaElasticsearch 中的数据进行可视化,以便用户进行数据分析和监控。

安装部署elasticsearch

什么是elasticsearch

        Elasticsearch 是一个开源的分布式搜索和分析引擎,建立在 Apache Lucene 基础之上。它提供了一个高性能、可伸缩且具有强大搜索和分析能力的搜索引擎。

        Elasticsearch 设计用于处理大规模数据集,并能够快速地搜索、分析和存储结构化和非结构化数据。它支持实时数据索引和搜索,以及高级搜索功能,包括全文搜索、地理位置搜索、过滤、聚合等。

创建elasticserch docker容器

        拉取镜像

docker pull elasticsearch:8.10.4

elk日志监控平台,elk,elasticsearch,大数据,全文检索

        修改elasticsearch.yml文件   

        这里我们使用 D:\programs\docker\elasticsearch\elasticsearch.yml 作为映射文件

cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.port: 9200 # 端口号

# bootstrap.memory_lock: false

#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically
# generated to configure Elasticsearch security features on 04-11-2023 14:41:19
#
# --------------------------------------------------------------------------------

# Enable security features
# 开启登陆验证
# xpack.serurity.enbaled : true 必须加上否则启动报错
xpack.security.enabled: true

xpack.security.enrollment.enabled: true

# 允许跨域请求
http.cors.enabled: true
http.cors.allow-origin: "*"

# RaDKza2uS2kQiI3weSun
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
# xpack.security.http.ssl: 
  # enabled: true
    # keystore.path: certs/http.p12

    #Enable encryption and mutual authentication between cluster nodes
    # xpack.security.transport.ssl: 
      # enabled: true
        # verification_mode: certificate
          # keystore.path: certs/transport.p12
            # truststore.path: certs/transport.p12
# ----------------------- END SECURITY AUTO CONFIGURATION -------------------------

   创建并启动容器

# 单节点运行
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"  -e JVM_OPTS="-Xms512m -Xmx1g" -v D:\programs\docker\elasticsearch\elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name els elasticsearch:8.10.4 

     这条命令是用于在 Docker 中运行 Elasticsearch 容器的命令。让我们逐个解析命令的各个部分:

    1. `docker run`: 这是 Docker 命令,用于在容器中运行一个镜像。

    2. `-d`: 这是一个选项,表示以“后台模式”运行容器,即分离模式。

    3. `-p 9200:9200 -p 9300:9300`: 这是一个选项,用于指定容器和主机之间的端口映射。这里规定将容器内的 Elasticsearch 服务的 9200 端口映射到主机的 9200 端口,并将 9300 端口映射到主机的 9300 端口。

    4. `-e "discovery.type=single-node"`: 这是一个选项,用于设置容器的环境变量。这里设置了 Elasticsearch 的 `discovery.type` 参数为 `single-node`,表示以单节点模式运行 Elasticsearch。

    5. `-e JVM_OPTS="-Xms512m -Xmx1g"`: 这是一个选项,用于设置容器的环境变量。这里设置了容器的 JVM 内存选项,`-Xms512m` 指定分配的最小堆内存为 512MB,`-Xmx1g` 指定分配的最大堆内存为 1GB。

    6. `-v D:\programs\docker\elasticsearch\elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml`: 这是一个选项,用于进行主机和容器之间的目录挂载。这里将主机上的 `elasticsearch.yml` 配置文件挂载到容器内的 Elasticsearch 配置目录。

    7. `--name els`: 这是一个选项,用于指定容器的名称为 "els"。

    8. `elasticsearch:8.10.4`: 这是指定要运行的 Docker 镜像,此处为 Elasticsearch 版本为 8.10.4 的镜像。

        通过这个命令,你可以在 Docker 中运行一个 Elasticsearch 容器,并配置一些参数、环境变量和挂载目录。

        重置elasticsearch  密码

         自动重置:密码自动生成

# 在容器中执行
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

         手动重置,需要自己设置每个用户的密码

# 容器内执行
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

        这里采用的是自动重置方式: 

elk日志监控平台,elk,elasticsearch,大数据,全文检索

        访问elasticsearch面板

         elk日志监控平台,elk,elasticsearch,大数据,全文检索

        这里需要使用上图中设置的elasticsearch密码。出现下面界面说明elasticsearch部署成功:

elk日志监控平台,elk,elasticsearch,大数据,全文检索

 安装部署kibana

什么是Kinana

        Kibana 是一个免费的和开放源代码的数据可视化和分析平台,用于 Elasticsearch。它允许你在 Elasticsearch 上执行高级数据分析和可视化,并与 Elasticsearch 集成来检索、分析和可视化存储在 Elasticsearch 中的数据。

        Kibana 可以用于创建动态的、交互式的图表、仪表盘和报告,帮助开发人员、运维人员和商业分析师更好地理解其数据,并支持多种数据源的数据可视化和分析,包括日志、指标、可视化数据等。

创建Kibana docker容器

        拉取镜像

docker pull kibana:8.10.4

        创建配置文件:D:\Programs\docker\kibana\kibana.yml

#
## ** THIS IS AN AUTO-GENERATED FILE **
##
#
## Default Kibana configuration for docker target
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://192.168.1.13:9200" ]

elasticsearch.username: kibana
elasticsearch.password: IR7j8Z26RIVuWEFgbqip

        由于elastic 账号权限过高,kibana不允许使用elastic用户连接elasticsearch,这里使用kinana账号。密码是上面命令自动生成的。

         创建并运行kibana容器

         使用如下命令创建并运行容器:

docker run -d -p 5601:5601 -v D:\programs\docker\kibana\kibana.yml:/usr/share/kibana/config/kibana.yml --name kibana kibana:8.10.4

        验证登录kibana

elk日志监控平台,elk,elasticsearch,大数据,全文检索

        这里使用的用户是elastic,密码与登录 http://localhost:9200 的密码相同。至此kibana部署完成。

安装部署logstash

什么是logstash

        Logstash 是一个开源的服务器端数据处理工具,用于收集、处理、转换和传输各种类型的数据。它是弹性堆栈(Elastic Stack)的一部分,与 Elasticsearch、Kibana 和 Beats 一起构成了强大的日志和数据分析解决方案。

        Logstash 可以从多个来源(例如文件、网络、消息队列等)收集数据,并将其转换为统一的格式,然后将数据发送到不同的目标(例如 Elasticsearch、文件、数据库等)。它支持丰富的过滤功能,可以对数据进行处理、加工和增强,以满足特定的需求。在数据传输过程中,Logstash 还可以进行数据转换、编码、解码和压缩等操作。

        Logstash 提供了一个灵活且可扩展的插件架构,使用户可以根据自己的需求轻松地定制数据处理流程。它可以用于日志收集、事件处理、安全分析、业务智能和其他数据处理场景,让用户能够更好地理解和利用其数据,以支持各种用例和业务需求。

创建logstash docker容器

        下载logstash安装包,这里使用ubuntu 容器安装logstash,下载deb版本:Download Logstash Free | Get Started Now | Elastic

        创建目录:D:\Programs\docker\test 并把下载完成后的 logstash-8.10.4-amd64.deb 文件复制到D:\Programs\docker\test目录。同时在该目录中添加logstash.conf配置文件:

input {
  file {
    path => "/app/logs/**/*.log"
    start_position => "beginning"
     sincedb_path => "/dev/null"
    exclude => "*.gz"
  }
}

output {
  elasticsearch {
    hosts => ["192.168.1.13:9200"]
    index => "logs_index"
    user => elastic
    password => RaDKza2uS2kQiI3weSun
  }
}

        配置文件说明:

        input: 指定输入源,logstash会从输入源读取数据。

                file:输入源为文件。

                        path:文件路径,* 是通配符,用于匹配文件路径中的任意字符序列。

                        start_position: 设定为 "beginning",表示从文件的开头开始读取数据。

                        sincedb_path: 指定了 sincedb 文件的路径,但这里设置为 /dev/null,意味着不使用 sincedb 文件来跟踪已读取的文件位置。

                        exclude:排除以 .gz 结尾的文件。

        output:指定输出源,logstash会把数据处理成elasticsearch识别的数据发送给elasticsearch。

                hosts:elasticsearch 应用地址

                index:指定索引,会在elasticsearch中创建

                user:使用elastic 用户

                password:elastic用户密码。

创建dockerfile

from ubuntu

# 创建app目录
RUN mkdir /app/logs -p && mkdir /app/logstash -p

# 复制日志文件到容器
COPY ./logs.tar.gz /app/logs/logs.tar.gz

# 复制logstash的安装包到容器
COPY ./logstash-8.10.4-amd64.deb /app/logstash/logstash-8.10.4-amd64.deb

# 复制logstash.conf 到/app/logstash目录
COPY ./logstash.conf /app/logstash/logstash.conf

# 解压日志文件
RUN tar -xzvf /app/logs/logs.tar.gz -C /app/logs

# 安装logstash
RUN dpkg -i /app/logstash/logstash-8.10.4-amd64.deb

# 容器启动命令
CMD ["/usr/share/logstash/bin/logstash", "-f", "/app/logstash/logstash.conf"]

# 暴露端口9600
EXPOSE 9600

        在logstash的输入源使用的是从本地拷贝到容器的logs.tar.gz的日志文件,logstash的启动配置文件使用的是/app/logstash/logstash.conf。

创建logstash镜像

        在D:\Programs\docker\test 目录执行如下命令,构建本地镜像:

# 创建logstash镜像
docker build -t logstash  -f .\test.conf .

elk日志监控平台,elk,elasticsearch,大数据,全文检索

        创建并运行logstash容器

        使用如下命令创建logstash容器:

docker run -d -p 9600:9600 -v D:\programs\docker\test\logstash.conf:/app/logstash/logstash.conf --name logstash logstash

        使用docker logs logstash  命令查看logstash  运行日志,如果没有报错,则启动成功。

通过kibana检索日志

        登录kibana控制台,以此从菜单Management -> Data -> Index Management,可以查看logstash配置文件中配置的索引名:logs_index

 创建data view

通过 主菜单 -> Discover -> Create data View 创建data view:

        第一步:

elk日志监控平台,elk,elasticsearch,大数据,全文检索

        第二步: 

elk日志监控平台,elk,elasticsearch,大数据,全文检索

        这一步中创建一个名为logs-data-view匹配logs_index*索引的data view。至此elk日志监控环境创建完成。

 检索日志

        在logstash discover面板中输入:Error,检索包含Error的日志输出:

elk日志监控平台,elk,elasticsearch,大数据,全文检索

 问题记录

        1、elasticsearch启动报错:Unable to retrieve version information from Elasticsearch nodes. security_exception

[2023-11-05T04:23:18.531+00:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. security_exception
        Root causes:
                security_exception: missing authentication credentials for REST request [/_nodes?filter_path=nodes.*.ver[2023-11-05T04:23:19.259+00:00][INFO ][plugins.screenshotting.chromium] Browser executable: /usr/share/kibana/node_modules/@kbn/screenshotting-plugin/chromium/headless_shell-linux_x64/headless_shell

        问题原因:没有设置elasticsearch 用户名密码。在elasticsearch.yml添加:

        xpack.security.enabled: true

        xpack.security.enrollment.enabled: true

2、kiban启动报错:

FATAL  Error: [config validation of [elasticsearch].username]: value of "elastic" is forbidden.

 Use a servError: [config validation of [elasticsearch].username]: value of "elastic" is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html
    at ensureValidConfiguration (/usr/share/kibana/node_modules/@kbn/core-config-server-internal/src/ensure_valid_configuration.js:23:11)
    at Server.preboot (/usr/share/kibana/node_modules/@kbn/core-root-server-internal/src/server.js:154:5)
    at Root.preboot (/usr/share/kibana/node_modules/@kbn/core-root-server-internal/src/root/index.js:47:14)
    at bootstrap (/usr/share/kibana/node_modules/@kbn/core-root-server-internal/src/bootstrap.js:97:9)
    at Command.<anonymous> (/usr/share/kibana/src/cli/serve/serve.js:179:5)

 FATAL  Error: [config validation of [elasticsearch].username]: value of "elastic" is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html

        问题原因:因为"elastic"账号是一个强大的账号,具有非常高的权限,不应该被用于日常操作。kibana.yml配置文件中的elasticsearch user换用kibana或kibana_system

3、kibana登录报错

[2023-11-05T04:50:45.496+00:00][ERROR][plugins.security.user-profile] Failed to activate user profile (retries left: 9): {"error":{"root_cause":[{"type":"version_conflict_engine_exception","reason":"[profile_u_gFwCjbbPdWG_Wgca78NWDZgy5m0yqpqwS2cqmwMPsEQ_0]: version conflict, required seqNo [0], primary term [1]. current document has seqNo [1] and primary term [1]","index_uuid":"CApQk0caTI2SjFj_jAkKLw","shard":"0","index":".security-profile-8"}],"type":"version_conflict_engine_exception","reason":"[profile_u_gFwCjbbPdWG_Wgca78NWDZgy5m0yqpqwS2cqmwMPsEQ_0]: version conflict, required seqNo [0], primary term [1]. current document has seqNo [1] and primary term [1]","index_uuid":"CApQk0caTI2SjFj_jAkKLw","shard":"0","index":".security-profile-8"},"status":409}.

        问题原因:需要使用elastic账号登陆kibana控制台而不是kibana账号。文章来源地址https://www.toymoban.com/news/detail-762481.html

到了这里,关于elk(elasticsearch+logstash+kibana)搭建日志监控平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • ELK【elasticsearch+logstash+kibana】企业级日志分析系统

    ELK【elasticsearch+logstash+kibana】企业级日志分析系统

    ELK平台是一套完整的日志集中处理解决方案,将 elasticsearch、logstash 和 kiabana 三个开源工具配合使用,完成更加强大的用户对日志的查询、排序、统计需求。 ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。 Elasticsearch 是用

    2024年02月08日
    浏览(9)
  • 史上最全从零搭建ELKB(Elasticsearch、Logstash、Kibana、Beat)分布式日志管理可视化平台之一

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

    ELKB(Elasticsearch、Logstash、Kibana、Beat的组合)是一套开源的分布式日志管理方案。凭借其闭环的日志处理流程、高效的检索性能、线性的扩展能力、较低的运维成本等特点,ELKB在最近几年迅速崛起,成为实时日志处理开源领域的首要选择。(https://cloud.tencent.com/developer/article/1143

    2024年01月19日
    浏览(31)
  • centos7 搭建ELK(elasticsearch、logstash、kibana)

    centos7 搭建ELK(elasticsearch、logstash、kibana)

    1、下载安装包 使用华为镜像站下载速度很快,华为镜像站: https://mirrors.huaweicloud.com/home ,下载时需要保证版本一致 2、安装elasticsearch 解压到当前目录 安装,将Elasticsearch移动到/opt目录之中 创建Elasticsearch用户 es 规定 root 用户不能启动 es,所以需要新建一个其他用户来启动

    2024年02月13日
    浏览(36)
  • ElasticSearch+Kibana+Logstash实现日志可视化运维监控

    ElasticSearch+Kibana+Logstash实现日志可视化运维监控

    1.目标 1.安装ElasticSearch 2.安装Kibana 3.安装Logstash采集/var/log/messages日志内容 4.图表化展示日志监控结果 2.版本 这三者的版本号要完全一样 ElasticSearch 6.1.1 Kibana 6.1.1 Logstash 6.1.1 Jdk1.8.0_181 3.安装ElasticSearch 安装包:https://cloud.189.cn/t/zuQz6v2YZRVb (访问码:6sbf) 下载网站:https://www.elast

    2024年02月10日
    浏览(10)
  • 【ELK企业级日志分析系统】部署Filebeat+Kafka+Logstash+Elasticsearch+Kibana集群详解(EFLFK)

    【ELK企业级日志分析系统】部署Filebeat+Kafka+Logstash+Elasticsearch+Kibana集群详解(EFLFK)

    参见安装与部署ELK详解 参见安装与部署EFLK详解 参见安装与部署Zookeeper集群详解 1.1.1 为什么需要消息队列(MQ) MQ(Message Queue)主要原因是由于 在高并发环境下,同步请求来不及处理,请求往往会发生阻塞 。比如大量的并发请求,访问数据库,导致行锁表锁,最后请求线程会

    2024年02月16日
    浏览(12)
  • Elasticsearch + Logstash + Kibana 日志分析系统搭建

    Elasticsearch、Logstash 和 Kibana 组成了一个开源的日志分析系统简称 ELK Stack。 Elasticsearch: 一个基于 Lucene 的搜索引擎,可以快速存储、检索和分析大量数据 Logstash: 一个日志收集和处理工具,可以将来自不同来源的数据收集到 Elasticsearch 中 Kibana: 一个数据可视化平台,可以实时地

    2024年02月08日
    浏览(9)
  • 最近在搭建ELK日志平台时,logstash报错JSON parse error

    直接进入正题,我在搭建elk日志,使用最简单的log4j2 socket json格式 输出到logstash. 但是logstash报错如下: [WARN ] 2023-08-30 10:15:17.766 [nioEventLoopGroup-2-2] jsonlines - JSON parse error, original data now in message field {:message=“incompatible json object type=java.lang.String , only hash map or arrays are supported”

    2024年02月10日
    浏览(12)
  • ELKF日志系统搭建部署教程:从零开始构建Elasticsearch + Logstash + Filebeat + Kibana

    ELKF日志系统搭建部署教程:从零开始构建Elasticsearch + Logstash + Filebeat + Kibana

    学习如何从头开始搭建和部署ELKF日志系统,利用Elasticsearch、Logstash、Filebeat和Kibana来实现高效的数据采集、处理和可视化展示。跟随本教程,轻松构建稳定的日志系统。

    2024年02月05日
    浏览(8)
  • 搭建Elasticsearch、Kibana和Logstash环境:构建强大的数据分析平台

    搭建Elasticsearch、Kibana和Logstash环境:构建强大的数据分析平台

    “限时免费赠送!人工智能测试开发资料大礼包,把握测试行业的新机遇\\\" 搭建 Elasticsearch、Kibana 和 Logstash(通常被称为 ELK Stack)环境是构建强大的数据分析平台的关键步骤。ELK Stack 提供了一套完整的解决方案,用于收集、存储、搜索、分析和可视化大量的日志数据。下面是

    2024年04月26日
    浏览(13)
  • ELK(ElasticSearch, Logstash, Kibana)

    ELK(ElasticSearch, Logstash, Kibana)

    ELK简介 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。 Elasticsearch是个开源分布式搜

    2023年04月09日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包