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

Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper基本管理及kafka单点部署实战

Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper基本管理及kafka单点部署实战

  • 0、昨日内容回顾:
  • 1、基于nginx的反向代理控制访问kibana
  • 2、配置ES集群TSL认证:
  • 3、配置kibana连接ES集群
  • 4、配置filebeat连接ES集群
  • 5、配置logstash连接ES集群
  • 6、自定义角色使用logstash组件写入数据到ES集群
  • 7、部署zookeeper单点
  • 8、zookeeper的命令行基本管理
  • 9、zookeeper集群部署
  • 10、编写zk的集群管理脚本
  • 11、使用zkWeb管理zookeeper集群
  • 12、快速搭建kafka单点环境

0、昨日内容回顾:

  • filebeat多实例

  • logstash的多实例

  • logstash的分支语法

  • logstash的pipeline

  • logstash的filter插件之mutate,useragent

  • ELFK架构采集日志写入ES集群,并使用kibana出图展示

    • map
    • 可视化库
    • dashboard
  • filebeat的模块使用

1、基于nginx的反向代理控制访问kibana

(1)部署nginx服务
略,参考之前的笔记即可。

(2)编写nginx的配置文件

cat > /etc/nginx/conf.d/kibana.conf <<'EOF'
server {listen 80;server_name kibana.oldboyedu.com;location / {proxy_pass http://10.0.0.103:5601$request_uri;auth_basic "oldboyedu kibana web!";auth_basic_user_file conf/htpasswd;}
}
EOF

(3)创建账号文件

mkdir -pv /etc/nginx/conf
yum -y install httpd-tools
htpasswd -c -b /etc/nginx/conf/htpasswd admin oldboyedu

(4)启动nginx服务

nginx -t
systemctl reload nginx

(5)访问nginx验证kibana访问

如下图所示。

2、配置ES集群TSL认证:

(1)elk101节点生成证书文件

cd /oldboyedu/softwares/es7/elasticsearch-7.17.5/
./bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""  --days 3650

(2)elk101节点为证书文件修改属主和属组

chown oldboyedu:oldboyedu config/elastic-certificates.p12 

(3)elk101节点同步证书文件到其他节点

data_rsync.sh `pwd`/config/elastic-certificates.p12 

(4)elk101节点修改ES集群的配置文件

vim /oldboyedu/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml 
...
cluster.name: oldboyedu-linux85-binary
path.data: /oldboyedu/data/es7
path.logs: /oldboyedu/logs/es7
network.host: 0.0.0.0
discovery.seed_hosts: ["elk101.oldboyedu.com","elk102.oldboyedu.com","elk103.oldboyedu.com"]
cluster.initial_master_nodes: ["elk103.oldboyedu.com"]
reindex.remote.whitelist: "10.0.0.*:19200"
node.data: true
node.master: true# 在最后一行添加以下内容xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

(5)elk101节点同步ES配置文件到其他节点

data_rsync.sh `pwd`/config/elasticsearch.yml 

(6)所有节点重启ES集群

systemctl restart es7

(7)生成随机密码

[root@elk101.oldboyedu.com elasticsearch-7.17.5]# ./bin/elasticsearch-setup-passwords auto
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [/oldboyedu/softwares/jdk1.8.0_291/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]yChanged password for user apm_system
PASSWORD apm_system = by9j4WkXTocxc7Gl7l8SChanged password for user kibana_system
PASSWORD kibana_system = t0HSSsrBPACFTDxor4IxChanged password for user kibana
PASSWORD kibana = t0HSSsrBPACFTDxor4IxChanged password for user logstash_system
PASSWORD logstash_system = JUXrlCfaMa74seZJnhw4Changed password for user beats_system
PASSWORD beats_system = 2V39PZkHNGIymaVaDFx0Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = UZplScGKm6zAmMCO9JmgChanged password for user elastic
PASSWORD elastic = e31LGPoUxik7fnitQidO

(8)postman访问

image-20240606110243705

3、配置kibana连接ES集群

image-20240606110518312

(1)修改kibana的配置文件

[root@elk103.oldboyedu.com elasticsearch-7.17.5]# yy /etc/kibana/kibana.yml 
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://10.0.0.101:9200","http://10.0.0.102:9200","http://10.0.0.103:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "VxFV4WjsHyxsA3CH2LQT"
i18n.locale: "zh-CN"
[root@elk103.oldboyedu.com elasticsearch-7.17.5]# 

(2)重启kibana

[root@elk103.oldboyedu.com elasticsearch-7.17.5]# systemctl restart kibana

(3)使用elastic用户登录并修改密码

image-20240606110916561

4、配置filebeat连接ES集群

(1)修改配置文件

[root@elk103.oldboyedu.com filebeat-7.17.5-linux-x86_64]# cat config/24-log-to-es_tls.yaml 
filebeat.inputs:
- type: logpaths:- /tmp/oldboyedu-linux85/test.log output.elasticsearch:hosts: ["http://10.0.0.101:9200","http://10.0.0.102:9200","http://10.0.0.103:9200"] username: "elastic"password: "yinzhengjie"index: "oldboyedu-jiaoshi07-test"setup.ilm.enabled: false
setup.template.name: "oldboyedu-jiaoshi07"
setup.template.pattern: "oldboyedu-jiaoshi07-*"
setup.template.overwrite: true
setup.template.settings:index.number_of_shards: 3index.number_of_replicas: 0

(2)启动filebeat实例

[root@elk103.oldboyedu.com filebeat-7.17.5-linux-x86_64]# filebeat -e -c config/24-log-to-es_tls.yaml

5、配置logstash连接ES集群

(1)编写配置文件

[root@elk101.oldboyedu.com ~]# cat config/16-file-to-es_tsl.conf
input { file {
# 指定本地文件的路径path => "/tmp/oldboyedu-linux85-file"
# 指定读取文件的起始位置,但前提是该文件之前未读取过或者未在".sincedb"文件中记录。
start_position => "beginning"}
} output { # stdout {} elasticsearch {hosts => ["http://localhost:9200"]index => "oldboyedu-linux85-logstash-file"user => "elastic"password => "yinzhengjie"}
}
[root@elk101.oldboyedu.com ~]# 
[root@elk101.oldboyedu.com ~]# 

(2)启动logstash实例

[root@elk101.oldboyedu.com ~]# logstash -rf config/16-file-to-es_tsl.conf

查看logstash采集文件的偏移量路径。

ls -la /oldboyedu/softwares/logstash-7.17.5/data/plugins/inputs/file/

6、自定义角色使用logstash组件写入数据到ES集群

[root@elk101.oldboyedu.com ~]# cat config/16-file-to-es_tsl.conf 
input { file {# 指定本地文件的路径path => "/tmp/oldboyedu-linux85-file"# 指定读取文件的起始位置,但前提是该文件之前未读取过或者未在".sincedb"文件中记录。start_position => "beginning"}
} output { # stdout {} elasticsearch {hosts => ["http://localhost:9200"]#index => "oldboyedu-linux85-logstash-file"index => "oldboyedu-linux85-logstash-demo"user => "jiaoshi07-logstash"password => "123456"}
}
[root@elk101.oldboyedu.com ~]# 

image-20240606133501597

image-20240607085859525

7、部署zookeeper单点

(1)下载zookeeper软件

https://zookeeper.apache.org/releases.html[root@elk101.oldboyedu.com ~]# wget http://192.168.15.253/ElasticStack/day07-/softwares/apache-zookeeper-3.8.0-bin.tar.gz

(2)解压软件包

[root@elk101.oldboyedu.com ~]# tar xf apache-zookeeper-3.8.0-bin.tar.gz -C /oldboyedu/softwares/

(3)创建符号连接

[root@elk101.oldboyedu.com ~]# cd /oldboyedu/softwares/ && ln -sv apache-zookeeper-3.8.0-bin zk

(4)声明zk的环境变量

[root@elk101.oldboyedu.com softwares]# cat > /etc/profile.d/kafka.sh <<'EOF'  
#!/bin/bashexport ZK_HOME=/oldboyedu/softwares/zk
export PATH=$PATH:$ZK_HOME/bin
EOF
source /etc/profile.d/kafka.sh

(5)创建zk的配置文件

[root@elk101.oldboyedu.com ~]# cp /oldboyedu/softwares/zk/conf/{zoo_sample.cfg,zoo.cfg}

(6)启动zk节点

[root@elk101.oldboyedu.com ~]# zkServer.sh start 
[root@elk101.oldboyedu.com ~]# zkServer.sh status  # 查看zk服务的状态信息
[root@elk101.oldboyedu.com ~]# zkServer.sh stop
[root@elk101.oldboyedu.com ~]# zkServer.sh restart

(7)连接ZK节点

[root@elk101.oldboyedu.com ~]# zkCli.sh 

8、zookeeper的命令行基本管理

# 查看
ls /  # 查看根(/)下有多少子zookeeper node,简称"znode"。	
get /oldboyedu-linux85/jiaoshi07   # 查看"/oldboyedu-linux85/jiaoshi07"的数据。# 创建
create /oldboyedu-linux85  # 在根路径下创建一个名为"oldboyedu-linux85"的"znode"。
create /oldboyedu-linux85/jiaoshi07 123 # 在"/oldboyedu-linux85/"znode下创建一个名为"jiaoshi07"的子znode,并指定该znode数据为"123"。
create -s /oldboyedu-linux85/jiaoshi07/liwenxuan 88888 # 创建一个前缀为"/oldboyedu-linux85/jiaoshi07/liwenxuan"有序编号的znode,数据为88888
create -s -e /oldboyedu-linux85/linux85/test # 创建一个名为"/oldboyedu-linux85/linux85/test"的临时znode。当前会话结束,临时znode会自动删除。# 修改
set /oldboyedu-linux85/jiaoshi07 456 # 将"/oldboyedu-linux85/jiaoshi07 "的znode数据修改为456.# 删除
delete /oldboyedu-linux85/test02 # 删除名为"/oldboyedu-linux85/test02"的znode,但该znode不能有子znode。即必须为空。
deleteall /oldboyedu-linux85/jiaoshi07 # 递归删除"/oldboyedu-linux85/jiaoshi07"下的所有znode。

image-20240607092810509

9、zookeeper集群部署

(1)创建zk的数据目录

[root@elk101.oldboyedu.com ~]# install -d /oldboyedu/data/zk

(2)修改单点zk的配置文件

[root@elk101.oldboyedu.com ~]# vim /oldboyedu/softwares/zk/conf/zoo.cfg                          
...
# 定义最小单元的时间范围tick。
tickTime=2000
# 启动时最长等待tick数量。
initLimit=5
# 数据同步时最长等待的tick时间进行响应ACK
syncLimit=2
# 指定数据目录
dataDir=/oldboyedu/data/zk
# 监听端口
clientPort=2181
# 开启四字命令允许所有的节点访问。
4lw.commands.whitelist=*
# server.ID=A:B:C[:D]
# ID:
#    zk的唯一编号。
# A:
#    zk的主机地址。
# B:
#    leader的选举端口,是谁leader角色,就会监听该端口。
# C: 
#    数据通信端口。
# D:
#    可选配置,指定角色。
server.101=10.0.0.101:2888:3888
server.102=10.0.0.102:2888:3888
server.103=10.0.0.103:2888:3888

(3)同步数据即可

[root@elk101.oldboyedu.com ~]# data_rsync.sh /oldboyedu/softwares/zk/
[root@elk101.oldboyedu.com ~]# data_rsync.sh /oldboyedu/softwares/apache-zookeeper-3.8.0-bin/
[root@elk101.oldboyedu.com ~]# data_rsync.sh /oldboyedu/data/zk/
[root@elk101.oldboyedu.com ~]# data_rsync.sh /etc/profile.d/kafka.sh 	

(4)创建myid文件

[root@elk101.oldboyedu.com ~]# for ((host_id=101;host_id<=103;host_id++)) do ssh 10.0.0.${host_id} "echo ${host_id} > /oldboyedu/data/zk/myid";done

(5)所有节点启动zk服务

[root@elk101.oldboyedu.com ~]# zkServer.sh start[root@elk102.oldboyedu.com ~]# source /etc/profile.d/kafka.sh 
[root@elk102.oldboyedu.com ~]# zkServer.sh start[root@elk103.oldboyedu.com ~]# source /etc/profile.d/kafka.sh 
[root@elk103.oldboyedu.com ~]# zkServer.sh start

(6)查看zk的角色状态

[root@elk101.oldboyedu.com ~]# zkServer.sh status

leader选举流程图解

image-20240607105202939

10、编写zk的集群管理脚本

[root@elk101.oldboyedu.com ~]# cat /usr/local/sbin/zkManager.sh
#!/bin/bash#判断用户是否传参
if [ $# -ne 1 ];thenecho "无效参数,用法为: $0  {start|stop|restart|status}"exit
fi#获取用户输入的命令
cmd=$1#定义函数功能
function zookeeperManger(){case $cmd instart)echo "启动服务"        remoteExecution start;;stop)echo "停止服务"remoteExecution stop;;restart)echo "重启服务"remoteExecution restart;;status)echo "查看状态"remoteExecution status;;*)echo "无效参数,用法为: $0  {start|stop|restart|status}";;esac
}#定义执行的命令
function remoteExecution(){for (( i=101 ; i<=103 ; i++ )) ; dotput setaf 2echo ========== 10.0.0.${i} zkServer.sh  $1 ================tput setaf 9ssh 10.0.0.${i}  "source /etc/profile.d/kafka.sh; zkServer.sh $1 2>/dev/null"done
}#调用函数
zookeeperManger[root@elk101.oldboyedu.com ~]# chmod +x /usr/local/sbin/zkManager.sh
[root@elk101.oldboyedu.com ~]# zkManager.sh start
[root@elk101.oldboyedu.com ~]# zkManager.sh staus

