ELK Stack 安装、配置以及集成到 Java 微服务中的使用

news2024/12/17 5:36:46

ELK Stack 是由 Elasticsearch、Logstash 和 Kibana 组成的日志管理解决方案。以下是详细的安装、配置步骤以及如何将其集成到 Java 微服务中。

1. 安装 ELK Stack
1.1 安装 Elasticsearch

在 Ubuntu 上安装 Elasticsearch:

bash

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list' sudo apt-get update sudo apt-get install elasticsearch

在 CentOS 上安装 Elasticsearch:

bash

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF [elasticsearch] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF sudo yum install elasticsearch

启动和启用 Elasticsearch 服务:

bash

sudo systemctl start elasticsearch sudo systemctl enable elasticsearch

1.2 安装 Logstash

在 Ubuntu 上安装 Logstash:

bash

sudo apt-get install logstash

在 CentOS 上安装 Logstash:

bash

sudo yum install logstash

启动和启用 Logstash 服务:

bash

sudo systemctl start logstash sudo systemctl enable logstash

1.3 安装 Kibana

在 Ubuntu 上安装 Kibana:

bash

sudo apt-get install kibana

在 CentOS 上安装 Kibana:

bash

sudo yum install kibana

启动和启用 Kibana 服务:

bash

sudo systemctl start kibana sudo systemctl enable kibana

2. 配置 ELK Stack
2.1 配置 Elasticsearch

编辑 Elasticsearch 配置文件 /etc/elasticsearch/elasticsearch.yml

yaml

network.host: 0.0.0.0 discovery.type: single-node

重启 Elasticsearch 服务:

bash

sudo systemctl restart elasticsearch

2.2 配置 Logstash

创建一个 Logstash 配置文件 /etc/logstash/conf.d/logstash.conf

conf

