基于Centos 7.4搭建es7.12.0+logstash-7.12.0+kibana-7.12.0(ELK)整合SpringBoot日志收集

注:Skywalking和logstash可共用一个ES,根据实际性能要求判断是否需要独立使用。

ELK简介:

  ELK是Elasticsearch+Logstash+Kibana简称

  1. Elasticsearch:是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。
  2. Logstash: 简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供了很多功能强大的滤网以满足你的各种应用场景。
  3. Kibana: 是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图标、表格、地图等,kibana能够很轻易的展示高级数据分析与可视化。

  ELK实现的日志采集的核心是,通过 logstash 将应用系统的日志通过 input 收集,然后通过内部整理,通过 output 输出到 Elasticsearch 中,其实就是建立了一个 index,然后 kibana作为可视化平台,将 ES 的index进行输出到平台,通过图表的方式进行展示。

环境准备:

  JDK: 1.8

  OS: CentOS Linux release 7.4.1708 (Core)

  elasticsearch:7.12.0

  kibana:7.12.0

  logstash:7.12.0

环境搭建:

  其中 elasticsearch 的搭建可以参考 https://www.cnblogs.com/yizhipanghu/p/14738492.html, 在这里就不介绍了。

  启动 Elasticsearch

一、安装Kibana

1、进入安装包路径

[root@skywalking skywalking]# cd /usr/local/skywalking

2、解压软件包

[root@localhost skywalking]# tar -zxvf kibana-7.12.0-linux-x86_64.tar.gz

3、修改配置文件

[root@skywalking skywalking]# vim /usr/local/skywalking/kibana-7.12.0-linux-x86_64/config/kibana.yml

# 服务端口号:
server.port: 5601

# 服务IP地址:
#server.host: "localhost"
server.host: "10.10.10.10"

# ES链接地址:
#elasticsearch.url: "localhost"
elasticsearch.url: "http://10.10.10.10:9200"

# 配置pid文件存储运行Kibana时的进程号,便于用kill -9 `cat /var/run/kibana.pid`来杀进程。
pid_file: /home/skywalking/es/kibana-6.2.4-linux-x86_64/run/kibana.pid

# 配置Kibana的日志输出位置:
logging.dest: /home/skywalking/es/kibana-6.2.4-linux-x86_64/kibana-log/kibana.log

#创建日志文件夹和进程文件夹
[root@skywalking skywalking]# mkdir -p /usr/local/skywalking/kibana-7.12.0-linux-x86_64/run/
[root@skywalking skywalking]# mkdir -p /usr/local/skywalking/kibana-7.12.0-linux-x86_64/kibana-log/

4、开放端口:

[root@skywalking skywalking]# firewall-cmd --list-ports
[root@skywalking skywalking]# firewall-cmd --zone=public --add-port=5601/tcp --permanent
[root@skywalking skywalking]# firewall-cmd --reload

5、目录赋权限

[root@skywalking skywalking]# chown -R es:es /usr/local/skywalking/kibana-7.12.0-linux-x86_64

6、启动

[root@skywalking skywalking]# cd /usr/local/skywalking/kibana-7.12.0-linux-x86_64/bin/
[root@skywalking bin]# su es
[es@skywalking bin]$ nohup ./kibana & #在后台不输出日志方式运行
[es@skywalking bin]$ nohup ./kibana > /dev/null 2>&1 &

7、访问kibana页面

http://10.10.10.10:5601

二、安装logstash

1、进入安装包路径

[root@skywalking skywalking]# cd /usr/local/skywalking
[root@skywalking skywalking]# ll
drwxrwxr-x. 11 1001 1002 185 4月 30 17:05 apache-skywalking-apm-bin-es7
-rw-r--r--. 1 root root 184816700 4月 30 16:59 apache-skywalking-apm-es7-8.5.0.tar.gz
drwxr-xr-x. 10 es es 167 4月 30 15:10 elasticsearch-7.12.0
-rw-r--r--. 1 root root 327497331 4月 30 15:03 elasticsearch-7.12.0-linux-x86_64.tar.gz
drwxr-xr-x. 12 es es 239 4月 30 15:49 kibana-7.12.0-linux-x86_64
-rw-r--r--. 1 root root 281022115 4月 30 15:04 kibana-7.12.0-linux-x86_64.tar.gz
-rw-r--r--. 1 root root 368429061 5月 8 14:42 logstash-7.12.0-linux-x86_64.tar.gz
[root@skywalking skywalking]#

