Elastic Stack--ELFK实例与Dashboard界面

2024-08-31 16:36

本文主要是介绍Elastic Stack--ELFK实例与Dashboard界面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

 学习B站博主教程笔记: 

最新版适合自学的ElasticStack全套视频(Elk零基础入门到精通教程)Linux运维必备—ElasticSearch+Logstash+Kibana精讲_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1VMW3e6Ezk/?spm_id_from=333.1007.tianma.1-1-1.click&vd_source=e539f90574cdb0bc2bc30a8b5cb3fc00

一、ELFK实例

实例架构图如下:

 完成以下内容:(1)收集nginx日志,写入ES集群,分片数量为3,副本数量为0,索引名称为"cluster-linux-nginx";(2)收集tomcat日志,写入ES集群,分片数量为5,副本数量为0,索引名称为"cluster-linux-tomcat";(3)收集app日志,写入ES集群,分片数量为10,副本数量为0,索引名称为"cluster-linux-app";(4)分析出nginx,tomcat的客户端IP所属城市,访问时使用的设备类型等

(1)创建好索引模板:

cluster-linux-nginx模板:

cluster-linux-tomcat模板:

cluster-linux-app模板:

(2)收集nginx日志

many-to-logstash.yml

 filebeat.inputs:- type: logpaths: - /var/log/nginx/access.log*json.keys_under_root: true​output.logstash:hosts: ["192.168.1.10:8888"]

(3)收集tomcat日志

 filebeat.inputs:- type: logpaths: - /root/software/apache-tomcat-10.1.28/logs/*.txtjson.keys_under_root: true​output.logstash:hosts: ["192.168.1.10:7777"]

(4)收集app日志

(5)logstash收集日志

beats-to-es.conf:

 input {beats {type => "nginx"port => 8888}​beats {type => "tomcat"port => 7777}}filter {mutate {remove_field => ["tags","log","agent","@version","input","ecs"]}if ["type"] == ["nginx"] {geoip {source => "clientip"target => "cluster-linux-geoip"}useragent {source => "http_user_agent"target => "cluster-linux-useragent"}}​if ["type"] == ["tomcat"] {geoip {source => "clientip"target => "cluster-linux-geoip"}useragent {source => "AgentVersion"target => "cluster-linux-useragent"}}}output {stdout{}if ["type"] == ["nginx"] {elasticsearch {hosts => ["192.168.1.10:9200","192.168.1.11:9200","192.168.1.12:9200"]index => "cluster-linux-nginx"}}if ["type"] == ["nginx"] {elasticsearch {hosts => ["192.168.1.10:9200","192.168.1.11:9200","192.168.1.12:9200"]index => "cluster-linux-tomcat"}}}

二、kibana自定义dashboard实战案例

1.统计PV(指标)

 Page View(简称:"PV")页面访问或点击量。kibana界面鼠标依次点击如下:(1)菜单栏;(2)Visualize Library(可视化库);(3)新建可视化(4)基于聚合(5)指标(6)选择索引模式(例如"oldboyedu-linux80-nginx*")(7)指标栏中选择:聚合: 计数定制标签: PV

2.统计客户端IP(指标)

 客户端IP:通常指的是访问Web服务器的客户端IP地址,但要注意,客户端IP数量并不难代表UV。kibana界面鼠标依次点击如下:(1)菜单栏;(2)Visualize Library(可视化库);(3)创建可视化(4)基于聚合(5)指标(6)选择索引模式(例如"oldboyedu-linux80-nginx*")(7)指标栏中选择:聚合: 唯一计数字段: clientip.keyword定制标签: IP

3.统计web下载带宽(指标)

 带宽:统计nginx返回给客户端文件大小的字段进行累计求和。kibana界面鼠标依次点击如下:(1)菜单栏;(2)Visualize Library(可视化库);(3)创建可视化(4)基于聚合(5)指标(6)选择索引模式(例如"oldboyedu-linux80-nginx*")(7)指标栏中选择:聚合: 求和字段: SendBytes定制标签: 带宽

4.访问页面统计(水平条形图)

 访问资源统计:对URI的访问次数统计。​kibana界面鼠标依次点击如下:(1)菜单栏;(2)Visualize Library(可视化库);(3)创建可视化(4)基于聚合(5)水平条形图(6)选择索引模式(例如"oldboyedu-linux80-nginx*")(7)指标栏中设置(即Y轴)聚合: 计数定制标签: 访问量(8)添加"存储痛",选择"X"轴聚合: 词字段: uri.keyword...定制标签: URI

5.分析客户端的城市分布(垂直条形图)

 分析客户端的城市分布:需要借助logstash的filter插件的geoip实现对客户端的IP地址进行地域解析。​kibana界面鼠标依次点击如下:(1)菜单栏;(2)Visualize Library(可视化库);(3)创建可视化(4)基于聚合(5)垂直条形图(6)选择索引模式(例如"oldboyedu-linux80-nginx*")(7)指标栏中设置(即Y轴)聚合: 计数定制标签: 城市分布(8)添加"存储痛",选择"X"轴聚合: 词字段: oldboyedu-linux80-nginx.city_name.keyword...定制标签: 城市名称

6.城市分布百分比(饼图)

分析客户端的城市分布:需要借助logstash的filter插件的geoip实现对客户端的IP地址进行地域解析。kibana界面鼠标依次点击如下:(1)菜单栏;(2)Visualize Library(可视化库);(3)创建可视化(4)基于聚合(5)饼图(6)选择索引模式(例如"oldboyedu-linux80-nginx*")(7)指标栏中设置(即Y轴)聚合: 计数定制标签: 城市分布(8)添加"存储痛",选择"X"轴聚合: 词字段: oldboyedu-linux80-nginx.city_name.keyword...定制标签: 城市名称

7.IP的TopN统计(仪表盘)

IP的TopN统计:统计访问量的客户端IP最大的是谁。kibana界面鼠标依次点击如下:(1)菜单栏;(2)Visualize Library(可视化库);(3)创建可视化(4)基于聚合(5)仪表盘(6)选择索引模式(例如"oldboyedu-linux80-nginx*")(7)指标栏中设置(即Y轴)聚合: 计数(8)添加"存储痛",选择"X"轴聚合: 词字段: client.keyword顺序: 降序大小: 3...

8.自定义dashboard

kibana界面鼠标依次点击如下:(1)菜单栏;(2)Dashboard(3)创建仪表盘(4)从可视化库中添加即可。

这篇关于Elastic Stack--ELFK实例与Dashboard界面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124426

相关文章

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Apache Ignite缓存基本操作实例详解

《ApacheIgnite缓存基本操作实例详解》文章介绍了ApacheIgnite中IgniteCache的基本操作,涵盖缓存获取、动态创建、销毁、原子及条件更新、异步执行,强调线程池注意事项,避免... 目录一、获取缓存实例(Getting an Instance of a Cache)示例代码:二、动态

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解