验证集群:

[root@elk103.oldboyedu.com ~]# zkCli.sh -server 10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181

11、使用zkWeb管理zookeeper集群

(1)下载软件包

[root@elk103.oldboyedu.com ~]# wget http://192.168.15.253/ElasticStack/day07-/softwares/zkWeb-v1.2.1.jar

(2)启动zkweb

java -jar zkWeb-v1.2.1.jar 

image-20240607110848843

12、快速搭建kafka单点环境

(1)下载kafka软件包

[root@elk101.oldboyedu.com ~]# wget http://192.168.15.253/ElasticStack/day07-/softwares/kafka_2.13-3.2.1.tgz

(2)解压软件包

[root@elk101.oldboyedu.com ~]# tar xf kafka_2.13-3.2.1.tgz -C /oldboyedu/softwares/

(3)创建符号连接

[root@elk101.oldboyedu.com ~]# cd /oldboyedu/softwares/ && ln -svf kafka_2.13-3.2.1 kafka

(4)配置环境变量

[root@elk101.oldboyedu.com softwares]# cat /etc/profile.d/kafka.sh 
#!/bin/bashexport ZK_HOME=/oldboyedu/softwares/zk
export PATH=$PATH:$ZK_HOME/bin
export KAFKA_HOME=/oldboyedu/softwares/kafka
export PATH=$PATH:$KAFKA_HOME/bin[root@elk101.oldboyedu.com softwares]# source /etc/profile.d/kafka.sh 

