Zabbix监控架构

news2024/11/27 10:25:27

目录

1. Zabbix监控架构-CS架构

2. Zabbix极速上手指南

主机规划

 2.1  部署ngx+php环境并测试

检查安装结果

 2.2 部署数据库

2.3 编译安装zabbix-server服务端及后续配置

2.4 部署前端代码代码进行访问

前端的配置文件(连接数据库与主机名等信息)

2.5 欢迎来到zabbix 

 2.6 安装客户端

查看web页面的主机数据

 2.7 zabbix显示中文乱码

3. zabbix 配置详解 

3.1 服务端配置

3.2 zabbix agent vs zabbix agent2

4. 监控任意主机流程

4.1 配置客户端

4.2 web页面添加主机

4.2.1 创建主机

4.2.2 填写主机信息 

4.2.3 耐心等待变绿

 4.3 通过模板监控nginx

修改ngx模板的宏

5. 自定义监控

5.1 自定义监控全流程

5.2 客户端

5.3 服务端

5.4 web页面: 创建监控项

创建监控项

进行监控项测试 

添加监控项完成,查看添加的监控项

​编辑

添加监控项完成,查看最新数据与图形

​编辑 5.5 web页面: 触发器

添加触发器

添加表达式

添加完成后的触发器配置 

​编辑 出现故障后的提示​编辑

可以确认故障 

​编辑

 配置图形名字与添加监控项​编辑

6. 常用键值与触发器函数

6.1 键值

6.2 触发器函数 

 6.3 触发器依赖

7. 自定义监控-参数案例

使用命令书写和测试

 web 添加监控项

​编辑 web 触发器

8. 使用模板 

8.1 创建模板

8.2 在模板中创建宏

​编辑 8.3 检查模板信息 

8.4 添加自定义监控项

进入主机中复制即可 

选择要复制的监控项,选择复制即可(可批量多选)

选择复制到模板中 

提示复制成功 

检查模板中监控项部分:多了2个监控项 (nginx和root都做完显示两个)

8.5 复制触发器与图形

主机------>触发器

 复制​编辑

 检查模板触发器

复制图形与复制触发器与监控项一致

8.6 模板关联主机

进入主机中,批量选择要添加模板的主机,批量更新

8.7 配置linux客户端键值 


1. Zabbix监控架构-CS架构

2. Zabbix极速上手指南

主机规划

角色主机名ip
Zabbix服务端zabbix_server_xzb10.0.0.62/172.16.1.62
Zabbix客户端zabbix_agent_xzb10.0.0.63/172.16.1.63

1. 系统:CentOS 7.x 不支持yum方式安装zabbix服务端4

2. 安装方式:

zabbix服务端编译安装

zabbix客户端yum安装

 2.1  部署ngx+php环境并测试

##安装nginx
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

yum install -y nginx
##安装php
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release.noarch -y 
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install  php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd -y

检查安装结果

