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

wazuh初探系列一 : wazuh环境配置

目录

方法一:一体化部署

安装先决条件

第一步、安装所有必需的软件包

第二步、安装Elasticsearch

1、添加 Elastic Stack 存储库

安装 GPG 密钥:

添加存储库:

更新源:

2、Elasticsearch安装和配置

安装 Elasticsearch 包:

下载配置文件/etc/elasticsearch/elasticsearch.yml

3、创建和部署证书

下载用于创建证书的配置文件

用elasticsearch-certutil工具创建证书

提取/usr/share/elasticsearch/certs.zip上一步生成的文件

创建目录/etc/elasticsearch/certs,然后将 CA 文件、证书和密钥复制到其中

启用并启动 Elasticsearch 服务

为所有 Elastic Stack 预构建角色和用户生成凭证

上面的命令将提示这样的输出,保存用户的密码elastic以进行进一步的步骤:

要检查安装是否成功,请运行以下命令,替换上一步中为用户生成的密码elastic:

该命令应该有如下输出:

第三步、安装 Wazuh 服务器

1、添加 Wazuh 存储库

安装 GPG 密钥

添加存储库

更新包信息

2、安装 Wazuh 管理器

安装 Wazuh 管理器包

启用并启动 Wazuh 管理器服务

运行以下命令检查 Wazuh 管理器是否处于活动状态

第四步、安装Filebeat

1、安装 Filebeat 包

安装 Filebeat 包

下载用于将 Wazuh 警报转发到 Elasticsearch 的预配置 Filebeat 配置文件

下载 Elasticsearch 的警报模板

下载 Filebeat 的 Wazuh 模块

编辑该文件/etc/filebeat/filebeat.yml并添加以下行

将证书复制到/etc/filebeat/certs/

启用并启动Filebeat服务

为确保Filebeat已成功安装,请运行以下命令:

该命令应该有如下输出:

第五步、Kibana安装和配置

1、安装 Kibana 包

2、将 Elasticsearch 证书复制到 Kibana 配置文件夹中

3、下载 Kibana 配置文件

4、创建/usr/share/kibana/data目录

5、安装 Wazuh Kibana 插件。插件的安装必须从 Kibana 主目录完成,如下所示

6、将 Kibana 的套接字链接到特权端口 443

7、启用并启动 Kibana 服务

8、使用Elasticsearch安装过程中生成的密码访问Web界面

方法二:将 Wazuh VM 导入主机操作系统

硬件要求

导入并访问虚拟机

访问 Wazuh 仪表板

配置文件

VirtualBox时间配置

基础配置

下载Vim

下载网络工具包

查看wazuh主要配置文件目录

登录成功,配置完成!!


方法一:一体化部署

安装先决条件

安装时需要一些额外的软件包,例如curlunzip,这些软件包将在后续步骤中使用。但是,如果服务器上已安装curl和 ,则可以跳过此步骤。unzip

准备条件:一个纯净的ubuntu环境

下载vim:

root@wazuh:/home/ubuntu# apt-get install vim 

第一步、安装所有必需的软件包

root@wazuh:/home/ubuntu# apt-get install apt-transport-https zip unzip lsb-release curl gnupg 

第二步、安装Elasticsearch

1、添加 Elastic Stack 存储库

  • 安装 GPG 密钥:

root@wazuh:/home/ubuntu# curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/elasticsearch.gpg --import && chmod 644 /usr/share/keyrings/elasticsearch.gpg

  • 添加存储库:

root@wazuh:/home/ubuntu# echo "deb [signed-by=/usr/share/keyrings/elasticsearch.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list

  

  • 更新源:

root@wazuh:/home/ubuntu# apt-get update

2、Elasticsearch安装和配置

  • 安装 Elasticsearch 包:

root@wazuh:/home/ubuntu# apt-get install elasticsearch=7.17.9

这一步需要比较长的时间,请耐心等待……

  • 下载配置文件/etc/elasticsearch/elasticsearch.yml

root@wazuh:/home/ubuntu# curl -so /etc/elasticsearch/elasticsearch.yml https://packages.wazuh.com/4.5/tpl/elastic-basic/elasticsearch_all_in_one.yml

3、创建和部署证书

  • 下载用于创建证书的配置文件

root@wazuh:/home/ubuntu# curl -so /usr/share/elasticsearch/instances.yml https://packages.wazuh.com/4.5/tpl/elastic-basic/instances_aio.yml