input { tcp { port => 5000 codec => json_lines } } output { elasticsearch { hosts => ["http://localhost:9200"] index => "logs-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }

重启 Logstash 服务:

bash

sudo systemctl restart logstash

2.3 配置 Kibana

编辑 Kibana 配置文件 /etc/kibana/kibana.yml

yaml

server.host: "0.0.0.0" elasticsearch.hosts: ["http://localhost:9200"]

重启 Kibana 服务:

bash

sudo systemctl restart kibana

3. 集成 ELK Stack 到 Java 微服务
3.1 添加依赖

在你的 Java 项目中,使用 Maven 或 Gradle 添加 Logstash TCP 客户端库的依赖。

Maven 依赖:

xml

<dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>6.6</version> </dependency>

Gradle 依赖:

groovy

implementation 'net.logstash.logback:logstash-logback-encoder:6.6'

3.2 配置 Logback

编辑 Logback 配置文件 logback.xml

xml

<configuration> <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>localhost:5000</destination> <encoder class="net.logstash.logback.encoder.LogstashEncoder" /> </appender> <root level="info"> <appender-ref ref="LOGSTASH" /> </root> </configuration>

3.3 示例代码

以下是一个简单的 Java 示例,展示如何记录日志。

LoggerExample.java:

java

import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LoggerExample { private static final Logger logger = LoggerFactory.getLogger(LoggerExample.class); public static void main(String[] args) { logger.info("This is an info message"); logger.error("This is an error message", new RuntimeException("Test Exception")); } }

4. 运行示例
4.1 启动 ELK Stack 服务

确保 Elasticsearch、Logstash 和 Kibana 服务都已启动并正常运行。

4.2 运行 Java 应用

在终端中运行 Java 应用:

bash

java -cp .:logback-classic-1.2.3.jar:logback-core-1.2.3.jar:slf4j-api-1.7.30.jar:logstash-logback-encoder-6.6.jar LoggerExample

4.3 查看日志

打开浏览器,访问 http://<服务器IP>:5601,进入 Kibana 管理界面。

  1. 创建索引模式

    • 进入 Management -> Index Patterns
    • 输入 logs-* 并点击 Next step
    • 选择时间字段 @timestamp 并点击 Create index pattern
  2. 查看日志

    • 进入 Discover 页面,可以看到从 Java 应用发送的日志。

总结

通过以上步骤,你可以成功安装、配置和将 ELK Stack 集成到 Java 微服务中。ELK Stack 提供了强大的日志管理和分析功能,适合微服务架构中的日志处理需求。希望这些示例能帮助你快速上手 ELK Stack 在 Java 中的使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2260874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux核心概念与常用命令

文章目录 一、Linux概述1、常见的操作系统2、Linux发展史3、Linux目录结构 二、文件和目录操作1、pwd - 显示当前目录2、cd - 切换目录3、ls - 列出目录内容4、mkdir - 创建目录5、touch - 创建空文件6、cp - 复制文件或目录7、mv - 移动或重命名文件8、rm - 删除文件或目录9、…

uniappp配置导航栏自定义按钮(解决首次加载图标失败问题)

1.引入iconfont的图标&#xff0c;只保留这两个文件 2.App.vue引入到全局中 import "./static/fonts/iconfont.css"3.pages.json中配置text为图标对应的unicode {"path": "pages/invite/invite","style": {"h5": {"…

vue组件开发:构建响应式快捷导航

前言 快捷导航不仅能够显著提升系统的灵活性和用户交互性&#xff0c;还极大地增强了用户的操作体验。本文将展示如何在 vue 中实现一个既可自定义又具备响应式特性的快捷导航菜单。 一、实现思路 列表页 结构设计 定义页面结构&#xff0c;包含一个导航卡片和一个对话框组件&a…

基于 Spring Boot 实现图片的服务器本地存储及前端回显

??导读&#xff1a;本文探讨了在网站开发中图片存储的各种方法&#xff0c;包括本地文件系统存储、对象存储服务&#xff08;如阿里云OSS&#xff09;、数据库存储、分布式文件系统及内容分发网络&#xff08;CDN&#xff09;。文中详细对比了这些方法的优缺点&#xff0c;并…

深入了解IPv6——光猫相关设定:DNS来源、DHCPv6服务、前缀来源等

光猫IPv6设置后的效果对比图&#xff1a; 修改前&#xff1a; 修改后&#xff1a; 一、DNS来源 1. 网络连接 来源&#xff1a; 从上游网络&#xff08;如运营商&#xff09;获取 IPv6 DNS 信息&#xff0c;通过 PPPoE 或 DHCPv6 下发。 特点&#xff1a; DNS 服务器地址直…

欧科云链研究院:AI时代,如何证明“我是我”?

OKG Research&#xff5c;编辑 近日&#xff0c;OpenAI 发布了新模型 Sora。这是一款高性能的文本到多模态生成工具&#xff0c;支持从文本生成精细的图像和动态视频。 相较早先发布的视频样例&#xff0c;该功能目前已经可以由用户真实上手体验&#xff0c;目前由于服务过载…

Cesium进阶教程——自定义图形、外观、绘图基础、现有着色器移植至Cesium、ShadowMapping、视频GIS、模型压平、卷帘

基础必看 WEBGL基础&#xff08;从渲染管线角度解读&#xff09; 参考路线 http://www.xt3d.online/tutorial/further/article.html 自定义图形 https://blog.csdn.net/m0_55049655/article/details/138908327 https://blog.csdn.net/m0_55049655/article/details/140306837 …

【Linux|计算机网络】HTTPS工作原理与安全机制详解

目录 1、HTTPS是什么&#xff1f; 2、概念准备 2.1.什么是加密、解密、密钥 2.2.为什么要加密 2.3.常见的加密方式 1.对称加密 2.非对称加密 2.4.数据摘要 && 数据指纹 2.5. 数字签名 3.HTTPS 的工作过程探究 方案 1 - 只使用对称加密 方案 2 - 只使用非对…

【JavaWeb后端学习笔记】Redis常用命令以及Java客户端操作Redis

redis 1、redis安装与启动服务2、redis数据类型3、redis常用命令3.1 字符串String3.2 哈希Hash3.3 列表List3.4 集合Set&#xff08;无序&#xff09;3.5 有序集合zset3.6 通用命令 4、使用Java操作Redis4.1 环境准备4.2 Java操作字符串String4.3 Java操作哈希Hash4.4 Java操作…

洛谷题解P1219 [USACO1.5] 八皇后 Checker Challenge

本题是一道dfs的题目&#xff08;&#xff09;&#xff08;&#xff09;感觉主要的困惑点在于对角线的判断&#xff08;我刚开始还想遍历&#xff09; 题目&#xff1a; 题目很简短&#xff0c;清晰易懂&#xff0c;就是要找到全部的能使n个棋子在不同行不同列并且也不会在同一…

伺服电机控制驱动器选择

伺服电机控制驱动器选择 根据具体使用场景和需求&#xff0c;可以选择 Modbus RTU、Modbus TCP 或 CAN 通信方式。这些协议在伺服电机的驱动和固件中起到核心作用。以下是详细说明及推荐。 1. 驱动器的作用 接收控制器指令&#xff08;如位置、速度或扭矩命令&#xff09;。将…

嵌入式跨平台工具链终极方案

嵌入式跨平台工具链终极方案 1. 解决烦人的编译&#xff0c;从编译器开始2. T0级别的代码编辑器IDE3. git linus之父开发神奇的分布式代码管理工具 我们从8051开始学习嵌入式&#xff0c;用过了不少IDE&#xff0c;比如经典的keil和IAR&#xff0c;但是这些IDE都不便宜&#xf…

Ubuntu安装Gitlab详细图文教程

1、环境准备 1.1、Ubuntu环境 Ubuntu24.04Sever版安装教程 1.2、更新系统 sudo apt update -y sudo apt-get update sudo apt-get upgrade 2、安装Nginx 2.1 安装nginx # 安装 apt install nginx -y 2.2 修改nginx配置⽂件 # 修改nginx配置 vim /etc/nginx/si…

redis集群安装部署 redis三主三从集群

redis集群安装部署 redis三主三从集群 1、下载redis2、安装redis集群 三主三从3、配置redis开机自启动3.1、建立启动脚本3.2、复制多份redis启动脚本给集群使用3.3、添加可执行权限3.4、配置开机自启动 1、下载redis 本次redis安装部署选择当前最新的稳定版本7.4.1 下载链接: …

泊松编辑 possion editing图像合成笔记

开源地址&#xff1a; GitHub - kono-dada/Reproduction-of-possion-image-editing 掩码必须是矩形框

【Linux系列】Linux 系统中查看目录权限

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

6.2 MapReduce工作原理

MapReduce工作原理涉及将大数据集分割成小块并行处理。Map任务读取数据块并输出中间键值对&#xff0c;而Reduce任务则处理这些排序后的数据以生成最终结果。MapTask工作包括读取数据、应用Map函数、收集输出、内存溢出时写入磁盘以及可选的Combiner局部聚合。ReduceTask工作则…

9. 高效利用Excel设置归档Tag

高效利用Excel设置归档Tag 1. Excle批量新建/修改归档Tag2. 趋势记录模型批量导入归档Tag(Method1)2. 趋势记录模型批量导入归档Tag(Method2)3. 趋势记录控件1. Excle批量新建/修改归档Tag Fcatory Talk常常需要归档模拟量,对于比较大的项目工程会有成千上万个重要数据需…

docker 部署 redis

docker 部署 redis 1. 下载 redis 镜像 # docker images | grep redis bitnami/redis 7.2.4-debian-11-r5 45de196aef7e 10 months ago 95.2MB2. docker-compose 部署 version: "3" services:redis:image: bitnami/redis:7.2.4-debian-11-…

基于python绘制数据表(上)

利用python绘制各种数据图表 绘制柱形图-源码 from openpyxl import Workbook from openpyxl.chart import BarChart, Reference# 创建工作薄 wb Workbook(write_onlyTrue) # 创建工作表 ws wb.create_sheet(月收入)# 准备数据 rows [(月份, 销售额),(1, 23),(2, 43),(3, …