##nginx配置 
cat /etc/nginx/conf.d/zabbix.conf 
server{
  listen 80;
  server_name  zabbix.oldboylinux.cn;
  root /app/code/zabbix;
  location / {
    index index.php;
  }
  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

##php配置
sed -ri  '/^(user|group)/s#apache#nginx#g'  /etc/php-fpm.d/www.conf
##进行检查
egrep '^(user|group)'  /etc/php-fpm.d/www.conf
user = nginx
group = nginx
##创建目录创建测试文件
cat /app/code/zabbix/index.php 
<?php
phpinfo();
?>
##启动服务与测试
systemctl enable nginx php-fpm
systemctl start  nginx php-fpm
##测试web(hosts解析)
10.0.0.62 zabbix.oldboylinux.cn

 2.2 部署数据库

zabbix 6.0 不支持 mariadb 5.5(默认源中的mariadb) 安装mariadb 10.5

##配置mariadb yum 源
vim /etc/yum.repos.d/mariadb.repo 
[mariadb]
name=MariaDB
baseurl=https://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
enable=1

##安装
yum install  -y  mariadb-server

##启动
systemctl enable mariadb
systemctl start  mariadb

##数据库初始化
mysql_secure_installation 
先回车,前两个输入n,后面都是Y

# 创建数据库要指定字符集
create database zabbix charset utf8 collate utf8_bin;
##创建zabbix用户
grant all on zabbix.*  to 'zabbix'@'localhost'  identified by 'zabbix';
###如果数据库与zbx,php不在一起
grant all on zabbix.*  to 'zabbix'@'172.16.1.%' identified by 'zabbix' ;

##向数据库中导入数据 表,数据  注意导入的顺序!!
tar xf zabbix-6.0.31.tar.gz
cd /zabbix-6.0.31/database/mysql
mysql zabbix <schema.sql 
mysql zabbix <images.sql
mysql zabbix <data.sql

##检查  mysql的-e选项可以在命令行执行sql语句,注意以;结尾.
mysql -e 'show tables from zabbix;' |wc -l 
179

2.3 编译安装zabbix-server服务端及后续配置

## 1. 安装依赖(软件包中已经包含)
yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel  libcurl-devel

## 2. 进行配置  
##在源代码目录并且ls 可以看见configure文件
## --sysconfdir 指定配置文件目录  --enable-server 服务端
./configure sysconfdir=/etc/zabbix/ --enable-server --with-mysql    --with-net-snmp  --with-libxml2  --with-ssh2  --with-openipmi  --with-zlib --with-libpthread --with-libevent      --with-openssl  --with-ldap  --with-libcurl  --with-libpcre

## 3. 根据提示执行make install
make instll

## 检查是否成功
echo $?
0

##修改zbx服务端配置文件(DB相关)
egrep -vn '^$|#' /etc/zabbix/zabbix_server.conf
12:ListenPort=10051
38:LogFile=/tmp/zabbix_server.log
87:DBHost=localhost
99:DBName=zabbix
115:DBUser=zabbix
123:DBPassword=zabbix
507:Timeout=4
593:LogSlowQueries=3000
708:StatsAllowedIP=127.0.0.1

##启动zabbix服务端
useradd -s /sbin/nologin -M zabbix ##添加个虚拟用户 
zabbix_server  ##启动zbx服务端
##检查端口
ss -lntup|grep 10051 
##检查进程
ps -ef |grep zabbix 

##书写systemctl 配置文件
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix

[Install]
WantBy=multi-user.target

## 加载配置文件
systemctl daemon-reload

## 关闭手动启动的zabbix_server 
pkill zabbix_server

## 检查是否关闭成功
ps -ef |grep zabbix

## 启动与检查
systemctl enable zabbix-server
systemctl start zabbix-server
systemctl status  zabbix-server

2.4 部署前端代码代码进行访问

## 部署前端
cp -r ./ui/* /app/code/zabbix/
chown -R nginx.nginx /app/code/zabbix/

##web访问
10.0.0.62 zabbix.oldboylinux.cn

## 遇到错误修改php.ini
egrep -n '^(max_.*_time|post_max)'   /etc/php.ini
368:max_execution_time = 300
378:max_input_time = 600
656:post_max_size = 80M
##重启php
systemctl  restart  php-fpm
##刷新页面,下一步

 

输入用户:Admin 

密码:zabbix  

前端的配置文件(连接数据库与主机名等信息)

2.5 欢迎来到zabbix 

 2.6 安装客户端

## 先让zabbix自己监控自己吧,所以我在服务端上安装zabbix_agent2
## 配置zabbix_agent2 yum源
vim/etc/yum.repos.d/zabbix.repo 
[zabbix]
name=Zabbix 
baseurl=https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/
enabled=1
gpgcheck=0
gpgkey=https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/RPM-GPG-KEY

## 安装zabbix_agent
yum install -y zabbix-agent2

##客户端的配置文件
egrep  -v '^$|#' /etc/zabbix/zabbix_agent2.conf 
PidFile=/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1   ##自己监控自己,如果是别的主机的话要改
ServerActive=127.0.0.1  ##自己监控自己,如果是别的主机的话要改
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
PluginSocket=/run/zabbix/agent.plugin.sock
ControlSocket=/run/zabbix/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf

##启动
systemctl enable  zabbix-agent2.service
systemctl start zabbix-agent2.service

查看web页面的主机数据

 2.7 zabbix显示中文乱码

原因:zbx显示中文的字体有问题,导致显示中文异常。

解决:把zbx中文字体替换即可。

cd /app/code/zbx/assets/fonts/
##上传一个中文的ttf字体替换zabbix自用的字体即可
cp /code/zabbix/assets/fonts/DejaVuSans.ttf{,.bak}
cp    msyh.ttc    /app/code/zabbix/assets/fonts/DejaVuSans.ttf

3. zabbix 配置详解 

3.1 服务端配置

文件和目录说明
/etc/zabbix/zabbix_server.conf配置文件
/var/log/zabbix/zabbix_server.log当前放在/tmp/下面
/usr/lib/systemd/system/zabbix-server.service手写的systemctl管理文件 如果yum、rpm安装自带
/usr/local/share/zabbix/alertscripts/用于实现告警的脚本

##zabbix服务端配置文件详解
grep '^[a-Z]'   /etc/zabbix/zabbix_server.conf
ListenPort=10051                              ##服务端端口
LogFile=/tmp/zabbix_server.log                ##日志文件
DBHost=localhost                              ##数据库地址
DBName=zabbix                                 ##数据库名字
DBUser=zabbix                                 ##数据库用户名
DBPassword=zabbix                             ##数据密码
Timeout=4                                     ##超时时间
##zabbix客户端配置
/etc/zabbix/zabbix_agent2.conf                ##配置文件
/etc/zabbix/zabbix_agent2.d/                  ##子配置文件目录,用于自定义监控
/var/log/zabbix                               ##日志
##zabbix客户端配置文件内容
Server=172.16.1.62                            ##指定服务端地址

3.2 zabbix agent vs zabbix agent2

在任何一台服务器上面安装zabbix-agent ,zabbix-agent2

zabbix_agentzabbix_agent2
开发语言C语言Go语言和C语言
性能独立进程方式运行1个进程多线程技术运行, 减少资源消耗占用较少tcp资源,能够承受更高并发

4. 监控任意主机流程

4.1 配置客户端

##1. 安装
#参考服务端安装zabbix—agent2的方法
##2. 配置
sed -i 's#Server=127.0.0.1#Server=172.16.1.62#g' /etc/zabbix/zabbix_agent2.conf ##改为服务端地址
sed -i 's#ServerActive=127.0.0.1#ServerActive=172.16.1.62#g' /etc/zabbix/zabbix_agent2.conf ##改为服务端地址

##3. 启动
systemctl enable zabbix-agent2
systemctl start  zabbix-agent2

4.2 web页面添加主机

4.2.1 创建主机

4.2.2 填写主机信息 

4.2.3 耐心等待变绿

 4.3 通过模板监控nginx

## 
cat /etc/nginx/conf.d/status.conf
server {
  listen 8000;
  location / {
    stub_status;

  }
}
curl http://localhost:8000
curl http://localhost:8000/status 

修改ngx模板的宏

{$NGINX.STUB_STATUS.HOST} localhost 
{$NGINX.STUB_STATUS.PATH} /
{$NGINX.STUB_STATUS.PORT} 8000

##web页面查看

5. 自定义监控

5.1 自定义监控全流程

## 客户端
## 1.  linux: 通过命令、脚本取出对应的值
## 2.  linux:根据zbx要求按照格式,书写配置文件,创建键值  ##键值key用于获取客户端数据
## 3.  linux:重启客户端客户端测试键值是否可用             ##zabbix_agent2 -t

## 服务端
## 4. linux:服务端测试键值是否可用                      ##  zabbix_get
## 5. web页面: 键值与监控项关联
## 6. web页面: 测试
## 7. web页面:触发器(报警)                             ##是否发出警告需要根据情况决定是否设置

5.2 客户端

##1. 通过命令、脚本取出对应的值
##监控80端口是否存在? 自定义监控
ss -lntup |grep -w 80 |wc -l

## 创建键值与重启
##UserParameter=key,cmd
##UserParameter=固定写法,表示要自定义键值key表示键值名字,命名最好就是 单词+"." (点)
##cmd表示命令或脚本

##写入自定义key(键值)
vim  /etc/zabbix/zabbix_agent2.d/web.conf
UserParameter=check.nginx,ss -lntup|grep -w 80 |wc -l

##2. 重启客户端
systemctl  restart  zabbix-agent2.service
##3. 客户端本地测试键值
zabbix_agent2 -t check.nginx
check.nginx 
                                  [s|1]  ##s表示类型文字 | 1表示结果 键值的结果
##提示zabbix_agent2.conf里面有
Include=/etc/zabbix/zabbix_agent2.d/*.conf

5.3 服务端

##服务端手动测试
yum install -y zabbix-get zabbix_get -s 172.16.1.63  -p 10050  -k check.nginx
## -s 客户端ip地址  -p 客户端端口号(默认是10050) -k 指定键值

5.4 web页面: 创建监控项

创建监控项

 

进行监控项测试 

添加监控项完成,查看添加的监控项

添加监控项完成,查看最新数据与图形

 5.5 web页面: 触发器

添加触发器

添加表达式

添加完成后的触发器配置 

 出现故障后的提示

可以确认故障 

##监控项键值获取的数据 等于 0 表示异常
##什么条件下出现故障  zbx 6.x的写法
last(/zabbix_agent_xzb/check.nginx)=0  #last() 函数表示最后1个结果
last(/zabbix_agent_xzb/check.nginx)=0  ##zabbix_agent_xzb主机的web.port.80的结果中的最后一个如果是0,则有故障

 ##zbx 5.x及之前的写法
{zabbix_agent_xzb:check.nginx.last() } = 0
{主机:key.功能}  = 0

 配置图形名字与添加监控项

6. 常用键值与触发器函数

6.1 键值

常用键值说明
agent.hostname主机名 获取的是客户端配置文件中指定的主机名
system.hostname主机名 系统的主机名 类似于hostname
agent.ping服务端与客户端是否通畅 通:1 不通:非1
net.if.in[if,]网络接口上传(进入)流量统计。返回 整数 if表示网卡名字 可以忽略
net.if.out[if,]流出流量统计。返回整数
proc.num[,,,,]        

进程数    返回整数 

name     进程名字

user       用户

state      进程状态

cmdline 进程对应的命令

zabbix_get -s 172.16.1.63 -p 10050 -k proc.num[,,zomb]
zabbix_get -s 172.16.1.63 -p 10050 -k net.if.in[eth0]
zabbix_get -s 172.16.1.63 -p 10050 -k proc.num[nginx]
zabbix_get -s 172.16.1.63 -p 10050 -k net.tcp.port[,port]
zabbix_get -s 172.16.1.63 -p 10050 -k net.tcp.port[,80]
zabbix_get -s 172.16.1.63 -p 10050 -k  agent.hostname 

zabbix客户端键值传送门:

1 Zabbix agenticon-default.png?t=O83Ahttps://www.zabbix.com/documentation/6.0/zh/manual/config/items/itemtypes/zabbix_agent

6.2 触发器函数 

1. 写在触发器表达式中.用于设置报警条件.

2. 触发器函数要结合键值(监控项)

功能(函数)说明
last()最近值 (最新的值),取出最近一些值
nodata()是否有数据
diff()是否发生变化 一般配合md5check()
avg()平均值
min()最小值
max()最大值

##书写触发器案例 swap
##条件swap总大小大于0
last(/zabbix_agent_xzb/system.swap.size[,total])>0
###条件swap当前使用的大小大于0(没有直接可以使用的监控项,这里调整为当前swap空闲率小于100)
last(/zabbix_agent_xzb/system.swap.size[,pfree])<100
##表示并且-a = and    -o = or 
#完整的表达
last(/zabbix_agent_xzb/system.swap.size[,total])>0 and last(/zabbix_agent_xzb/system.swap.size[,pfree])<100

 6.3 触发器依赖

3 触发器依赖关系icon-default.png?t=O83Ahttps://www.zabbix.com/documentation/6.0/zh/manual/config/triggers/dependencies

7. 自定义监控-参数案例

使用命令书写和测试

 ##客户端
##  书写键值key
UserParameter=user.login.check[*],lastlog |grep -w "$1" |awk '{print $$3}'
##如果使用自定义键值传参,awk取列的时候要使用$$列。
##如果没有传参,awk正常使用即可
##重启客户端
systemctl restart zabbix agent2.service
zabbix_agent2 -t user.login.check[root]

##服务端
zabbix_get  -s 172.16.1.63  -k  user.login.check[root]

 web 添加监控项

 web 触发器

8. 使用模板 

8.1 创建模板

8.2 在模板中创建宏

 8.3 检查模板信息 

8.4 添加自定义监控项

进入主机中复制即可 

选择要复制的监控项,选择复制即可(可批量多选)

选择复制到模板中 

提示复制成功 

检查模板中监控项部分:多了2个监控项 (nginx和root都做完显示两个)

8.5 复制触发器与图形

主机------>触发器

 复制

 检查模板触发器

复制图形与复制触发器与监控项一致

8.6 模板关联主机

进入主机中,批量选择要添加模板的主机,批量更新

 

8.7 配置linux客户端键值 

分发键值到配置文件

重启zabbix客户端

 9. 邮件报警

9.1 个人邮箱准备

9.2 配置发件人 

报警媒介

添加发件人信息

告警邮件内容 

 

##故障类型   问题
##主题  故障名称: {EVENT.NAME}
##消息
故障始于 时间: {EVENT.TIME} 日期: {EVENT.DATE}
故障名称: {EVENT.NAME}
故障主机: {HOST.NAME}
严重程度: {EVENT.SEVERITY}
额外信息: {EVENT.OPDATA}
故障ID: {EVENT.ID}
触发器地址: {TRIGGER.URL}


##消息类型   ##问题恢复
##主题       ## 故障已经解决  时间: {EVENT.RECOVERY.TIME} 日期:  {EVENT.RECOVERY.DATE}
##消息
故障名称: {EVENT.NAME}
故障持续时间: {EVENT.DURATION}
故障主机: {HOST.NAME}
故障级别: {EVENT.SEVERITY}
故障ID: {EVENT.ID}
{TRIGGER.URL}

9.3 进行测试

测试发送信息(内容和主题随意) 

9.4 配置收件人 

添加收件人信息

配置收件人 

配置完成 

9.5 什么条件下给用户发送邮件?(条件/动作) 

触发器动作(启用即可)

制造故障检查仪表盘 

进阶

触发器修改

10. 换个角度看监控

10.1 Zabbix客户端概述

zabbix客户端应用场景
Zabbix-agent2适用于几乎所有情况,支持自定义监控,linux,windows, android/ios
SNMP客户端用于监控网络设备: Simple Network Management Protocal 简单网络管理协议 监控网络设备
JMXJava-gateway 监控java app(tomcat), 未来推荐自定义监控(zabbix_agents2 + jmap/jstats)
IPMI监控硬件(物理服务器,联想(IBM X86架构 ThinkServer) ,华为,浪潮,Dell,IBM,HP) 直接使用自定义监 控(ipmitool + megacli )

10.2 Zabbix-agent监控windows/mac

下载地址:Download Zabbix agentsicon-default.png?t=O83Ahttps://www.zabbix.com/cn/download_agents?version=6.0+LTS&release=6.0.31&os=Windows&os_version=Any&hardware=amd64&encryption=OpenSSL&packaging=MSI&show_legacy=0#tab:44

安装windows客户端

 检查

10.3 监控windows

创建主机

11. 监控java应用

方案1. 开启java jmxremote远程监控功能,zabbix中关联对应的模板,安装与开启java工具zabbix-java-gateway

方案2. 通过java命令,自定义监控获取想要指标,通过在java应用服务器安装zabbix agent和java命令(jmap,jstack),然后自定义监控。

 11.1 方案01 原理图

11.2 方案02 原理图(类似于自定义监控)

11.3 方案01 实战

##开启远程监控功能
vim tomcat/bin/catalina.sh
##在125行后添加
CATALINA_OPTS="$CATALINA_OPTS   \
-Dcom.sun.management.jmxremote  \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=172.16.1.9" ##tomcat主机内网地址

##重启tomcat
systemctl restart tomcat.service

##查看进程中是否有以上的饿命令
ps -ef |grep java

zabbix服务端部署java gateway 配置

##服务端部署 zabbix-java-gateway
yum install -y zabbix-java-gateway

##启动
systemctl enable zabbix-java-gateway.service
systemctl start  zabbix-java-gateway.service

##配置 将监听端口打开
grep -n '^[a-Z]' /etc/zabbix/zabbix_java_gateway.conf 
17:LISTEN_PORT=10052
27:PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"

##重启zabbix-java-gateway
systemctl  restart zabbix-java-gateway.service

##配置zabbix 服务端的配置文件
grep -n 'Java*' /etc/zabbix/zabbix_server.conf
317:JavaGateway=127.0.0.1
325:JavaGatewayPort=10052
333:StartJavaPollers=5

##重启zabbix服务端
systemctl  restart zabbix-server.service

##检查java poller进程
ps -ef |grep zabbix_server |grep java

 添加主机

 12. 自动化

1. 自动添加主机并关联模板

2. 自动添加主机方案:

      自动发现(服务端 主动):zabbix服务端 主动去找是否有新的主机,如果有则添加进来,关联模板。

      自动注册(客户端 主动):zabbix客户端 主动去找服务端提交自己的信息,请求向服务端注册。

12.1 自动发现

1. 客户端(zabbix-agent),配置文件.

2. web配置自动发现规则. -发现主机

3. web配置自动发现的动作-发现主机后关联模板,添加主机,加入主机组,启用

12.2 客户端(zbx agent),配置文件

ansible实现  playbook  yum  template

参考我的ansible文章: 网站集群批量管理-Ansible(playbook)-CSDN博客

 12.3 web配置自动发现规则

 

 

 检查自动发现的主机(注意仅仅发现并不会添加到zabbix主机中)

web配置动作,配置自动发现动作

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

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

相关文章

基于vue+neo4j 的中药方剂知识图谱可视化系统

前言 历时一周时间&#xff0c;中药大数据R02系统中药开发完毕&#xff0c;该系统通过scrapy工程获取中药数据&#xff0c;使用python pandas预处理数据生成知识图谱和其他相关数据&#xff0c;利用vuespringbootneo4jmysql 开发系统&#xff0c;具体功能请看本文介绍。 简要…

Java——》try-with-resource

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

数据结构---二叉树(顺序结构),堆(上)

树 树的概念与结构 树是⼀种⾮线性的数据结构&#xff0c;它是由 n&#xff08;n>0&#xff09; 个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;⽽叶朝下的。 PS 有⼀个特殊的结点&#xff…

蓝桥杯-网络安全比赛题目-遗漏的压缩包

小蓝同学给你发来了他自己开发的网站链接&#xff0c; 他说他故意留下了一个压缩包文件&#xff0c;里面有网站的源代码&#xff0c; 他想考验一下你的网络安全技能。 &#xff08;点击“下发赛题”后&#xff0c;你将得到一个http链接。如果该链接自动跳转到https&#xff0c;…

HTB:Busqueda[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机进行开放端口扫描 使用ffuf对该域名进行路径FUZZ 直接使用浏览器访问靶机80端口主页面 直接到Github上寻找相关PoC、EXP USER_FLAG&#xff1a;0f2686aebbdb4c728050281a6fb742cf 特权提升 ROOT_FLAG&#xff1a;dde68ef…

如何创建备份设备以简化 SQL Server 备份过程?

SQL Server 中的备份设备是什么&#xff1f; 在 SQL Server 中&#xff0c;备份设备是用于存储备份数据的物理或逻辑介质。备份设备可以是文件、设备或其他存储介质。主要类型包括&#xff1a; 文件备份设备&#xff1a;通常是本地文件系统中的一个或多个文件。可以是 .bak 文…

c语言-8进制的表示方法

文章目录 一、8进制二、输出格式三、范围限制四、八进制的负数五、程序 一、8进制 在C语言中&#xff0c;表示8进制数需要使用前缀数字0&#xff0c;而不是通常的o或者0x. 8进制数以数字0作为前缀&#xff0c;后面跟着一串八进制数字&#xff08;0-7&#xff09;组成&#xf…

python操作MySQL以及SQL综合案例

1.基础使用 学习目标&#xff1a;掌握python执行SQL语句操作MySQL数据库软件 打开cmd下载安装 安装成功 connection就是一个类&#xff0c;conn类对象。 因为位置不知道&#xff0c;所以使用关键字传参。 表明我们可以正常连接到MySQL 演示、执行非查询性质的SQL语句 pytho…

【含开题报告+文档+源码】基于SSM的物流管理系统设计与实现

开题报告 随着电子商务的迅猛发展和人们生活水平的提高&#xff0c;快递服务行业正经历着前所未有的增长。占航快递公司作为国内知名的快递企业之一&#xff0c;面临着巨大的机遇和挑战。传统的快递服务管理方式已经无法满足日益增长的业务需求&#xff0c;快递服务流程中的问…

外包干了2年,快要废了。。。

先说一下自己的情况&#xff0c;普通本科毕业&#xff0c;在外包干了2年多的功能测试&#xff0c;这几年因为大环境不好&#xff0c;我整个人心惊胆战的&#xff0c;怕自己卷铺盖走人了&#xff0c;我感觉自己不能够在这样蹉跎下去了&#xff0c;长时间呆在一个舒适的环境真的会…

界面控件DevExpress WPF中文教程:Data Grid——卡片视图设置

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

使用Matlab神经网络工具箱

综述 在大数据和人工智能时代&#xff0c;深度学习是一种最为常见的数据分析和拟合工具。本报告以常用分析软件Matlab为例&#xff0c;介绍如何通过编写代码实现一个简单的CNN卷积神经网络。 Step 1: 打开matlab&#xff0c;新建脚本 1、安装matlab 2018以上版本后&#xff…

【系统设计——认证授权——基本概念知识】

1. 认证和授权的区别 Authentication&#xff08;认证&#xff09; 是验证您的身份的凭据&#xff08;例如用户名/用户 ID 和密码&#xff09;&#xff0c;通过这个凭据&#xff0c;系统得以知道你就是你&#xff0c;也就是说系统存在你这个用户。所以&#xff0c;Authenticat…

区块链技术入门:以太坊智能合约详解

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 区块链技术入门&#xff1a;以太坊智能合约详解 区块链技术入门&#xff1a;以太坊智能合约详解 区块链技术入门&#xff1a;以太…

【Spring】更加简单的将对象存入Spring中并使用

前言 本期讲解&#xff1a;通过Controller、Service、Repository、Component、Configurtion类注解、Bean方法注解&#xff0c;来更加简单的在Spring中存与读对象。 目录 1. 类注解 1.1 通过标签 1.2 使用类注解 1.3 什么是类注解 1.4 获取Bean对象命名问题 2. 方法注解 …

Vue(JavaScript)读取csv表格并求某一列之和(大浮点数处理: decimal.js)

文章目录 想要读这个表格&#xff0c;并且求第二列所有价格的和方法一&#xff1a;通过添加文件输入元素上传csv完整&#xff08;正确&#xff09;代码之前的错误部分因为价格是小数&#xff0c;所以下面的代码出错。如果把parseFloat改成parseInt&#xff0c;那么求和没有意义…

火山引擎云服务docker 安装

安装 Docker 登录云服务器。 执行以下命令&#xff0c;添加 yum 源。 yum update -y yum install epel-release -y yum clean all yum list依次执行以下命令&#xff0c;添加Docker CE镜像源。更多操作请参考Docker CE镜像。 # 安装必要的一些系统工具 sudo yum install -y yu…

人保财险(外包)面试分享

前言&#xff1a; 这是本月面的第三家公司&#xff0c;太难了兄弟们&#xff0c;外包都不好找了&#xff0c;临近年底&#xff0c;金九银十已经错过了&#xff0c;金三银四虽然存在&#xff0c;但按照这几年的行情&#xff0c;金九银十和金三银四其实已经是不复存在了&#xf…

【D3.js in Action 3 精译_039】4.3 D3 面积图的绘制方法及其边界标签的添加

当前内容所在位置&#xff1a; 第四章 直线、曲线与弧线的绘制 ✔️ 4.1 坐标轴的创建&#xff08;上篇&#xff09; 4.1.1 D3 中的边距约定&#xff08;中篇&#xff09;4.1.2 坐标轴的生成&#xff08;中篇&#xff09; 4.1.2.1 比例尺的声明&#xff08;中篇&#xff09;4.1…

美国大选——极具典型的可视化案例!GISer学起来

有人说可视化技术有啥意义&#xff0c;不就做个大屏么&#xff1f; 那真的小看了&#xff0c;就如下图这个美国大选来看&#xff0c;这么复杂混乱的信息&#xff0c;可视化技术给你梳理的明明白白的&#xff0c;简单、直观、形象、便于记忆。 让用户能够从繁杂信息中快速抓到重…