在以下步骤中,将创建一个文件,其中包含以此处定义的实例命名的文件夹。该文件夹将包含使用 SSL 与 Elasticsearch 节点通信所需的证书和密钥。

  • 用elasticsearch-certutil工具创建证书

root@wazuh:/home/ubuntu# /usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --keep-ca-key --out ~/certs.zip

  • 提取/usr/share/elasticsearch/certs.zip上一步生成的文件

root@wazuh:/home/ubuntu# unzip ~/certs.zip -d ~/certs

  • 创建目录/etc/elasticsearch/certs,然后将 CA 文件、证书和密钥复制到其中

root@wazuh:/home/ubuntu# mkdir /etc/elasticsearch/certs/ca -p root@wazuh:/home/ubuntu# cp -R ~/certs/ca/ ~/certs/elasticsearch/* /etc/elasticsearch/certs/ root@wazuh:/home/ubuntu# chown -R elasticsearch: /etc/elasticsearch/certs root@wazuh:/home/ubuntu# chmod -R 500 /etc/elasticsearch/certs root@wazuh:/home/ubuntu# chmod 400 /etc/elasticsearch/certs/ca/ca.* /etc/elasticsearch/certs/elasticsearch.* root@wazuh:/home/ubuntu# rm -rf ~/certs/ ~/certs.zip

  • 启用并启动 Elasticsearch 服务

root@wazuh:/home/ubuntu# systemctl daemon-reload

root@wazuh:/home/ubuntu# systemctl enable elasticsearch

root@wazuh:/home/ubuntu# systemctl start elasticsearch

  • 为所有 Elastic Stack 预构建角色和用户生成凭证

root@wazuh:/home/ubuntu# /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

上面的命令将提示这样的输出,保存用户的密码elastic以进行进一步的步骤:

要检查安装是否成功,请运行以下命令,替换<elastic_password>上一步中为用户生成的密码elastic

root@wazuh:/home/ubuntu# curl -XGET https://localhost:9200 -u elastic:N0l6skCKtAV0ZAi10PXM -k

该命令应该有如下输出:

第三步、安装 Wazuh 服务器

1、添加 Wazuh 存储库

  • 安装 GPG 密钥

root@wazuh:/home/ubuntu# curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg

  • 添加存储库

root@wazuh:/home/ubuntu# echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list

  • 更新包信息

root@wazuh:/home/ubuntu# apt-get update

2、安装 Wazuh 管理器

  • 安装 Wazuh 管理器包

root@wazuh:/home/ubuntu# apt-get install wazuh-manager

  • 启用并启动 Wazuh 管理器服务

root@wazuh:/home/ubuntu# systemctl daemon-reload

root@wazuh:/home/ubuntu# systemctl enable wazuh-manager

root@wazuh:/home/ubuntu# systemctl start wazuh-manager

  • 运行以下命令检查 Wazuh 管理器是否处于活动状态

root@wazuh:/home/ubuntu# systemctl status wazuh-manager

第四步、安装Filebeat

Filebeat 是 Wazuh 服务器上的工具,可将警报和存档事件安全地转发到 Elasticsearch。

1、安装 Filebeat 包

  • 安装 Filebeat 包

root@wazuh:/home/ubuntu# apt-get install filebeat=7.17.9

  • 下载用于将 Wazuh 警报转发到 Elasticsearch 的预配置 Filebeat 配置文件

root@wazuh:/home/ubuntu# curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.5/tpl/elastic-basic/filebeat_all_in_one.yml

  • 下载 Elasticsearch 的警报模板

root@wazuh:/home/ubuntu# curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.5/extensions/elasticsearch/7.x/wazuh-template.json

root@wazuh:/home/ubuntu# chmod go+r /etc/filebeat/wazuh-template.json

  • 下载 Filebeat 的 Wazuh 模块

root@wazuh:/home/ubuntu# curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xvz -C /usr/share/filebeat/module

  • 编辑该文件/etc/filebeat/filebeat.yml并添加以下行

root@wazuh:/home/ubuntu# vim /etc/filebeat/filebeat.yml

替换elasticsearch_password为之前为用户生成的密码elastic

output.elasticsearch.password: <elasticsearch_password>

  • 将证书复制到/etc/filebeat/certs/

