当前位置: 首页 > news >正文

每日一更 EFK日志分析系统

需要docker和docker-compose环境

下面时docker-compose.yaml文件

[root@node1 docker-EFK]# cat docker-compose.yaml 
version: '3.3'services:elasticsearch:image: "docker.elastic.co/elasticsearch/elasticsearch:7.17.5"container_name: elasticsearchrestart: alwaysenvironment:- "ES_JAVA_OPTS=-Xms512m -Xmx512m"- "discovery.type=single-node"- "cluster.name=myes"- "node.name=jeven"# - xpack.security.enabled: "false"ulimits:memlock:soft: -1hard: -1 networks:myefk:ipv4_address: 172.29.120.10aliases:- es- jevenports:- "9200:9200"- "9300:9300"volumes:- /home/docker-EFK/config/:/usr/share/elasticsearch/config- /home/docker-EFK/efk/es/data/:/usr/share/elasticsearch/datakibana:image: "docker.elastic.co/kibana/kibana:7.17.5"restart: alwaysenvironment:ELASTICSEARCH_URL: http://10.23.3.2:9200ELASTICSEARCH_HOSTS: '["http:/10.23.3.2:9200"]'I18N_LOCALE: zh-CNnetworks:myefk:ipv4_address: 172.29.120.20aliases:- kibana- kibports:- "5601:5601"links:- "elasticsearch"filebeat:image: "docker.elastic.co/beats/filebeat:7.17.5"restart: alwaysnetworks:myefk:ipv4_address: 172.29.120.30aliases:- filebeat- fbuser: rootcommand: ["--strict.perms=false"]volumes:- /home/docker-EFK/efk/filebeat.yaml:/usr/share/filebeat/filebeat.yml- /var/lib/docker:/var/lib/docker:ro- /var/run/docker.sock:/var/run/docker.socklinks:- "elasticsearch"- "kibana"elasticsearch-head:image: "tobias74/elasticsearch-head"container_name: elasticsearch-headrestart: alwaysnetworks:myefk:ipv4_address: 172.29.120.50ports:- "9100:9100"links:- "elasticsearch"networks:myefk:driver: bridgeipam:config:- subnet: 172.29.120.0/24

使用docker-compose up -d执行

使用docker ps 看容器状态。

[root@node1 docker-EFK]# docker ps
CONTAINER ID   IMAGE                                                  COMMAND                  CREATED          STATUS                          PORTS                                                                                  NAMES
42581fc03590   tobias74/elasticsearch-head                            "/bin/sh -c 'grunt s…"   5 minutes ago    Up 5 minutes                    0.0.0.0:9100->9100/tcp, :::9100->9100/tcp                                              elasticsearch-head
ce1464dc2726   docker.elastic.co/beats/filebeat:7.17.5                "/usr/bin/tini -- /u…"   19 minutes ago   Up 19 minutes                                                                                                          docker-efk_filebeat_1
fc979274d0f1   docker.elastic.co/kibana/kibana:7.17.5                 "/bin/tini -- /usr/l…"   19 minutes ago   Up 19 minutes                   0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              docker-efk_kibana_1
f5f94ba61d0b   docker.elastic.co/elasticsearch/elasticsearch:7.17.5   "/bin/tini -- /usr/l…"   19 minutes ago   Up 18 minutes                   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch

elasticsearch是日志存放的数据库,elasticsearch下的索引(Index)类似于关系型的一个数据库。文档(Document):Elasticsearch中的数据单位,可以理解为一条记录或一条消息。

elasticsearch-head就是一款能连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件。

ES相关术语

文档 Document

Document 文档就是用户存在 es 中的一些数据,它是 es 中存储的最小单元。(类似于表中的一行数据。)注意:每个文档都有一个唯一的 ID 表示,可以自行指定,如果不指定 es 会自动生成

索引 Index

索引其实是一堆文档 Document 的集合。(它类似数据库的中的一个表)

字段 Filed