2、解压软件包

[root@localhost skywalking]# tar -zxvf logstash-7.12.0-linux-x86_64.tar.gz

3、在config文件夹下添加 test.conf 文件,内容如下:

[root@skywalking skywalking]# cat logstash-7.12.0/config/test.conf
input{
tcp {
mode => "server"
host => "10.10.10.10" ##监听发送日志的主机地址
port => 9061 #logstash服务端口,进行采集的端口
codec => json_lines #解码器,有的版本需单独安装
}
}
output{
elasticsearch{
hosts=>["10.10.10.10:9200"] #ES地址和端口
index => "springboot-%{project}-%{+YYYY.MM.dd}" #在ES生成的索引名称,%{project}为获取微服务logback-spring.xml中配置的project的值
}
stdout{codec => rubydebug}
}
[root@skywalking skywalking]#

4、启动logstash

[root@skywalking skywalking]# cd logstash-7.12.0/
[root@skywalking logstash-7.12.0]# ./logstash -f ../config/test.conf

5、Spring boot微服务中添加依赖

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

6、在resources下添加logback-spring.xml   只需把下面ip地址和project修改一下即可

<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
     <!--配置你的logstash的IP:端口-->
<destination>10.10.10.10:9061</destination>
<!-- encoder必须配置,有多种可选 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<providers>
<timestamp>
<timeZone>UTC</timeZone>
</timestamp>
<pattern>
<pattern>
{
"severity": "%level",
"service": "${springAppName:-}",
"trace": "%X{X-B3-TraceId:-}",
"span": "%X{X-B3-SpanId:-}",
"exportable": "%X{X-Span-Export:-}",
"pid": "${PID:-}",
"thread": "%thread",
"class": "%logger{40}",
"rest": "%message"
}
</pattern>
</pattern>
</providers>
       <!--project写微服务项目名,后续在logstash配置中动态保存为ES的索引名称-->
<customFields>{"project":"gateway"}</customFields>
</encoder>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="stash" />
</root>

7、application.properties 修改配置:

logging.config = classpath:logback-spring.xml

8.然后启动springboot ,在对应的controller 里面打印一些日志,然后就可以看到启动 Logstash 的 控制台有所输出,就可以了。

9.登录kibana http://10.10.10.10:5601/ ,点击导航栏 monitoring 模块 --->  点击 Indices :增加索引,查看日志就可以了

logstash配置文件详解:https://blog.csdn.net/weixin_41436549/article/details/82222344

配置参考:https://www.cnblogs.com/xiaoyao-001/p/13273198.html

logback配置详解:https://blog.csdn.net/weixin_43944305/article/details/103794594

logback使用详解:https://blog.csdn.net/lhl1124281072/article/details/79852582

logback日志级别配合nacos使用:https://blog.csdn.net/DPnice/article/details/94650402

