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

第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正常(黄色也不影响,与分片相关)

第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       // 新增下列行
        <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>4.10</version>
        </dependency>
# vim src/main/resource/log/logback.xml      // logback相关配置文件,可咨询开发人员,增加以下配置文件
       <!-- logstash日志采集配置 -->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>IP:5044</destination>     // IP为Logstash服务器的地址
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
            <customFields>{"appname": "test"}</customFields> // “test”为此服务名称,这是自定义的,服务名称是什么就写什么
        </encoder>
    </appender>

<root>                                          // 下面这一段默认存在,所以只用添加省略号之间的那句话即可
        <level value="${level}" />
 <!--<appender-ref ref="STDOUT" />-->
     ......
        <appender-ref ref="LOGSTASH" />
        ......
 </root>

# 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启动成功

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

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

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

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

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

原文地址:https://www.cnblogs.com/k-free-bolg/p/12058526.html

时间: 2024-08-11 13:48:14

ELK+Logback进行业务日志分析查看的相关文章

centos7搭建ELK Cluster集群日志分析平台(二)

续  centos7搭建ELK Cluster集群日志分析平台(一) 已经安装完Elasticsearch 5.4 集群. 安装Logstash步骤 1. 安装Java 8 官方说明:需要安装Java 8 ,不支持Java 9... //自行安装,略过 2. 安装Logstash 可以同elasticsearch一样建立repo文件通过yum安装,也可以去官网直接下载rpm包进行本地安装:   ~]# rpm -ivh logstash-5.4.0.rpm  //这里直接下载好进行本地安装 3.

centos7搭建ELK Cluster集群日志分析平台(三)

续  centos7搭建ELK Cluster集群日志分析平台(一) 续  centos7搭建ELK Cluster集群日志分析平台(二) 已经安装好elasticsearch 5.4集群和logstash 5.4 安装kibana步骤 1.下载安装Kibana  ~]#wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-x86_64.rpm 如果链接失效,官网下载:https://www.elastic.co/down

ELK(ElasticSearch+Logstash+Kibana)日志分析工具

日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事

使用elk+redis搭建nginx日志分析平台

logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录.其次,需要有个队列,redis的list结构正好可以作为队列使用.然后分析使用elasticsearch就可以进行分析和查询了. 我们需要的是一个分布式的,日志收集和分析系统.logstash有agent和indexer两个角色.对于agent角色,放在单独的web机器上面,然后这个agent不断地读取nginx的日志文件

日志分析查看——grep,sed,sort,awk运用

概述 我们日常应用中都离不开日志.可以说日志是我们在排查问题的一个重要依据.但是日志并不是写了就好了,当你想查看日志的时候,你会发现线上日志堆积的长度已经超越了你一行行浏览的耐性的极限了.于是,很有必要通过一些手段来高效地辅助你来快速的从日志中找到你要找的问题.本文通过一个从项目中衍生出来的例子从查找日志,筛选日志和统计日志3个方面层层递进来简述日志文件查看中一些有用的手段.(注:在linux环境下) 目录 0.查找关键日志grep 1.查找关键日志grep 2.精简日志内容 sed 3.对记录

centos7搭建ELK Cluster集群日志分析平台(四):简单测试

续之前安装好的ELK集群 各主机:es-1 ~ es-3 :192.168.1.21/22/23 logstash: 192.168.1.24 kibana: 192.168.1.25 测试机:client: 192.168.1.26 在测试机上安装并启动filebeat 1. 下载filebeat  ~]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.0-linux-x86_64.tar.gz

Centos7下ELK+Redis日志分析平台的集群环境部署记录

之前的文档介绍了ELK的架构基础知识,下面简单记录下ELK结合Redis搭建日志分析平台的集群环境部署过程,大致的架构如下: + Elasticsearch是一个分布式搜索分析引擎,稳定.可水平扩展.易于管理是它的主要设计初衷 + Logstash是一个灵活的数据收集.加工和传输的管道软件 + Kibana是一个数据可视化平台,可以通过将数据转化为酷炫而强大的图像而实现与数据的交互将三者的收集加工,存储分析和可视转化整合在一起就形成了ELK. 基本流程:1)Logstash-Shipper获取日

seci-log 1.05 发布,日志分析增加业务系统日志

本次升级并没有增加新的告警,而是增加了业务日志分析,协议用的是udp 514端口,和syslog公用一个端口:由于业务日志五花八门要想进行适配和分析,必须先定好格式.下面详细介绍一下日志的格式,关键内容是以空格作为区分,属性和值是用等号进行分开的,整个日志中secisland business log 这三个字母是必须有的,其他字段都可以没有,但为了审计和分析的准确性,建议能加的都加上.格式示例如下: secisland business log time="2015-04-26 15:42:3

[Big Data - ELK] ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自: http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这