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.-linux-x86_64.tar.gz -C /mnt/elasticsearch
- # useradd elasticsearch && chown -R elasticsearch:elasticsearch /mnt/elasticsearch
1.2 安装Elasticsearch Head插件
如果不安装Head插件的话,查询索引及数据等操作不太方便,所以此处安装了Head插件
- ‘’’
- .# 到官方下载最新版本的nodejs软件包(https://nodejs.org/en/download/)
- .# 解压压缩包
- .# 在/etc/profile文件中配置好环境变量
- .# 执行验证
- .# 下载head插件并修改配置文件
- .# 安装服务启动命令
- .# 启动命令验证
- .# 安装相关程序
- .# 后台启动head插件
- .# 查看服务是否启动成功,端口是否存在
- ‘’’
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- // 节点名称
- path.data: /mnt/elasticsearch/data // 数据存放路径
- path.logs: /mnt/logs/elasticsearch // 日志存放路径
- bootstrap.memory_lock: true // 防止es内存被交换出去,避免es使用swap交换分区
- network.host: IP // ES的主机IP地址
- http.port: // ES启动后监听的端口
- cluster.initial_master_nodes: ["node-1"] // 候选主节点的设备地址,来开启服务时就可以被选为主节点
- gateway.recover_after_nodes: // 要等几个节点启动完成后,开始初始化数据恢复
- # 使head插件可以访问ES
- http.cors.enabled: true
- http.cors.allow-origin: "*"
- #启动LRU法则,回收老数据
- indices.fielddata.cache.size: %
- #指定节点为master
- node.master: true
- # vim /mnt/elasticsearch/config/jvm.options // 调整ES可使用的内存大小
- -Xms512M
- -Xms512M
- # vim /etc/sysctl.conf
- #Elasticsearch设置,在ES启动时,限制ES可以拥有的VMA(虚拟内存区域)的数量
- vm.swappiness=
- vm.max_map_count=
- # 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
下载时间过长,建议登录至服务器下载;
- ‘’’
- . # 从官方地址下载程序包
- . # 解压到指定目录且重命名
- . # 创建运行用户并且修改程序目录属主属组
- ‘’’
- # wget https://artifacts.elastic.co/downloads/logstash/logstash-7.5.0.tar.gz
- # tar zxvf logstash-7.5..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 => "" // 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:</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 => "" // 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 下载软件包并创建工作目录
下载时间过长,建议登录至服务器下载;
- ‘’’
- . # 从官方地址下载程序包
- . # 解压到指定目录且重命名
- . # 创建运行用户并且修改程序目录属主属组
- ‘’’
- # wget https://artifacts.elastic.co/downloads/kibana/kibana-7.5.0-linux-x86_64.tar.gz
- # tar zxvf kibana-7.5.-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: // kibana监听的端口号
- server.host: "IP" // kibana所在的服务器IP地址
- server.maxPayloadBytes: // 最大请求负载(单位Byte)
- elasticsearch.hosts: ["http://IP:Port"] // ES的网络地址
- kibana.index: ".kibana" // kibana默认创建的索引
- elasticsearch.requestTimeout: // 请求连接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就完成啦!
ELK+Logback进行业务日志分析查看的更多相关文章
- ELK+redis搭建nginx日志分析平台
ELK+redis搭建nginx日志分析平台发表于 2015-08-19 | 分类于 Linux/Unix | ELK简介ELKStack即Elasticsearch + Logstas ...
- 使用elk+redis搭建nginx日志分析平台
elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态 ...
- centos7搭建ELK Cluster集群日志分析平台(二):Logstash
续 centos7搭建ELK Cluster集群日志分析平台(一) 已经安装完Elasticsearch 5.4 集群. 安装Logstash步骤 . 安装Java 8 官方说明:需要安装Java ...
- centos7搭建ELK Cluster集群日志分析平台(一):Elasticsearch
应用场景: ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构, 很多公司利用它来搭建可视化的海量日志分析平 ...
- centos7搭建ELK Cluster集群日志分析平台
应用场景:ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构, 很多公司利用它来搭建可视化的海量日志分析平台 ...
- 使用elk+redis搭建nginx日志分析平台(引)
http://www.cnblogs.com/yjf512/p/4199105.html elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎 ...
- ELK、ELFK企业级日志分析系统
ELK.ELFK企业级日志分析系统 目录 ELK.ELFK企业级日志分析系统 一.ELK日志分析系统 1. ELK简介 1.2 ElasticSearch 1.3 Logstash 1.4 Kiban ...
- centos7搭建ELK Cluster集群日志分析平台(四):Fliebeat-简单测试
续之前安装好的ELK集群 各主机:es-1 ~ es-3 :192.168.1.21/22/23 logstash: 192.168.1.24 kibana: 192.168.1.25 测试机:cli ...
- centos7搭建ELK Cluster集群日志分析平台(三):Kibana
续 centos7搭建ELK Cluster集群日志分析平台(一) 续 centos7搭建ELK Cluster集群日志分析平台(二) 已经安装好elasticsearch 5.4集群和logst ...
随机推荐
- 每天一道Rust-LeetCode(2019-06-08)
每天一道Rust-LeetCode(2019-06-08) 91. 解码方法 坚持每天一道题,刷题学习Rust. 题目描述 https://leetcode-cn.com/problems/decod ...
- hdu1247-Hat’s Words-(字典树)
http://acm.hdu.edu.cn/showproblem.php?pid=1247 题意:给出一堆单词,求哪些单词是其中某两个单词拼接起来的. 题解:用字典树存储所有的单词,标记结束点,再次 ...
- 2019SDN上机第2次作业
1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名.交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 创建拓扑: 拓扑支持OpenFlo ...
- android 模拟输入框edittext控件按下回车或扫描头扫描到条码
edtScan.setText(result); edtScan.onEditorAction(EditorInfo.IME_ACTION_NEXT); 场景:PDA都有扫描头,但有时想用自己的手机来 ...
- [原创]App崩溃率统计工具推荐
[原创]App崩溃率统计工具推荐 1 友盟(推荐) 友盟是一款比较成熟的工具,同时也可以展示留存,日活,事件等. 2 Bugly 腾讯的bugly统计数据也算是比较早的,可惜后续维护比较弱,功能与 ...
- Visual Studio 调试系列5 检查变量(使用自动窗口和局部变量窗口)
系列目录 [已更新最新开发文章,点击查看详细] 在调试时,“自动变量”和“局部变量”窗口会显示变量值. 仅在调试会话期间,这两个窗口才可用. “自动变量”窗口显示当前断点周围使用的变量. “局 ...
- linux 安装jdk 和tomcat
#创建用户是为了区分操作权限,如果不区分的话可以直接用root用户执行文件目录为 /usr/lcdc #创建lcdc用户, #其中-d和-m选项用来为登录名lcdc, /usr/lcdc(/usr为默 ...
- 微信JSSDK 扫描二维码
<?php require_once('wxjssdk.class.php'); $weixin = new class_weixin(); $signPackage = $weixin-> ...
- Zuul的使用,路由访问映射规则
一.Zuul的介绍 Zuul包含了对请求的路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实力上,是实现外部访问统一入口基础而过滤器功能则负责对请求的处理过程进行干预,是实现 ...
- Laravel HTML导出 PDF ----- wkhtmltopdf Laravel-snappy
需求:将复杂的展示页 (包含大量 echarts) 转换成 PDF供用户下载 1.下载安装wkhtmltoxpdf 选择自己的系统版本下载并安装 rpm -ivh wkhtmltox--.centos ...