Elastic Stack--ELFK实例与Dashboard界面

news2024/11/14 12:06:19

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

 学习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: log
   paths: 
     - /var/log/nginx/access.log*
   json.keys_under_root: true
 ​
 output.logstash:
   hosts: ["192.168.1.10:8888"]

(3)收集tomcat日志

 filebeat.inputs:
 - type: log
   paths: 
     - /root/software/apache-tomcat-10.1.28/logs/*.txt
   json.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)从可视化库中添加即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2095702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

逆向工程核心原理 Chapter22 | 恶意键盘记录器

教程这一章没给具体的实现,这里在Chapter21学习的基础上,试着实现一个键盘记录器。 键盘记录器实现 这里有个技术问题:记录下的敲击键(在KeyHook.dll中捕获的)(可以用wParam)怎么打印出来&…

二叉树和堆知识点

1 特殊二叉树 1. 满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是 说,如果一个二叉树的层数为K,且结点总数是 ,则它就是满二叉树。 2. 完全二叉树:完全…

前端打包部署,Nginx服务器启动

前端vue打包部署 前端vue打包部署,执行NPM脚本下的build vue-cli-service... 生成dist文件夹 Nginx服务器 将刚刚的静态资源部署到Nginx

小白学装修(准备阶段)

装修还是 实事求是 脚踏实地 多用心 多学习 视频: 你离摆脱装修小白身份,只差这一个视频!_哔哩哔哩_bilibili 本篇文章所涉及到的文件(记得给诡计从不拖更一件三联) 给诡计投币换的装修预算表资源-CSDN文库 住户…

【Python报错已解决】“ValueError: If using all scalar values, you must pass an index“

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言:一、问题描述1.1 报错示例:以下是一个可能引发上述错误的代码示例。1.2 报错分析&#x…

Docker 镜像构建

1、Docker 镜像结构 Docker镜像的结构是分层的,这种结构是Docker镜像轻量化和高效性的关键。每个Docker镜像都由一系列的“镜像层”(image layers)组成,这些层通过UnionFS(联合文件系统)技术叠加在一起&am…

磐石云语音识别引擎

磐石云发布了V1.2.2版本语音识别引擎。 经过严格客观的测试识别效果和阿里云、讯飞、火山进行了对比几乎无差。(欢迎对比测试) 上图是CPU下的流式识别效果 RTF0.1~0.14,也就是一并发一个小时大约处理7~10小时,这取决于硬件的配置&#xff0…

基于SpringBoot的教务与课程管理系统

💥💥源码和论文下载💥💥:基于SpringBoot的教务与课程管理系统源码论文报告数据库.rar 1. 系统介绍 随着计算机科学技术的迅猛进步及高等教育体系改革的持续深化,传统的教育管理方式、工具及其操作效率已经难…

APP测试(十一)

APP测试要点提取与分析 一、功能测试 APP是什么项目?核心业务功能梳理清楚 — 流程图分析APP客户端的单个功能模块 — 细化分析 需要使用等价类,边界值,考虑正常和异常情况(长度,数据类型,必填&#xff0…

JavaFX基本控件-Label

JavaFX基本控件-Label 常用属性textpaddingalignmenttextAlignmentwidthheighttooltipborderwrapTextellipsisStringunderline 实现方式Java实现fxml实现 常用属性 text 设置文本内容 label.setText("这是一个测试数据");padding 内边距 label.setPadding(new Inset…

Python计算机视觉四章-照相机模型与增强现实

目录 4.1针孔照相机模型 4.1.1照相机矩阵 4.1.2 三维点的投影 4.1.3 照相机矩阵的分解 4.1.4 计算照相机中心 4.2 照相机标定 4.2.1 一个简单的标定方法 4.3 以平面和标记物进行姿态估计 4.4 增强现实 4.4.1 PyGame和PyOpenGL 4.4.2 从照相机矩阵到OpenGL格式 4…

部署Rancher2.9管理K8S1.26集群

文章目录 一、实验须知1、Rancher简介2、当前实验环境 二、部署Rancher1、服务器初始化操作2、部署Rancher3、登入Rancher平台 三、Rancher对接K8S集群四、通过Rancher仪表盘部署Nginx服务1、创建命名空间2、创建Deployment3、创建Service 一、实验须知 1、Rancher简介 中文官…

碎碎恋之懒加载和预加载

目录 0 前言1 fragment复习1.1 静态创建1.2 动态创建1.3 两者生命周期1.4 fragment之间的通信 0 前言 懒加载,延迟加载;如kotlin中初始化;减小资源消耗,可以避免同一时间需要加载的内容过多。 预加载,提前加载&#x…

经典大语言模型解读(2):生成式预训练的先锋GPT-1

论文地址:Improving Language Understanding by Generative Pre-Training 概述 现实世界中包含了大量的文本语料数据,然而,绝大多数语料都是无标签的。 为了充分利用这些无标签语料库,GPT1.0提出直接利用这些未标记的语料来进行…

【BLE】三.GATT/ATT规范

基本概念回顾 CS交互流程 SPP(蓝牙透传)的示例初始化: SPP示例运行过程: GATTS&GAP回调: 黄色:事件回调 绿色:事件 蓝色:执行 GATTC&GAP回调: 服务特征…

安全入门day.04

一、密码存储加密知识点 1、MD5 MD5加密是一种广泛使用的密码杂凑函数,它可以将任意长度的信息通过一系列复杂的数学和位操作转化为一个128位(16字节)的散列值(hash value),这个散列值通常被表示为一个32位…

【Qt】工具栏

工具栏 工具栏是应用程序中集成各种功能实现快捷键使用的一个区域。 在Qt中使用QToolBar表示工具栏对象,一个窗口可以有多个工具栏,也可以没有,工具栏也是可以进行手动移动位置。 例子:创建工具栏 (1)创…

信息系统运维服务方案(Word原件完整版)

1 编制目的 2 系统运行维护 2.1 系统运维内容 2.2 日常运行维护方案 2.2.1 日常巡检 2.2.2 状态监控 2.2.3 系统优化 2.2.4 软件系统问题处理及升级 2.2.5 系统数据库管理维护 2.2.6 灾难恢复 2.3 应急运行维护方案 2.3.1 启动应急流程 2.3.2 成立应急小组 2.3.3 …

【hot100篇-python刷题记录】【轮转数组】

R7-数组篇 思路: 印象题,我记得可以使用python切片拼接 python切片 要轮转k个位置,那从第k个下标开始切片,然后拼接[0,k) class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not re…

云计算第二阶段---DBA Day8-Day9

DBA Day8 该阶段的2天内容,都会和数据库中间件,集群配置有关. 什么是中间件? 通俗来说,就是在正式文件内容从客户端发送或获取请求时,在传播过程中地点中间商,负责管理请求,并对其进行分类。 环境准备: 准备…