root@wazuh:/home/ubuntu# cp -r /etc/elasticsearch/certs/ca/ /etc/filebeat/certs/ root@wazuh:/home/ubuntu# cp /etc/elasticsearch/certs/elasticsearch.crt /etc/filebeat/certs/filebeat.crt

root@wazuh:/home/ubuntu# cp /etc/elasticsearch/certs/elasticsearch.key /etc/filebeat/certs/filebeat.key

  • 启用并启动Filebeat服务

root@wazuh:/home/ubuntu# systemctl daemon-reload

root@wazuh:/home/ubuntu# systemctl enable filebeat

root@wazuh:/home/ubuntu# systemctl start filebeat

为确保Filebeat已成功安装,请运行以下命令:

root@wazuh:/home/ubuntu# filebeat test output

该命令应该有如下输出:

第五步、Kibana安装和配置

Kibana 是一个灵活直观的 Web 界面,用于挖掘和可视化存储在 Elasticsearch 中的事件和档案。

1、安装 Kibana 包

root@wazuh:/home/ubuntu# apt-get install kibana=7.17.9

2、将 Elasticsearch 证书复制到 Kibana 配置文件夹中

root@wazuh:/home/ubuntu# mkdir /etc/kibana/certs/ca -p

root@wazuh:/home/ubuntu# cp -R /etc/elasticsearch/certs/ca/ /etc/kibana/certs/ root@wazuh:/home/ubuntu# cp /etc/elasticsearch/certs/elasticsearch.key /etc/kibana/certs/kibana.key

root@wazuh:/home/ubuntu# cp /etc/elasticsearch/certs/elasticsearch.crt /etc/kibana/certs/kibana.crt

root@wazuh:/home/ubuntu# chown -R kibana:kibana /etc/kibana/ root@wazuh:/home/ubuntu# chmod -R 500 /etc/kibana/certs

root@wazuh:/home/ubuntu# chmod 440 /etc/kibana/certs/ca/ca.* /etc/kibana/certs/kibana.*

3、下载 Kibana 配置文件

root@wazuh:/home/ubuntu# curl -so /etc/kibana/kibana.yml https://packages.wazuh.com/4.5/tpl/elastic-basic/kibana_all_in_one.yml

编辑/etc/kibana/kibana.yml文件:

root@wazuh:/home/ubuntu# vim /etc/kibana/kibana.yml

要替换的值:

elasticsearch.password: <elasticsearch_password>

N0l6skCKtAV0ZAi10PXM