(5)修改配置文件

[root@elk101.oldboyedu.com ~]# yy /oldboyedu/softwares/kafka/config/server.properties 
...
broker.id=101
zookeeper.connect=10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181/oldboyedu-linux85-kafka321
[root@elk101.oldboyedu.com ~]# 

(6)启动kafka单点

[root@elk101.oldboyedu.com softwares]# kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties 

(7)验证zookeeper的源数据信息

[root@elk101 softwares]# kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
[root@elk101 softwares]# jps
4134 Jps
1134 Elasticsearch
1135 Elasticsearch
2815 QuorumPeerMain
[root@elk101 softwares]# cat /tmp/kafka-logs/meta.properties 
#
#Fri Jun 07 11:14:46 CST 2024
cluster.id=H2ceIpqTT1iUzb46e5jeKw
version=0
broker.id=101
[root@elk101 softwares]# jps
4156 Jps
1134 Elasticsearch
1135 Elasticsearch
2815 QuorumPeerMain
[root@elk101 softwares]# rm -rf /tmp/kafka-logs/
[root@elk101 softwares]# kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties

在zkWeb查看即可。
image-20240607112505244

今日作业
(1)完成课堂的所有练习并整理思维导图;
扩展作业:
(1)使用ansible一键部署zookeeper集群;

