Zabbix监控架构

目录

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=trueyum 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.xdnf.cn/news/7688.html

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

相关文章

后台管理系统:登录页

本次项目为后台管理系统&#xff0c;在本系统内第一个页面是登录页面 登录页的各种功能介绍 作为登录页需要具有的功能有&#xff1a;点击登录时记录账户密码&#xff0c;对比账户密码的正确性&#xff0c;提示用户当前状态&#xff0c;登录完成后跳转至首页等功能。 一、网页设…

go语言解决rtsp协议只播放部分的问题(业务问题)

背景 之前不是写过一个项目嘛&#xff0c;就之前有更改过存储对接的项目 go语言对接S3存储的SDK(支持minio和OSS) 这个项目主要的业务是就一个&#xff0c;点播rtsp协议的码流&#xff0c;视频来源在存储服务器上。 这次的问题是rtsp协议只播放部分&#xff0c;需要我们进行排…

移位寄存器设计—FDRE、SRL16E及原语约束

信号处理中&#xff0c;实现数据对齐时&#xff0c;常常对单bit或多bit信号进行打拍操作&#xff0c;这个可以通过移位寄存器实现&#xff0c;SLICEM中的SRL即为移位寄存器。 这里主要记录下不同写法的效果。 1 //同步复位2 module static_multi_bit_sreg_poor #(3 parame…

Linux学习笔记之虚拟机操作

Linux简介 Linux是一种开源、免费的操作系统&#xff0c;其稳定性、安全性、处理多并发得到业界认可。Linux在服务器领域可以说是最强的&#xff0c;并且具有可定制&#xff0c;可裁剪&#xff0c;适用于嵌入式领域的特点。对于linux系统&#xff0c;它最大的的特点就是一切皆…

middleware中间件概述

中间件定义 中间件&#xff08;middleware&#xff09;是基础软件的一大类&#xff0c;属于可复用软件的范畴。顾名思义&#xff0c;中间件处在操作系统、网络和数据库之上&#xff0c;应用软件的下层&#xff08;如图 15-1 所示&#xff09;​&#xff0c;也有人认为它应该属…

《清宫辞Ⅱ》开机:陈欣予旗装惊艳回归 重新演绎宫闱传奇

演员陈欣予&#xff0c;1993年11月24日出生&#xff0c;多年来在影视剧方面取得了不错的成绩&#xff0c;在演戏的道路上&#xff0c;陈欣予不断挑战自我&#xff0c;凭借对不同角色的塑造&#xff0c;收获好评无数。 11月6日&#xff0c;由北京七耀文化传媒有限公司出品制作&a…

Linux sed命令详解-结构(清楚结构便于理解记忆)-选项-模式空间与暂存区(多示例、多图)

文章目录 sed基本结构选项-n(静默模式)-e、;(多点编辑,多条命令)-f(指定脚本文件)-i(直接修改文件与备份)-E(扩展正则表达式) 常用动作p(print,打印)i(插入内容)与a(追加内容)c、y(替换)d(delete,删除)s(替换) 其他动作l(小写L,打印特殊字符)r(在匹配行后插入指定文件内容)w(将…

开箱即用!265种windows渗透工具合集--灵兔宝盒

【渗透工具箱】灵兔宝盒-Rabbit_Treasure_Box_V1.0.1 介绍 Rabbit_Treasure_Box_V1.0.1是一款Windows渗透工具箱&#xff0c;集成Dawn Launcher管理&#xff0c;便捷备份更新。内含脚本工具及在线安全工具&#xff0c;覆盖信息收集、漏洞利用、逆向破解、蓝队防御等多领域&am…

对标 Windows Copilot 的 UOS AI,升级后更能打了

进入 2024 年&#xff0c;AI 应用迎来大爆发&#xff0c;不仅各类应用纷纷宣称“AI 赋能”&#xff0c;操作系统也不例外。前有 Windows Copilot&#xff0c;后有 Apple Intelligent&#xff0c;手机行业更是积极&#xff0c;各种 AI 手机纷纷发布。国产信创系统自然也不甘落后…

【LeetCode】每日一题 2024_11_2 使两个整数相等的位更改次数(位运算/模拟)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 题目&#xff1a;使两个整数相等的位更改次数 代码与解题思路 先读题&#xff1a; 题目要我们把 n 这个数字转换成 k 这个数字&#xff0c;但是只能是二进制位 1 转换成 0 纯模拟的解法&#xff1a; f…

2024 开源社年度评选

开源社&#xff08;英文名称为“KAIYUANSHE”&#xff09;成立于2014年&#xff0c;是由志愿贡献于开源事业的个人志愿者&#xff0c;依 “贡献、共识、共治” 原则所组成的开源社区。开源社始终维持 “厂商中立、公益、非营利” 的理念&#xff0c;以 “立足中国、贡献全球&am…

【MATLAB源码-第204期】基于matlab的语音降噪算法对比仿真,谱减法、维纳滤波法、自适应滤波法;参数可调。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 语音降噪技术的目的是改善语音信号的质量&#xff0c;通过减少或消除背景噪声&#xff0c;使得语音更清晰&#xff0c;便于听者理解或进一步的语音处理任务&#xff0c;如语音识别和语音通讯。在许多实际应用中&#xff0c;如…

C语言 | Leetcode C语言题解之第542题01矩阵

题目&#xff1a; 题解&#xff1a; /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/ type…

[SWPUCTF 2022 新生赛]Power! 反序列化详细题解

知识点: PHP反序列化(执行顺序) 构造POP链 代码审计 题目主页: 输入框可以输入内容,习惯性先查看一下页面的源代码,收集信息 发现源码中有提示参数source 先不急,再看一下其他信息 是apache服务器,php版本为7.4.30 url传参 ?sourceindex.php 回显了index.php的源码 …

docker下迁移elasticsearch的问题与解决方案

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 docker下迁移elasticsearch的问题与解决方案 数据挂载报错解决权限问题节点故障 直接上图&#x…

Spark 的介绍与搭建:从理论到实践

目录 一、分布式的思想 &#xff08;一&#xff09;存储 &#xff08;二&#xff09;计算 二、Spark 简介 &#xff08;一&#xff09;发展历程 &#xff08;二&#xff09;Spark 能做什么&#xff1f; &#xff08;三&#xff09;spark 的组成部分 &#xff08;四&…

Python GUI 编程:tkinter 初学者入门指南——微调框

在本教程中&#xff0c;将介绍如何创建 Tkinter Spinbox 微调框小部件。 Python 中 Tkinter 中的 Spinbox 小部件用于从指定的给定值范围内选择一个值。 此外&#xff0c;可以直接在 Spinbox 小组件中输入值&#xff0c;就像使用单行文本框小组件一样。 要创建 Spinbox 小部件…

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

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

Redis - 数据库管理

Redis 提供了⼏个⾯向Redis数据库的操作&#xff0c;分别是dbsize、select、flushdb、flushall命令&#xff0c; 本机将通过具体的使⽤常⻅介绍这些命令。 一、切换数据库 select dbIndex 许多关系型数据库&#xff0c;例如MySQL⽀持在⼀个实例下有多个数据库存在的&#…

大数据挖掘有哪些技术要点?

大数据挖掘的主要方法和技术有&#xff1a;分类、聚类、关联规则、回归分析、时间序列分析、文本挖掘、社交网络分析、可视化技术等。通过大数据挖掘&#xff0c;企业和研究机构能够从海量数据中提取有价值的信息和知识&#xff0c;促进决策优化和业务创新。 一、分类 分类是大…