热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ELK+Logback进行业务日志分析查看

第1章 Elasticsearch安装部署 1.1 下载软件包并创建工作目录程序下载地址:https:artifacts.elastic.codownloadselasticsea

第1章 Elasticsearch安装部署

 

1.1 下载软件包并创建工作目录

程序下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.0-linux-x86_64.tar.gz

下载时间过长,建议登录至服务器下载;

‘’’
# 下载官方新版本软件包
# 解压文件至指定目录并重命名
# 创建用户且将elasticsearch程序目录属主属组设置为elasticsearch用户
‘’’

# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.0-linux-x86_64.tar.gz

# tar zxvf  elasticsearch-7.5.0-linux-x86_64.tar.gz -C /mnt/elasticsearch

# useradd elasticsearch && chown -R elasticsearch:elasticsearch /mnt/elasticsearch 

1.2 安装Elasticsearch Head插件

 

如果不安装Head插件的话,查询索引及数据等操作不太方便,所以此处安装了Head插件

 

‘’’
1.# 到官方下载最新版本的nodejs软件包(https://nodejs.org/en/download/)
2.# 解压压缩包
3.# 在/etc/profile文件中配置好环境变量
4.# 执行验证
5.# 下载head插件并修改配置文件
6.# 安装服务启动命令
7.# 启动命令验证
8.# 安装相关程序
9.# 后台启动head插件
10.# 查看服务是否启动成功,端口是否存在
‘’’

1 # 下载过程省略。。

2 # tar zxvf  node-v11.10.0-linux-x64.tar.gz -C /usr/local/node-v11.10.0-linux-x64

3 # vim /etc/profile

    export NODE_HOME=/usr/local/node-v11.10.0-linux-x64

   export NODE_PATH=$NODE_HOME/lib/node_modules

   export PATH=$NODE_HOME/bin:$PATH

   export PATH

4 # node -v

v11.10.0

5 # cd /mnt/elasticsearch && git clone https://github.com/mobz/elasticsearch-head.git

5 # vim /mnt/elasticsearch/elasticsearch-head/_site/app.js (找到下列行进行修改)

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://ES_IP:PORT"

5 # vim /mnt/elasticsearch/elasticsearch-head/Gruntfile.js (找到下列行进行修改)

          hostname: '0.0.0.0',

          port: 9100,

          base: '.',

          keepalive: true

6 # npm install -g grunt

6 # npm install -g grunt-cli --registry=https://registry.npm.taobao.org --no-proxy

7 # grunt --version

grunt-cli v1.2.0

8 # npm install

9 # nohup grunt server &

10 # ss -nlt | grep 9100

 

1.3 Elasticsearch配置文件修改并启动

 

# vim /mnt/elasticsearch/config/elasticsearch.yml
   cluster.name: my-elasticsearch                         // 集群名称(单节点用不上,但集群的话另外的ES也要配置这个名称)
   node.name: node-1                                    // 节点名称
     path.data: /mnt/elasticsearch/data                   // 数据存放路径
     path.logs: /mnt/logs/elasticsearch                   // 日志存放路径
     bootstrap.memory_lock: true                          // 防止es内存被交换出去,避免es使用swap交换分区
     network.host: IP                                     // ES的主机IP地址
     http.port: 9200                                     // ES启动后监听的端口
     cluster.initial_master_nodes: ["node-1"]             // 候选主节点的设备地址,来开启服务时就可以被选为主节点
     gateway.recover_after_nodes: 1                       // 要等几个节点启动完成后,开始初始化数据恢复
     # 使head插件可以访问ES
http.cors.enabled: true
http.cors.allow-origin: "*"

#启动LRU法则,回收老数据
indices.fielddata.cache.size: 20%
#指定节点为master
node.master: true
# vim /mnt/elasticsearch/config/jvm.options                 // 调整ES可使用的内存大小
  -Xms512M
  -Xms512M

# vim /etc/sysctl.conf
  #Elasticsearch设置,在ES启动时,限制ES可以拥有的VMA(虚拟内存区域)的数量
vm.swappiness=0
vm.max_map_count=262144
# sysctl -p                // 使配置生效
# cd /mnt/elasticsearch/bin
# ./elasticsearch        // 前台启动ES方便发现问题并调试
# nohup ./elasticsearch &   (这条命令可等控制台启动ES无报错后使用)

访问http://IP:9100(信息均为Head插件的信息)
# 因为我这边已经有了索引所以我的效果如下,默认应该是空的,但ES状态为Green正常(黄色也不影响,与分片相关)

 

ELK+Logback进行业务日志分析查看

 

 

 

第2章 Logstash安装部署

 

2.1 下载软件包并创建工作目录

程序下载地址:https://artifacts.elastic.co/downloads/logstash/logstash-7.5.0.tar.gz

下载时间过长,建议登录至服务器下载;

‘’’
   1. # 从官方地址下载程序包
   2. # 解压到指定目录且重命名
   3. # 创建运行用户并且修改程序目录属主属组
‘’’
# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.5.0.tar.gz
# tar zxvf  logstash-7.5.0.tar.gz -C /mnt/logstash
# useradd logstash && chown -R logstash:logstash /mnt/logstash 

2.2 修改配置文件并启动

# cd /mnt/logstash/config
# cp logstash-sample.conf logstash.conf
# vim logstash.conf
  input {
  tcp {
    host => "IP"                            // 本机IP地址
    port => "5044"                          // Logstash所监听端口号
    mode => "server"                        // 我们为服务端,让客户端发送日志
    codec => json_lines                     // 格式固定为json_lines,否则动态变量appname无法生效
  }
}