相关文章:

Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper基本管理及kafka单点部署实战

Day07-ES集群加密&#xff0c;kibana的RBAC实战&#xff0c;zookeeper集群搭建&#xff0c;zookeeper基本管理及kafka单点部署实战 0、昨日内容回顾:1、基于nginx的反向代理控制访问kibana2、配置ES集群TSL认证:3、配置kibana连接ES集群4、配置filebeat连接ES集群5、配置logsta…...

RK3568 V1.4.0 SDK,USB OTG端子不能被电脑识别出adb设备,解决

修改后的/usr/bin/usbdevice: #!/bin/sh # # Usage: # usbdevice [start|update|stop] # # Hookable stages: # usb_<pre|post>_<init|prepare|start|stop|restart>_hook # <usb function>_<pre|post>_<prepare|start|stop>_hook # # Example …...

如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 介绍 像 MySQL 这样的关系型数据库管理系统在许多网站和应用程序中都是必不可少的。然而&#xff0c;并非所有用户都习惯通过命令行来管…...

redis存入hash,key=>value和key=>(key=>value)使用Python举例

在 Redis 中&#xff0c;HASH 数据结构&#xff08;也称为 HMAP 或 Hash Map&#xff09;允许你存储键值对集合&#xff0c;其中每个键值对都是字段&#xff08;field&#xff09;和值&#xff08;value&#xff09;的映射。在 Python 中&#xff0c;你可以使用 redis-py 库来与…...