基于Centos 7.4 搭建ELK整合SpringBoot日志收集的更多相关文章

  1. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.7. 配置资源与参数

    2.7.配置资源与参数 2.7.1. 修改主机名称 [root@linuxrac1 ~]# cd /etc/sysconfig [root@linuxrac1 sysconfig]# vi netwo ...

  2. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.6. 安装Oracle所依赖的必要包

    2.6. 安装Oracle所依赖的必要包 2.6.1. 检查Oracle所依赖的必要rpm包 [root@localhost /]#rpm -q binutils compat-libstdc elf ...

  3. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.5. 配置网络

    2.5. 配置网络 2.5.1. 配置网络 Oracle Rac数据库涉及到公用网络和私有网络,因此要做网络划分和IP地址规划,下表列出了要安装的RAC数据库对应的IP地址.主机名以及网络连接类型: ...

  4. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.4. 安装JDK

    2.4.安装JDK 2.4.1.准备JDK 在百度搜索:JDK下载 2.4.2.上传JDK put E:\软件安装文件\jdk-8u11-linux-x64.rpm /home/linuxrac1/D ...

  5. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.3配置共享磁盘

    2.3.配置共享磁盘 2.3.1.创建共享磁盘 在cmd中进入WMware Workstation 10.0 安装目录: 1.创建存储Oracle Clusterware文件  (Oracle Clu ...

  6. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.2安装操作系统CentOS5.4

    2.2. 安装操作系统CentOS5.4 两个虚拟机都安装,此步骤在创建虚拟机节点时: 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境所有链接: 1.资源 ...

  7. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.1创建虚拟机

    2.1.创建虚拟机 2.1.1. 创建虚拟机节点1 2.1.2.  创建虚拟机节点2 操作如节点1. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境所有链 ...

  8. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:1.资源准备

    最近,在VmwareStation 10虚拟机上,基于CentOS5.4安装Oracle 11g RAC,并把过程记录下来.刚开始时,是基于CentOS 6.4安装Oracle 11g RAC, 没有 ...

  9. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.1.系统界面报错Gnome

    1.错误信息:登录系统后,屏幕弹出几个错误对话框,无菜单.无按钮 GConf error: Failed to contact configuration server; some possible ...

随机推荐

  1. 2020-BUAA OO-面向对象设计与构造-HW11中对ageVar采用缓存优化的等价性证明(包括溢出情况)

    HW11中对ageVar采用缓存优化的等价性证明(包括溢出情况) 概要 我们知道,第三次作业里age上限变为2000,而如果缓存年龄的平方和,2000*2000*800 > 2147483647 ...

  2. Spring Boot XSS 攻击过滤插件使用

    XSS 是什么 XSS(Cross Site Scripting)攻击全称跨站脚本攻击,为了不与 CSS(Cascading Style Sheets)名词混淆,故将跨站脚本攻击简称为 XSS,XSS ...

  3. [源码分析] 分布式任务队列 Celery 多线程模型 之 子进程

    [源码分析] 分布式任务队列 Celery 多线程模型 之 子进程 目录 [源码分析] 分布式任务队列 Celery 多线程模型 之 子进程 0x00 摘要 0x01 前文回顾 1.1 基类作用 1. ...

  4. 谈谈react hooks的优缺点

    前言Hook 是 React 16.8 的新增特性.它是完全可选的,并且100%向后兼容.它可以让你使用函数组件的方式,运用类组件以及 react 其他的一些特性,比如管理状态.生命周期钩子等.从概念 ...

  5. 通过Dapr实现一个简单的基于.net的微服务电商系统(七)——一步一步教你如何撸Dapr之服务限流

    在一般的互联网应用中限流是一个比较常见的场景,也有很多常见的方式可以实现对应用的限流比如通过令牌桶通过滑动窗口等等方式都可以实现,也可以在整个请求流程中进行限流比如客户端限流就是在客户端通过随机数直接 ...

  6. Workerman:PHP的socket框架

    hi,我们今天来讲讲Workerman,什么是Workerman呢? 看看官网上的介绍 Workerman是一款开源高性能异步PHP socket框架.支持高并发,超高稳定性,被广泛的用于手机app. ...

  7. Firefox 启动带有配置信息

    若不设置进行下述配置,那么 webdriver 每次启动火狐浏览器,默认都是一个不太有任何插件的浏览器被启动. 通过配置的方式,指定一个浏览器设置来启动,就可以使用以前安装的插件或配置信息了. 步骤一 ...

  8. python 函数对象、函数嵌套、名称空间与作用域

    一 函数对象 一 函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 #3 返回值可以是函数 #3 可以当作容器类型的元素二 利用该特性,优雅的取代多分支的if def ...

  9. 1027 Colors in Mars

    People in Mars represent the colors in their computers in a similar way as the Earth people. That is ...

  10. 异步访问技术Ajax(XMLHttpRequest)

    目录 AJAX XMLHttpRequest Ajax向服务器发送请求 Ajax接收服务器响应 AJAX - onreadystatechange 事件 使用 Callback 函数 一次Ajax请求 ...