<elasticsearch_password>`:Elasticsearch安装和配置过程中为用户生成的密码`elastic`

4、创建/usr/share/kibana/data目录

root@wazuh:/home/ubuntu# mkdir /usr/share/kibana/data

root@wazuh:/home/ubuntu# chown -R kibana:kibana /usr/share/kibana

5、安装 Wazuh Kibana 插件。插件的安装必须从 Kibana 主目录完成,如下所示

root@wazuh:/home/ubuntu# cd /usr/share/kibana

root@wazuh:/usr/share/kibana# sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.5.0_7.17.9-1.zip

6、将 Kibana 的套接字链接到特权端口 443

root@wazuh:/home/ubuntu# setcap 'cap_net_bind_service=+ep' /usr/share/kibana/node/bin/node

7、启用并启动 Kibana 服务

root@wazuh:/home/ubuntu# systemctl daemon-reload

root@wazuh:/home/ubuntu# systemctl enable kibana

root@wazuh:/home/ubuntu# systemctl start kibana

8、使用Elasticsearch安装过程中生成的密码访问Web界面

URL: https://<wazuh_server_ip>  

user: elastic password: <PASSWORD_elastic>

N0l6skCKtAV0ZAi10PXM

登录成功,awzuh环境配置基本完成!!!

方法二:将 Wazuh VM 导入主机操作系统

硬件要求

在将 Wazuh VM 导入主机操作系统之前,必须满足以下要求:

  • 主机操作系统必须是 64 位系统。

  • 必须在主机的固件上启用硬件虚拟化。

  • 主机系统上应安装虚拟化平台,例如 VirtualBox。

Wazuh VM 开箱即用以下规格进行配置:

成分CPU(核心)内存(GB)存储空间(GB)
Wazuh v4.5.0 OVA4850

但是,可以根据受保护端点和索引警报数据的数量来修改此硬件配置。

导入并访问虚拟机

  1. 将 OVA 导入虚拟化平台。

  2. 如果您使用 VirtualBox,请设置VMSVGA图形控制器。设置另一个图形控制器会冻结 VM 窗口。

    1. 选择导入的虚拟机。

    2. 单击设置>显示

    3. 图形控制器中,选择该VMSVGA选项。

  3. 启动机器。

  4. 使用以下用户名和密码访问虚拟机。您可以使用虚拟化平台或通过 SSH 访问它。

  5. user: wazuh-user password: wazuh

    SSHroot用户登录已被停用;尽管如此,仍wazuh-user保留 sudo 权限。Root权限提升可以通过执行以下命令来实现:

    sudo -i

访问 Wazuh 仪表板

启动 VM 后不久,可以使用以下凭据从 Web 界面访问 Wazuh 仪表板:

URL: https://<wazuh_server_ip>
user: admin
password: admin

您可以<wazuh_server_ip> 通过在VM中输入以下命令来找到:

ip a

配置文件

该虚拟映像中包含的所有组件均配置为开箱即用,无需修改任何设置。然而,所有组件都可以完全定制。这些是配置文件位置:

  • wazuh manager:/var/ossec/etc/ossec.conf

  • Wazuh 索引器:/etc/wazuh-indexer/opensearch.yml

  • Filebeat-OSS:/etc/filebeat/filebeat.yml

  • 瓦祖仪表板:

    • /etc/wazuh-dashboard/opensearch_dashboards.yml

    • /usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml

VirtualBox时间配置

在使用 VirtualBox 的情况下,一旦导入虚拟机,当 VirtualBox 同步客户计算机的时间时,可能会遇到由于时间偏差而导致的问题。为了避免这种情况,请在虚拟机配置选项卡中启用该选项。Hardware Clock in UTC Time``System

默认情况下,网络接口类型设置为桥接适配器。VM 将尝试从网络 DHCP 服务器获取 IP 地址。或者,可以通过在 VM 所基于的 Amazon Linux 操作系统中配置适当的网络文件来设置静态 IP 地址。

虚拟机导入并运行后,下一步就是在要监控的系统上部署 Wazuh 代理。

在官网下载.ova文件,之后在VM中导入即可

https://packages.wazuh.com/4.x/vm/wazuh-4.5.0.ova

配置名称,路径,点击导入即可

将默认桥接模式改为NET模式,这样才能查询到IP地址

好处:可以不用配置环境,直接使用

基础配置

下载Vim

下载网络工具包

[root@wazuh-server ~]# yum -y install net-tools

查看wazuh主要配置文件目录

[root@wazuh-server ~]# cd /var/ossec/

账号: username:admin

password:admin

登录成功,配置完成!!

相关文章:

wazuh初探系列一 : wazuh环境配置

目录 方法一&#xff1a;一体化部署 安装先决条件 第一步、安装所有必需的软件包 第二步、安装Elasticsearch 1、添加 Elastic Stack 存储库 安装 GPG 密钥&#xff1a; 添加存储库&#xff1a; 更新源&#xff1a; 2、Elasticsearch安装和配置 安装 Elasticsearch 包…...

【2023】Spring Validation中@NotNull注解、@NotBlank注解介绍以及使用

【2023】Spring Validation中NotNull注解、NotBlank注解介绍以及使用 前言一、简介spring-validation框架的常用注解 二、代码实现添加依赖1、实体举例2、Controller层:3、统一异常处理4、结果返回验证通过返回验证失败返回 前言 平常我们在编写代码的时候总需要很多if判空&am…...

nodejs+vue养老院管理系统 u1yrv

本智慧养老中心管理系统是为了提高用户查阅信息的效率和管理人员管理信息的工作效率&#xff0c;可以快速存储大量数据&#xff0c;还有信息检索功能&#xff0c;这大大的满足了老人信息和管理员这两者的需求。操作简单易懂&#xff0c;合理分析各个模块的功能&#xff0c;尽可…...

高效PDF校对:释放高质量内容的力量

在数字化世界中&#xff0c;内容是王者。随着企业和个人越来越依赖数字文档进行沟通、分享和创新&#xff0c;我们在PDF中传递的内容的质量变得至关重要。在这里&#xff0c;我们将探索高效的PDF校对如何帮助您释放高质量内容的真正潜力。 超越仅仅是“正确” 当我们谈论PDF校…...

【Git游戏】提交的技巧

修改历史的提交 rebase 通过git rebase -i 将要修改的提交提到最前端&#xff0c; 然后修改&#xff0c;再通过git commit --amend提交该记录&#xff0c;最后通过git rebase -i 在替换会原始的位置 &#xff08;该过程中有可能会产生rebase confict&#xff09; cherry-pick …...

SQL注入读写文件

文章目录 条件利用SQL注入漏洞读取hosts文件查看文件读写权限安全选项允许导入导出读取hosts文件 利用SQL注入漏洞写入一句话木马&#xff0c;并用蚁剑连接webshell写入文件 条件 SQL注入有直接SQL注入&#xff0c;也有文件读写时的注入&#xff0c;后者的主要 目的在于获取web…...

stm32之12.如何使用printf打印输出

主函数增加这些代码即可实现printf打印输出 需要添加头文件 #include "stdio.h" --------------- 源码 struct __FILE { int handle; /* Add whatever you need here */ }; FILE __stdout; FILE __stdin; int fputc(int c, FILE *f) { /* 发送一个字节 */ …...

敏感挂载hotplug容器逃逸分析与复现

前言 分析 实验 echo /path/to/hotplug/script > /proc/sys/kernel/hotplug 直接挂载设备即可&#xff0c;虚拟机直接启动或者卸载一下声卡就行 参考 Linux uevent分析、用户接收uevent以及mdev分析 - ArnoldLu - 博客园 (cnblogs.com)...

RTThread学习有关的Keil的两个符号 $Sub$ $main 与 $Super$ $main

Keil的两个符号$Sub$ $与 $Super$ $是其做的打“补丁”功能 具体调用方法就是程序中包含有main函数&#xff0c;和 $Sub$ $main 、 $Super$ $main 两个符号 源码先放出来 /* re-define main function */ int $Sub$$main(void) {rtthread_startup();return 0; }/*** brief Thi…...

Python实现企业微信群告警

Python实现企业微信告警 1. 创建企业微信群机器人 1-1. 什么是企业微信群机器人&#xff1f; 企业微信群机器人是企业微信平台提供的一种功能&#xff0c;可以通过Webhook方式将消息发送到指定的企业微信群中。它可以用于自动化发送通知、告警等信息&#xff0c;实现监控和信…...

python基础教程:re模块用法详解

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 一、正则表达式的特殊字符介绍 正则表达式 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方&#xff0c;赶紧点击了解吧~ 素材、视频教程、完整代码、插件安装教程我都准备好了&a…...

基于亚马逊云科技无服务器服务快速搭建电商平台——部署篇

受疫情影响消费者习惯发生改变&#xff0c;刺激了全球电商行业的快速发展。除了依托第三方电商平台将产品销售给消费者之外&#xff0c;企业通过品牌官网或者自有电商平台销售商品也是近几年电商领域快速发展的商业模式。独立站电商模式可以进行多方面、全渠道的互联网市场拓展…...

git介绍+集成到IDEA中+使用gitee

目录 git介绍 本地工作流程 IDEA集git 添加到暂存区 添加到本地仓库 gitee使用 添加到远程仓库 git介绍 git是一个开源的分布式版本控制工具&#xff0c;效率高。可以记录历史代码&#xff0c;多人代码共享 知识小点&#xff1a; 集中式版本控制&#xff1a;使用中央存…...

【java】【项目实战】[外卖四]分类管理业务开发

前言&#xff1a;公共字段自动填充实现&#xff0c;删除业务逻辑实现 一、公共字段自动填充 1.1 问题分析 1.2 代码实现 1.2.1 修改实体类Employee package com.runa.reggie.entity;import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.…...

【Go 基础篇】Go语言包详解:模块化开发与代码复用

介绍 在Go语言中&#xff0c;包&#xff08;Package&#xff09; 是一种用于组织代码的机制&#xff0c;用于将相关的函数、类型和变量等组织在一起&#xff0c;以便于模块化开发和代码复用。包的使用能够使程序结构更加清晰、可维护性更高&#xff0c;同时也是Go语言强调的一…...

【业务功能篇82】微服务SpringCloud-ElasticSearch-Kibanan-docke安装-进阶实战

四、ElasticSearch进阶 https://www.elastic.co/guide/en/elasticsearch/reference/7.4/getting-started-search.html 1.ES中的检索方式 在ElasticSearch中支持两种检索方式 通过使用REST request URL 发送检索参数(uri检索参数)通过使用 REST request body 来发送检索参数…...

【工具】XML和JSON互相转换

1、JSON解析为XML function parseJSONToXML(json) {let xmlDoc document.implementation.createDocument(null, );function parseValue(value, parentElement) {if (Array.isArray(value)) {for (let item of value) {let arrayElement xmlDoc.createElement(parentElement.…...

前端面试:【浏览器与渲染引擎】Web APIs - DOM、XHR、Fetch、Canvas

嗨&#xff0c;亲爱的读者&#xff01;当我们在浏览器中浏览网页时&#xff0c;我们常常会与各种Web API打交道。这些API允许我们与网页内容、服务器资源和图形进行交互。本文将深入探讨一些常见的Web API&#xff0c;包括DOM、XHR、Fetch和Canvas&#xff0c;以帮助你了解它们…...

编码基础一:侵入式链表

一、简介概述 1、普通链表数据结构 每个节点的next指针指向下一个节点的首地址。这样会有如下的限制&#xff1a; 一条链表上的所有节点的数据类型需要完全一致。对某条链表的操作如插入&#xff0c;删除等只能对这种类型的链表进行操作&#xff0c;如果链表的类型换了&#…...

深圳IT行业供需:蓬勃发展的科技中心

深圳作为中国的科技中心之一&#xff0c;IT行业在这座城市蓬勃发展。本文将探讨深圳IT行业的供需状况&#xff0c;包括就业机会、技能需求以及行业前景展望。 近年来&#xff0c;深圳IT行业迅速发展&#xff0c;成为全球科技创新的重要枢纽之一。随着大量的科技企业和初创公司在…...

LeetCode 面试题 02.01. 移除重复节点

文章目录 一、题目二、C# 题解 一、题目 编写代码&#xff0c;移除未排序链表中的重复节点。保留最开始出现的节点。 点击此处跳转题目。 示例1: 输入&#xff1a;[1, 2, 3, 3, 2, 1] 输出&#xff1a;[1, 2, 3] 示例2: 输入&#xff1a;[1, 1, 1, 1, 2] 输出&#xff1a;[1, …...

【Java8特性】——Stream API

一、概述 <1> 是什么 是数据渠道&#xff0c;用于操作数据源&#xff08;集合、数组等&#xff09;所生成的元素序列。 Stream 不会存储数据Stream 不会改变数据源&#xff0c;相反&#xff0c;会返回一个持有结果的新Stream。Stream 操作是延迟执行的&#xff0c;这意…...

grep命令的用法

文章目录 前言一、使用说明二、应用举例 前言 grep 命令用于查找文件里符合条件的字符串。 一、使用说明 -r: 如果需要搜索目录中的文件内容, 需要进行递归操作, 必须指定该参数 -i: 对应要搜索的关键字, 忽略字符大小写的差别 -n: 在显示符合样式的那一行之前&#xff0c;标…...

【无标题】jenkins消息模板(飞书)

这里写目录标题 Jenkins 安装的插件 发送消息到飞书预览 1 &#xff08;单Job&#xff09;预览 2 &#xff08;多Job&#xff0c;概览&#xff09; Jenkins 安装的插件 插件名称作用Rebuilder Rebuilder。 官方地址&#xff1a;https://plugins.jenkins.io/rebuild 安装方式&a…...

2023年国赛 高教社杯数学建模思路 - 案例:随机森林

文章目录 1 什么是随机森林&#xff1f;2 随机深林构造流程3 随机森林的优缺点3.1 优点3.2 缺点 4 随机深林算法实现 建模资料 ## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林&#xff…...

element Collapse 折叠面板 绑定事件

1. 点击面板触发事件 change <el-collapse accordion v-model"activeNames" change"handleChange"><el-collapse-item title"一致性 Consistency"><div>与现实生活一致&#xff1a;与现实生活的流程、逻辑保持一致&#xff0c…...

CSS :mix-blend-mode、aspect-ratio

mix-blend-mode 元素的内容应该与元素的直系父元素的内容和元素的背景如何混合。 mix-blend-mode: normal; // 正常mix-blend-mode: multiply; // 正片叠底mix-blend-mode: screen; // 滤色mix-blend-mode: overlay; // 叠加mix-blend-mode: darken; // 变暗mix-blend-mode: …...

Module not found: Error: Can‘t resolve ‘less-loader‘解决办法

前言&#xff1a; 主要是在自我提升方面&#xff0c;感觉自己做后端还是需要继续努力&#xff0c;争取炮筒前后端&#xff0c;作为一个全栈软阿金开发人员&#xff0c;所以还是需要努力下&#xff0c;找个方面&#xff0c;目前是计划学会Vue&#xff0c;这样后端有java和pytho…...

量化QAT QLoRA GPTQ

模型量化的思路可以分为PTQ&#xff08;Post-Training Quantization&#xff0c;训练后量化&#xff09;和QAT&#xff08;Quantization Aware Training&#xff0c;在量化过程中进行梯度反传更新权重&#xff0c;例如QLoRA&#xff09;&#xff0c;GPTQ是一种PTQ的思路。 QAT…...

CentOS下查看 ssd 寿命

SSD写入量达到设计极限&#xff0c;颗粒擦写寿命耗尽后会导致磁盘写入速度非常缓慢&#xff0c;读取正常。 使用smartctl及raid卡管理软件查看硬盘smart信息可以发现Media_Wearout_Indicator值降为1&#xff0c;表明寿命完全耗尽。 涉及范围 所有SSD处理方案 查看SSD smart信…...

Node基础--npm相关内容

下面,我们一起来看看Node中的至关重要的一个知识点-----npm 1.npm概述 npm(Node Package Manager),CommonJS包规范是理论,npm是其中一种实践。 对于Node而言,NPM帮助其完成了第三方模块的发布、安装和依赖等。借助npm,Node与第三方模块之间形成了很好的一个 生态系统。(类…...

Python图片爬虫工具

不废话了&#xff0c;直接上代码&#xff1a; import re import os import requests import tqdmheader{User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36}def getImg(url,idx,path):imgre…...

制造执行系统(MES)在汽车行业中的应用

汽车行业在不断发展中仍然面临一些挑战和痛点。以下是一些当前汽车行业可能面临的问题&#xff1a; 1.电动化和可持续性转型&#xff1a;汽车行业正逐渐向电动化和可持续性转型&#xff0c;但这需要投入大量资金和资源&#xff0c;包括电池技术、充电基础设施等&#xff0c;同时…...

Spring与Mybatis集成且Aop整合

目录 一、集成 1.1 集成的概述 1.2 集成的优点 1.3 代码示例 二、整合 2.1 整合概述 2.2 整合进行分页 一、集成 1.1 集成的概述 集成是指将不同的组件、部分或系统组合在一起&#xff0c;以形成一个整体功能完整的解决方案。它是通过连接、交互和协调组件之间的关系来实…...

【nonebot-plugin-mystool】快速安装使用nonebot-plugin-mystool

快速安装使用nonebot-plugin-mystool&#xff0c;以qq为主 前期准备&#xff1a;注册一个QQ号&#xff0c;python3.9以上的版本安装&#xff0c;go-cqhttp下载 用管理员模式打开powershell&#xff0c;并输入以下命令 #先排查是否有安装过的nonebot,若有则删除 pip uninstal…...

js实现数据关联查找更新。数据求和验证

为了实现这个功能我们和后端定义了数据结构 data:{id&#xff1a;‘’&#xff0c;formInfo:,formInfo2:,formInfo3:,formInfo4:, ......deailData:[ // 明细数据 // saleData 查询带出的对应明细序列号数据{ id:, ocopyId:, copyId:, odoId:, ......, saleData:[ { id:, oc…...

区块链上地址与银行账户有什么区别?

在区块链世界中&#xff0c;除了交易还有另一个基础要素&#xff1a;地址。在日前推出的Onchain AML合规技术方案&#xff0c;也有一个与区块链地址密切相关的概念&#xff1a;KYA(Know Your Address&#xff0c;了解你的地址)。 那问题来了&#xff0c;区块链地址究竟有什么用…...

CF 148 D Bag of mice(概率dp求概率)

CF 148 D. Bag of mice(概率dp求概率) Problem - 148D - Codeforces 大意&#xff1a;袋子里有 w 只白鼠和 b 只黑鼠 &#xff0c;A和B轮流从袋子里抓&#xff0c;谁先抓到白色谁就赢。A每次随机抓一只&#xff0c;B每次随机抓完一只之后会有另一只随机老鼠跑出来。如果两个人…...

引入本地 jar 包教程

将本地 jar 包&#xff0c;放到 resource 目录下&#xff0c;在 pom.xml 文件中加入如下依赖&#xff1a; <dependency><groupId>com.hk</groupId><artifactId>examples</artifactId><version>1.0</version><scope>system<…...

优维产品最佳实践第5期:什么是持续集成?

谈到到DevOps&#xff0c;持续交付流水线是绕不开的一个话题&#xff0c;相对于其他实践&#xff0c;通过流水线来实现快速高质量的交付价值是相对能快速见效的&#xff0c;特别对于开发测试人员&#xff0c;能够获得实实在在的收益。 本期EasyOps产品使用最佳实践&#xff0c…...

空时自适应处理用于机载雷达——元素空间空时自适应处理(Matla代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

聚观早报 | 青瓷游戏上半年营收3.34亿元;如祺出行冲击IPO

【聚观365】8月26日消息 青瓷游戏上半年营收3.34亿元 如祺出行冲击IPO 索尼互动娱乐将收购Audeze 昆仑万维上半年净利润3.6亿元 T-Mobile计划在未来五周内裁员5000人 青瓷游戏上半年营收3.34亿元 青瓷游戏发布截至2023年6月30日止的中期业绩&#xff0c;财报显示&#xf…...

硅谷的魔法:如何塑造了全球技术的未来

硅谷的创新文化简介 硅谷&#xff0c;位于美国加利福尼亚州的圣克拉拉谷&#xff0c;已经从一个半导体产业的中心发展成为全球技术创新的代名词。这里集结了全球最顶尖的技术公司、创业者和投资者&#xff0c;共同创造了一个技术创新的奇迹。 起源与发展 硅谷的起源与斯坦福大…...

(三)行为模式:4、迭代器模式(Iterator Pattern)(C++示例)

目录 1、迭代器模式&#xff08;Iterator Pattern&#xff09;含义 2、迭代器模式的UML图学习 3、迭代器模式的应用场景 4、迭代器模式的优缺点 &#xff08;1&#xff09;优点 &#xff08;2&#xff09;缺点 5、C实现迭代器模式的实例 1、迭代器模式&#xff08;Itera…...

React Antd form.getFieldsValue() 和 form.getFieldsValue(true) 有区别吗?

背景 突然发现 antd 的 getFieldsValue()是可以传一个 true 参数的&#xff0c;如题,React Antd form.getFieldsValue() 和 form.getFieldsValue(true) 有区别吗&#xff1f; 验证 确实不一样 结论 getFieldsValue 提供了多种重载方法&#xff1a; getFieldsValue(name…...

浅谈Java中的观察者模式

观察者模式是软件开发中常用的一种设计模式&#xff0c;它通过定义一对多的依赖关系&#xff0c;使得一个对象&#xff08;主题&#xff09;的状态变化可以通知多个其他对象&#xff08;观察者&#xff09;。 这种模式的优点是解耦和增加扩展性&#xff0c;用于实现对象之间的…...

C++:命名空间,缺省参数,函数重载,引用,内联函数

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》 文章目录 前言一、命名空间命名空间的定义命名空间的使用 二、缺省参数缺省参数概念缺省参数分类 三、函数重载函数重载的概念 四、引用引用的概念引用特性引用的使用场景引用与指针的区别 …...

2.Vue报错Cannot read properties of undefined (reading ‘then‘)

1.出现报错 Cannot read properties of undefined (reading ‘then’)&#xff0c; 代码为 uploadFile(e.target.files[0]).then((res) > {alert(JSON.stringify(res));});2.原因 是因为uploadFile方法没有返回值&#xff0c;于是我又检查了一遍代码&#xff0c;发现我的r…...

【LeetCode 】数组简介

集合列表和数组 本文中介绍的概念为适用于所有编程语言的抽象理论&#xff0c;具体实现会由编程语言的不同而稍有差别。 具体介绍数组之前&#xff0c;我们先来了解一下集合、列表和数组的概念之间的差别。 集合 集合一般被定义为&#xff1a;由一个或多个确定的元素所构成的…...

一文解析block io生命历程

作为存储业务的一个重要组成部分&#xff0c;block IO是非易失存储的唯一路径&#xff0c;它的生命历程每个阶段都直接关乎我们手机的性能、功耗、甚至寿命。本文试图通过block IO的产生、调度、下发、返回的4个阶段&#xff0c;阐述一个block IO的生命历程。 一、什么是块设备…...