Guava LocalCache源码分析:LocalCache的get、put、expand、refresh、remove、clear、cleanUp

Guava LocalCache源码分析&#xff1a;LocalCache的get、put、expand 前言一、get二、put三、expand 前言 上篇文章&#xff0c;详细描写了Guava LocalCache怎样如ConcurrentHashMap对缓存数据进行了分段存储。本章主要针对LocalCache重要的几个接口进行说明。 一、get CanIg…...

linux-arm ubuntu18.04 qmqtt5.12.6 编译部署

安装 qt 查看qt 版本 &#xff1a; qmake -v 下载对应版本 qmqtt 解压下载的mqtt文件 进入qmqtt xxx/src 目录 在qt 安装目录中创建QtMqtt文件夹&#xff0c; &#xff0d; x86平台qt 默认目录为 /usr/include/x86_64-linux-gnu/qt5 &#xff0d; arm平台qt 默认目录为/us…...

阿里ChatSDK使用,开箱即用聊天框

介绍&#xff1a; 效果&#xff1a;智能助理 ChatSDK&#xff0c;是在ChatUI的基础上&#xff0c;结合阿里云智能客服的最佳实践&#xff0c;沉淀和总结出来的一个开箱即用的&#xff0c;可快速搭建智能对话机器人的框架。它简单易上手&#xff0c;通过简单的配置就能搭建出对…...

LangChain —— Message —— How to trim messages

文章目录 一、概述二、获取最后的 max_tokens 令牌三、获取第一个 max_tokens 令牌四、编写自定义令牌计数器五、连成链六、使用 ChatMessageHistory 一、概述 所有模型都有 有限的 上下文窗口&#xff0c;这意味着它们可以作为输入的 token 数量是有限的。如果你有很长的消息&…...

专升本-1.0.3(英语)-升本209天-星期二

自己要耐得住寂寞&#xff0c;守得住自己的初心&#xff0c;守得住自己的未来&#xff0c;然后不断地真实地面对自己&#xff0c;使自己不断地获得一个真实地成长&#xff0c;说真话办真事&#xff0c;自己总会有一条路了&#xff0c;说真话&#xff0c;办真事的那条路才是最为…...

集合媒体管理、分类、搜索于一体的开源利器:Stash

Stash&#xff1a;强大的媒体管理工具&#xff0c;让您的影音生活井井有条- 精选真开源&#xff0c;释放新价值。 概览 Stash是一个专为个人媒体管理而设计的开源工具&#xff0c;基于 Go 编写&#xff0c;支持自部署。它以用户友好的界面和强大的功能&#xff0c;满足了现代用…...