在 ES 中,Document就是一个 Json Object,一个Json Object其实是由多个字段组成的,每个字段它有不同的数据类型。

ES术语总结

ES索引、文档、字段关系小结:
一个索引里面存储了很多的 Document 文档,一个文档就是一个json object,一个json object是由多个不同或相同的 filed 字段组成;

操作原理
ES的操作和我们传统的数据库操作不太一样,它是通过 RestfulAPI 方式进行对ES进行操作,其实本质上就是通过 http的方式去变更我们的资源状态。   
通过 URI 的方式指定要操作的资源,比如 Index、Document等。   
通过 Http Method 指明资源操作方法,如GET、POST、PUT、DELETE 等。

访问elasticsearch两种方式
  • curl命令本地访问
  • 安装kibana访问

kibana是一个

分析和可视化数据。搜索隐藏的见解,编制图表仪表板,仪表、地图和其他可视化显示您发现的内容,并与他人分享。
搜索、观察和保护你的数据。向你的应用或网站添加搜索框,分析日志,指标,并发现安全漏洞。
管理、监控和保护 Elastic Stack。管理您的索引和摄入管道,监控 Elastic Stack 集群的运行状况,并控制哪些用户可以访问哪些特征和数据。

kibana对es的增删改查,

kibana操作elasticsearch的索引
创建索引
#创建索引
PUT /cry_index

查看索引

#查看全部索引名 
GET _cat/indices

#查看指定索引 GET  索引名
GET filebeat-2024.06.29

PUT /ly_index 创建索引                {"acknowledged" : true,"shards_acknowledged" : true,"index" : "ly_index"}
GET /ly_index   查看索引{"ly_index" : {"aliases" : { },"mappings" : { },"settings" : {"index" : {"routing" : {"allocation" : {"include" : {"_tier_preference" : "data_content"}}},"number_of_shards" : "1","provided_name" : "ly_index","creation_date" : "1720143452731","number_of_replicas" : "1","uuid" : "FRaCW3lgSny9e11v8WSUmw","version" : {"created" : "7170599"}}}}
}
DELETE /ly_index     删除索引{"acknowledged" : true
}

kibana操作elasticsearch的文档

PUT /ly_index_01       创建索引POST /ly_index_01/_doc/1          创建索引下的文档
{"username": "oldxu","age": 18,"salary": 1000000
}

_doc为文档名

oldxu_index为索引名  ,没有将会自动创建

1 为文档id  如果不指定会随机创建

指定id的,