output {
  elasticsearch {
    hosts => "http://IP:9200"                // ES的IP+Port
    action => "index"                        // 行为是索引
    index => "%{[appname]}-%{+YYYY.MM.dd}"   // 索引名称为”服务名+日期”
  }
}

# vim jvm.options           // 限制logstash使用内存大小
  -Xms512m
  -Xms512m
# cd /mnt/logstash/bin
# ./logstash -f /mnt/logstash/config/logstash.conf
# nohub ./logstash -f /mnt/logstash/config/logstash.conf &    (后台启动logstash,如果担心有问题也可以先前台启动调试)

第3章  Logback服务配置

 

说明:我们的部署流程使用的是Jenkins+Gitlab+Ansible+Python来实现的,所以打包也是由Jenkins直接打包,服务较多,用的基本都是Spring boot框架,但日志方面使用的是Logback,所以以下配置使用的是Logback+Logstash这种方式;

 

3.1 修改服务配置并且重新编译

首先在Jenkins的工作空间中找到服务目录,临时修改各配置

 

# cd .jenkins/workspace/$service_name/
# vim pom.xml       // 新增下列行
        
                net.logstash.logback
                logstash-logback-encoder
                4.10
        
# vim src/main/resource/log/logback.xml      // logback相关配置文件,可咨询开发人员,增加以下配置文件
    
   "LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> IP:5044 // IP为Logstash服务器的地址 "UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"> {"appname": "test"} // “test”为此服务名称,这是自定义的,服务名称是什么就写什么 // 下面这一段默认存在,所以只用添加省略号之间的那句话即可 "${level}" /> ...... "LOGSTASH" /> ...... # mvn clean package // 重新打一个服务jar包上测试环境替换

 

3.2 登录ES-Head插件验证

 

访问http://IP:9100,查看索引位置是否存在自己以服务名命名的索引,如果存在则可以进行下一步操作啦,如果没有的话可以调整一下logstash的配置文件

 

# vim logstash.conf
  input {
  tcp {
    host => "IP"                            // 本机IP地址
    port => "5044"                          // Logstash所监听端口号
    mode => "server"                     // 我们为服务端,让客户端发送日志
    codec => json_lines                    // 格式固定为json_lines,否则动态变量appname无法生效
  }
}

output {
  stdout {
     codec => json_lines                 
}
}

# cd /mnt/logstash/bin
# ./logstash -f /mnt/logstash/config/logstash.conf

# 然后在测试环境重启一下服务,查看一下logstash前台是否有日志收集过来,如果没有的话,查看logback配置的logstash的地址及端口与服务所在的服务器之间是否能够正常通讯;

 

第4章 Kibana安装配置及使用

 

4.1 下载软件包并创建工作目录

下载时间过长,建议登录至服务器下载;

‘’’
   1. # 从官方地址下载程序包
   2. # 解压到指定目录且重命名
   3. # 创建运行用户并且修改程序目录属主属组
‘’’
# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.5.0-linux-x86_64.tar.gz
# tar zxvf  kibana-7.5.0-linux-x86_64.tar.gz -C /mnt/kibana
# useradd kibana && chown -R kibana:kibana /mnt/kibana

4.2 修改配置文件并启动

# cd /mnt/kibana/config
# vim kibana.yml
  server.port: 5601                             // kibana监听的端口号
  server.host: "IP"                            // kibana所在的服务器IP地址
  server.maxPayloadBytes: 1048576              // 最大请求负载(单位Byte)
  elasticsearch.hosts: ["http://IP:Port"]      // ES的网络地址
  kibana.index: ".kibana"                      // kibana默认创建的索引
  elasticsearch.requestTimeout: 30000          // 请求连接ES的最大超时时间(单位 ms)
  pid.file: /mnt/kibana/kibana.pid             // pid存放位置
  i18n.locale: "zh-CN"                        // 配置为中文界面
# cd /mnt/kibana/bin
# ./kibana                                // 前台启动方便发现问题
# nohub ./kibana &                          // 调试完成后可直接后台运行

4.3 验证是否启动成功

1.如果访问http://IP:5601出现如下界面的话,则说明Kibana启动成功

ELK+Logback进行业务日志分析查看

 

 

 

2. 创建索引模式用来匹配ES上的索引名称

ELK+Logback进行业务日志分析查看

 

 

3. 红框中填入你要匹配的规则,类似正则表达式;

ELK+Logback进行业务日志分析查看

 

 4.默认以@timestamp作为筛选字段即可

ELK+Logback进行业务日志分析查看

 

 

5. 选中左边的第一个则代表查看匹配到的数据,第二个红框代表只看message这个字段的内容

ELK+Logback进行业务日志分析查看

 

 

至此,ES+Logstash+logback+Kibana就完成啦!


推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 在Windows10系统上使用VMware创建CentOS虚拟机的详细步骤教程
    本文详细介绍了在Windows10系统上使用VMware创建CentOS虚拟机的步骤,包括准备条件、安装VMware、下载CentOS ISO文件、创建虚拟机并进行自定义配置、设置虚拟机的ISO与网络、进行安装和配置等。通过本文的指导,读者可以轻松地创建自己的CentOS虚拟机并进行相应的配置和操作。 ... [详细]
  • PatchODAX8: ... [详细]
author-avatar
DreamFly72
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有