数仓工具—Hive语法之事务表更新Transactional Table Update

Hive事务表更新 众所周知,Apache Hive 是建立在 Hadoop HDFS 之上的数据仓库框架。由于它包含表,您可能希望根据数据的变化更新表记录。直到最近,Apache Hive 还不支持事务。从 Hive 0.14 及以上版本开始支持事务性表。您需要启用 ACID 属性才能在 Hive 查询中使用更新、删…...

系统架构师(每日一练2)

每日一练 1.为实现对象重用&#xff0c;COM支持两种形式的对象组装&#xff0c;在()重用形式下&#xff0c;一个外部对象拥有指向一个内部对象的唯一引用&#xff0c;外部对象只是把请求转发给内部对象;在()重用形式下&#xff0c;直接把内部对象的接口引用传给外部对象的客户…...

Django REST Framework(十)视图集-ViewSet

视图集&#xff08;ViewSet&#xff09;是 Django REST framework 中的一个高级特性&#xff0c;它允许你使用更少的代码来实现标准的 CRUD&#xff08;创建、读取、更新、删除&#xff09;操作。ViewSet 类本质上是基于 GenericAPIView 的&#xff0c;但它们提供了更多的默认行…...

sping总览

一、spring体系 1. spring是什么&#xff1f; 轻量级的开源的J2EE框架。它是一个容器框架&#xff0c;主要实现了ioc&#xff0c;同时又通过aop实现了面向切面编程&#xff0c;它又是一个中间层框架&#xff08;万能胶&#xff09;可以起一个连接作用&#xff0c;比如说把myba…...

【Godot4.2】MLTag类:HTML、XML通用标签类

概述 HTML和XML采用类似的标签形式。 之前在Godot中以函数库形式实现了网页标签和内容生成。能用&#xff0c;但是缺点也很明显。函数之间没有从属关系&#xff0c;但是多有依赖&#xff0c;而且没有划分出各种对象和类型。 如果以完全的面向对象形式来设计标签类或者元素类…...

美式键盘 QWERTY 布局的起源

注&#xff1a;机翻&#xff0c;未校对。 The QWERTY Keyboard Is Tech’s Biggest Unsolved Mystery QWERTY 键盘是科技界最大的未解之谜 It’s on your computer keyboard and your smartphone screen: QWERTY, the first six letters of the top row of the standard keybo…...

【JavaEE】HTTP(2)

&#x1f921;&#x1f921;&#x1f921;个人主页&#x1f921;&#x1f921;&#x1f921; &#x1f921;&#x1f921;&#x1f921;JavaEE专栏&#x1f921;&#x1f921;&#x1f921; &#x1f921;&#x1f921;&#x1f921;下一篇文章&#xff1a;【JavaEE】HTTP协议(…...

LinuxShell编程2——shell搭建Discuzz论坛网站

目录 一、环境准备 ①准备一台虚拟机 ②初始化虚拟机 1、关闭防火墙 2、关闭selinux 3、配置yum源 4、修改主机名 二、搭建LAMP环境 ①安装httpd(阿帕奇apache&#xff09;服务器 查看是否安装过httpd 启动httpd 设置开机启动 查看状态 安装网络工具 测试 ②安装…...

.NET MAUI开源架构_1.学习资源分享

最近需要开发Android的App&#xff0c;想预研下使用.NET开源架构.NET MAUI来开发App程序。因此网上搜索了下相关资料&#xff0c;现在把我查询的结果记录下&#xff0c;方便后面学习。 1.官方文档 1.1MAUI官方学习网站 .NET Multi-Platform App UI 文档 - .NET MAUI | Micro…...

Unsloth 微调 Llama 3

本文参考&#xff1a; https://colab.research.google.com/drive/135ced7oHytdxu3N2DNe1Z0kqjyYIkDXp 改编自&#xff1a;https://blog.csdn.net/qq_38628046/article/details/138906504 文章目录 一、项目说明安装相关依赖下载模型和数据 二、训练1、加载 model、tokenizer2、…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...