POST /oldxu_index/_doc/1
{"username": "oldqiang","age": 30,"salary": 300
}
结果:
{"_index" : "oldxu_index","_type" : "_doc","_id" : "1","_version" : 1,
。。。。。。。

不指定id的

POST /oldxu_index/_doc
{"username": "oldqiang","age": 30,"salary": 300
}
结果
{"_index" : "oldxu_index","_type" : "_doc","_id" : "wtKTgJAB9dAZABV53ccy","_version" : 1,

查询文档

查询文档时,需要指定要查询的文档id,不指定无法查找

GET /oldxu_index/_doc/1

GET /oldxu_index/_doc/1
结果
{"_index" : "oldxu_index","_type" : "_doc","_id" : "1","_version" : 1,"_seq_no" : 1,"_primary_term" : 1,"found" : true,"_source" : {"username" : "oldqiang","age" : 30,"salary" : 300}
}

不指定id,无法查找

GET /oldxu_index/_doc结果
{"error" : "Incorrect HTTP method for uri [/oldxu_index/_doc?pretty=true] and method [GET], allowed: [POST]","status" : 405
}

查询,搜索所有文档,用_search

GET /oldxu_index/_search

filebeat这里就是一个测试源,可以关闭,对es没有影响,后期需要安装到收集日志的服务器上。

问题1:

创建elasticsearch 是初期没有挂在config文件夹,后期则无法更改elasticsearch.yaml文件,但是再docker-compose.yaml中加入- /home/docker-EFK/config/:/usr/share/elasticsearch/config  后elasticsearch启动一直报错,起不来。查看logs 发现无法打开/usr/share/elasticsearch/config下的文件。解决的方法是,先不映射/usr/share/elasticsearch/config,启动后docker cp 容器id:/usr/share/elasticsearch/config  (宿主机目录)/home/docker-EFK/config/ 。把容器的这个目录拷贝到宿主机,然后再在yaml中加入- /home/docker-EFK/config/:/usr/share/elasticsearch/config。这样就可以了。

问题2:elasticsearch-head 启动成功后,浏览器http://10.23.3.2:9100可以正常访问,但是连不上elasticsearch,后查了一下,需要在elasticsearch.yaml添加两行内容

http.cors.enabled: true

http.cors.allow-origin: "*"

[root@node1 config]# cat elasticsearch.yml 
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled: true   
http.cors.allow-origin: "*"

重启容器 docker restart es的容器id,重启后,连接成功。

相关文章:

每日一更 EFK日志分析系统

需要docker和docker-compose环境 下面时docker-compose.yaml文件 [rootnode1 docker-EFK]# cat docker-compose.yaml version: 3.3services:elasticsearch:image: "docker.elastic.co/elasticsearch/elasticsearch:7.17.5"container_name: elasticsearchrestart: …...

python类继承和类变量

Python一些类继承和实例变量的使用 定义基类 class APIException:code 500msg "Sorry, error"error_code 999def __init__(self, msgNone):print("APIException init ...")def error_400(self):pass复用基类的属性值 class ClientTypeError(APIExcept…...

js 随机生成整数

随机生成一个唯一的整数 id export const randomId () > { return Date.now() Math.floor(Math.random() * 10000) } 生成随机ID的方法 // 随机生成0 - 9999 export const randomId ()> { return Math.floor(Math.random() * 10000).toString() } // 随机生成0-999之…...

深入Django(七)

Django的数据库迁移系统 引言 在前六天的教程中,我们介绍了Django的基本概念、模型、视图、模板、URL路由和表单系统。今天,我们将讨论Django的数据库迁移系统,它是管理和跟踪数据库变化的关键组件。 Django数据库迁移概述 Django的数据库…...

【区分vue2和vue3下的element UI Steps 步骤条组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 和 Vue 3 中,Element UI(针对 Vue 2)和 Element Plus(针对 Vue 3)提供了 Steps 步骤条组件,用于展示当前操作的进度步骤。虽然这两个库都提供了步骤条组件,但它们在属性、事件和方法的…...

uni-app x 跨平台开发框架

目录 uni-app x 是什么 和Flutter对比 uts语言 uvue渲染引擎 组合式API的写法 选项式API写法 页面生命周期 API pages.json全局配置文件 总结 uni-app x 是什么 uni-app x,是下一代 uni-app,是一个跨平台应用开发引擎。 uni-app x 是一个庞…...

YOLOv8模型调参---数据增强

目录 1.数据预处理 2.数据增强 2.1 数据增强的作用 2.2 数据增强方式与适用场景 2.2.1离线增强(Offline Augmentation) 2.2.2 在线增强(Online Augmentation) 3. 数据增强的具体方法 4. YOLOv8的数据增强 4.1 YOLOv8默认…...

【Nginx】docker运行Nginx及配置

Nginx镜像的获取 直接从Docker Hub拉取Nginx镜像通过Dockerfile构建Nginx镜像后拉取 二者区别 主要区别在于定制化程度和构建过程的控制: 直接拉取Nginx镜像: 简便性:直接使用docker pull nginx命令可以快速拉取官方的Nginx镜像。这个过程…...

tensorflow和numpy的版本

查看cuda版本 dpkg -l | grep cuda i libcudart11.0:amd64 11.5.117~11.5.1-1ubuntu1 amd64 NVIDIA CUDA Runtime Library ii nvidia-cuda-dev:amd64 11.5.1-1ubuntu1 …...

二维Gamma分布的激光点云去噪

目录 1、Gamma 分布简介2、实现步骤 1、Gamma 分布简介 Gamma 分布在合成孔径雷达( Synthetic Aperture Radar,SAR) 图像分割中具有广泛应用,较好的解决了SAR 图像中相干斑噪声对图像分割的影响。采用二维Gamma 分布对…...

鸿蒙笔记导航栏,路由,还有axios

1.导航组件 导航栏位置可以调整,导航栏位置 Entry Component struct t1 {build() {Tabs(){TabContent() {Text(qwer)}.tabBar("首页")TabContent() {Text(发现内容)}.tabBar(发现)TabContent() {Text(我的内容)}.tabBar("我的")}// 做平板适配…...

Spring 框架中都用到了哪些设计模式:单例模式、策略模式、代理模式

Spring 框架是一个功能强大的企业级应用开发框架,它使用了多种设计模式来提高代码的可维护性、可扩展性和可重用性。以下是 Spring 框架中常见的几个设计模式,并简要说明它们的应用场景: 1. 单例模式(Singleton Pattern) 定义:确保一个类只有一个实例,并提供全局访问点…...

阶段总结——基于深度学习的三叶青图像识别

阶段总结——基于深度学习的三叶青图像识别 文章目录 一、计算机视觉图像分类系统设计二、训练模型2.1. 构建数据集2.2. 网络模型选择2.3. 图像数据增强与调参2.4. 部署模型到web端2.5. 开发图像识别小程序 三、实验结果3.1. 模型训练3.2. 模型部署 四、讨论五、参考文献&#…...

深度解析Java世界中的对象镜像:浅拷贝与深拷贝的奥秘与应用

在Java编程的浩瀚宇宙中,对象拷贝是一项既基础又至关重要的技术。它直接关系到程序的性能、资源管理及数据安全性。然而,提及对象拷贝,不得不深入探讨其两大核心类型:浅拷贝(Shallow Copy)与深拷贝&#xf…...

Python | Leetcode Python题解之第218题天际线问题

题目: 题解: class Solution:def getSkyline(self, buildings: List[List[int]]) -> List[List[int]]:buildings.sort(keylambda bu:(bu[0],-bu[2],bu[1]))buildings.append([inf,inf,inf])heap [[-inf,-inf,-inf]]ans []for l,r,h in buildings:i…...

使用Spring Boot构建RESTful API

使用Spring Boot构建RESTful API 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,我们将深入探讨如何使用Spring Boot构建RESTful API。通过这篇…...

Spark快速大数据分析PDF下载读书分享推荐

《Spark 快速大数据分析》是一本为 Spark 初学者准备的书,它没有过多深入实现细节,而是更多关注上层用户的具体用法。不过,本书绝不仅仅限于 Spark 的用法,它对 Spark 的核心概念和基本原理也有较为全面的介绍,让读者能…...

Centos7离线安装mysql-5.7.44bundle包

在 CentOS 7 上安装 mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar(这里假设这是一个包含多个 RPM 包的 tar 归档文件)的步骤通常涉及解压归档文件、安装 RPM 包以及配置 MySQL 服务。以下是一个详细的步骤指南: 1. 下载和解压 RPM 包 首先&am…...

ROS melodic版本卸载---Ubuntu18.04

sudo apt-get remove ros-melodic-desktop-fullsudo apt-get remove gazebo* 删除依赖关系 sudo apt autoremove删除与ros关联的所有文件 sudo apt-get purge ros-* sudo rm -rf /etc/ros找到.bashrc文件删除含ros的环境配置语句 全部删除完毕,可以去计算机下的…...

Java面试之Java多线程常见面试题

1、什么是线程? 定义:线程是程序中的执行路径,是操作系统进行调度的基本单位。它允许程序并发执行多个任务,提高程序的响应速度和资源利用率。 2、为什么需要线程? 1、提高并发性:线程允许程序同时执行多…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...