zabbix 部署

news2024/12/23 4:02:44

1.zabbix简介

Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用
户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据
提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数
都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的
网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论
是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。

zabbix部署

ubuntu22.04部署zabbix

二进制安装

阿里源
5.0
https://mirrors.aliyun.com/zabbix/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/
6.4
wget https://mirrors.aliyun.com/zabbix/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb

下载上传对应版本
安装
dpkg -i zabbix-release_5.0-2+ubuntu22.04_all.deb

apt list|grep zabbix
dpkg -L zabbix-release #查看包的配置文件

安装后默认是zabbix的源,要替换为阿里的源,但旧版的阿里的源缺少包
sed -i.bak ‘s#repo.zabbix.com#mirrors.aliyun.com/zabbix#’ /etc/apt/sources.list.d/zabbix.list
sed -i.bak ‘s#repo.zabbix.com#mirrors.aliyun.com/zabbix#’ zabbix-agent2-plugins.list
安装
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

官方安装步骤链接
https://www.zabbix.com/cn/download?zabbix=6.4&os_distribution=ubuntu&os_version=22.04&components=server_frontend_agent&db=mysql&ws=apache
root@server02:~/nginx/nginx-1.24.0# cat /etc/apt/sources.list.d/zabbix.list 
# Zabbix main repository
deb https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/ubuntu jammy main
deb-src https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/ubuntu jammy main

apt update

重新安装源先卸载: dpkg --purge zabbix-release

安装Zabbix server,Web前端,agent
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
c. 创建初始数据库
# mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by '123456';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix


mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit
set global log_bin_trust_function_creators = 0; 是一个MySQL服务器的配置选项。当设置为0时,它禁用了对于具有DEFINER权限的存储过程和函数的二进制日志记录。这意味着在进行主从复制时,这些存储过程和函数将不会被复制到从服务器上。这个选项通常用于解决在主从复制中出现的一些权限相关的问题。
不配置在导入会提示:
ERROR 1419 (HY000) at line 2091: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)


为Zabbix server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf
DBPassword=password
 启动Zabbix server和agent进程
systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2

安装中文语言包
apt -y install language-pack-zh-hans
systemctl restart apache2

查看端口
root@server02:/etc/zabbix# netstat -antp|grep 10051

访问IP/zabbix
配置后登录
Admin/zabbix

在这里插入图片描述

源码编译安装

官方文档https://www.zabbix.com/documentation/6.0/zh/manual/installation/install

apt -y install apache2 apache2-bin apache2-data apache2-utils fontconfig-config fonts-dejavu-core fping libapache2-mod-php libapache2-mod-php8.1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libfontconfig1 libgd3 libiksemel3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.2-0 libodbc1 libopenipmi0 libsensors5  libsnmp-base libsnmp40 libsodium23 libssh2-1 libtiff5 libwebp7 libxpm4 php-bcmath php-common php-gd php8.1-common php8.1-gd php8.1-ldap php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline            libxml2-dev libxml2 snmp libsnmp-dev libevent-dev openjdk-8-jdk libcurl4-openssl-dev php8.1-xml snmpd ssl-cert  fonts-dejavu  libmysqlclient-dev



./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi
make  -j6 &&sudo make install

root@server01:/usr/local/zabbix/sbin# ln -s /usr/local/zabbix/sbin/* /usr/sbin/
root@server01:/usr/local/zabbix/sbin# ln -s /usr/local/zabbix/bin/* /usr/sbin/

编译找不到,参考https://support.zabbix.com/browse/ZBX-12324

checking for pkg-config... no
configure: error: LIBXML2 library not found
安装pkg-config即可解决:
 apt install pkg-config -y

创建数据库

mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by '123456';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

导入数据

cd database/mysql
sudo mysql -u zabbix -p zabbix < schema.sql
sudo mysql -u zabbix -p zabbix < images.sql
sudo mysql -u zabbix -p zabbix < data.sql

修改配置

root@server01:/usr/local/zabbix/etc# grep '^[^#]' zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBHost=120.77.146.92
DBName=zabbix
DBUser=zabbix
DBPassword= 123456
DBPort=3306
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

StatsAllowedIP=127.0.0.1是MySQL服务器配置文件中的一个选项,它指定了允许访问MySQL统计信息的IP地址。在这种情况下,只有IP地址为127.0.0.1的客户端可以访问MySQL统计信息。

查看日志
tail -f /tmp/zabbix_server.log
580816:20230830:235251.515 [Z3001] connection to database ‘zabbix’ failed: [2002] Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
580816:20230830:235251.515 database is down: reconnecting in 10 seconds
580816:20230830:235301.516 [Z3001] connection to database ‘zabbix’ failed: [2002] Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

修改zabbix文件指定mysql的socket位置
root@server01:/apps/zabbix/zabbix-6.0.21# find / -name mysql.sock*
/data/mysql/mysql.sock

DBSocket=/data/mysql/mysql.sock #添加此行

还是报错
使用socket文件不能用localhost连接,修改zabbix配置文件为本机地址
DBHost=172.29.21.67

root@server01:/usr/local/zabbix/etc# vi zabbix_server.conf
root@server01:/usr/local/zabbix/etc# ps -ef|grep zab
zabbix    580931       1  0 Aug30 ?        00:00:00 zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
root      580986  564313  0 Aug30 pts/3    00:00:00 tail -f /tmp/zabbix_server.log
root      581184  575792  0 00:06 pts/4    00:00:00 grep --color=auto zab
root@server01:/usr/local/zabbix/etc# kill -9 580931
root@server01:/usr/local/zabbix/etc# !zabbix
root@server01:/usr/local/zabbix/etc# netstat -antp  |grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      581188/zabbix_serve 
root@server01:/usr/local/zabbix/etc# vi zabbix_server.conf


修改后启动成功

root@server01:/usr/local/zabbix/etc#  grep '^[^#]' zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBHost=172.29.21.67
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/data/mysql/mysql.sock
DBPort=3306
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

命令行启动
zabbix_server /usr/local/zabbix/etc/zabbix_server.conf
查看端口
ss -tnlp |grep 10051

配置php和初始化登录WEB页面

root@server01:/apps/zabbix/zabbix-6.0.21/ui# cp -a /apps/zabbix/zabbix-6.0.21/ui/* /var/www/html/zabbix/

启动apahe2

在这里插入图片描述

修改php配置后重启
systemctl restart apache2
vim /etc/php/8.1/apache2/php.ini

在这里插入图片描述
在这里插入图片描述

下载配置文件并上传至目录/var/www/html/zabbix/conf/

在这里插入图片描述
Zabbix 前端已经就绪!第一次登录, 默认的用户名是 Admin,密码是zabbix

配置server文件

root@server01:/etc/apt/sources.list.d# cat /lib/systemd/system/zabbix-server.service 
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target


killall zabbix
systemctl daemon-reload

systemctl  restart  zabbix-service

这是一个 Systemd 单元文件(Unit)的示例,用于描述一个名为 “Zabbix Server” 的服务。它定义了服务的依赖关系和行为。

[Unit] 部分,描述了服务的基本信息,包括名称和描述。After 指定了该服务依赖的其他单元,在这个例子中依赖于 syslog.targetnetwork.target

[Service] 部分,定义了服务的执行参数和行为。Environment 设置了环境变量,Type 指定了进程的类型(这里是 forking)。Restart 设置了当服务发生故障时自动重启,PIDFile 指定了保存进程 ID 的文件位置,KillMode 指定了进程结束时的行为。ExecStartExecStop 是启动和停止服务时执行的命令,RestartSec 设置了重启延迟时间,TimeoutSec 设置了服务的超时时间。

[Install] 部分,定义了如何安装这个服务。WantedBy 指定了该服务在 multi-user.target 部分启动。

这个文件的作用是为 Zabbix Server 设置 Systemd 服务,使其可以在系统启动时自动运行,并在服务发生故障时进行自动重启。

部署zabbix5.0

安装zabbix,使用nginx基于LNMP安装

官方文档
https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=ubuntu&os_version=20.04&components=server_frontend_agent&db=mysql&ws=nginx

配置zabbix源
wget https://mirrors.aliyun.com/zabbix/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
dpkg -i zabbix-release_5.0-1+focal_all.deb
改为阿里源
cd /etc/apt/source.list.d/
sed -i s#repo.zabbix.com#mirrors.aliyun.com/zabbix#g zabbix*
安装zabbix-server
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent2

安装数据库

root@ubuntu20:~# apt install mysql-server

c. 创建初始数据库
产品手册
Make sure you have database server up and running.

在数据库主机上运行以下代码。

#mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by ‘123456’;
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

cat << EOF |mysql

EOF

导入初始架构和数据,系统将提示您输入新创建的密码。
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix
Disable log_bin_trust_function_creators option after importing database schema.

导入数据库后禁用
mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

修改zabbix配置文件
sed -i ‘/# DBPassword/a DBPassword 123456/’ /etc/zabbix/zabbix_server.conf

修改PHP文件编辑配置文件 /etc/zabbix/php-fpm.conf
php_value[date.timezone] = Asina/Shanghai
sed命令修改
sed -ir -e ‘/^.date.time./ s@^.*$@php_value[date.timezone] = Asia/Shanghai@g’ /etc/zabbix/php-fpm.co

修改apache
server {
listen 80;
server_name zabbix.luo.com;
其中server_name不配置,访问默认页面

默认会启动apache2 ,停止apache2,启动
systemctl stop apache2
systemctl restart zabbix-server.service zabbix-agent2.service nginx.service php7.4-fpm.service

在这里插入图片描述

修改字体

登录,安装中文包
root@ubuntu20:~# apt -y install language-pack-zh-hans && systemctl restart php7.4-fpm.service

在这里插入图片描述

字体乱码,找windows字体替代zabbix

win+R 输入fonts
选择字体传输到zabbix字体目录

备份原来的文件
root@ubuntu20:/usr/share/zabbix/assets/fonts# mv graphfont.ttf graphfont.ttf.bak
上传的文件改名字
root@ubuntu20:/usr/share/zabbix/assets/fonts# mv MSYHBD.TTC graphfont.ttf

agnet安装

root@ubuntu20:~# apt install zabbix-agent -y

修改server为zabbix server地址
vi /etc/zabbix/zabbix_agent2.conf
Server=192.168.1.150
ServerActive=192.168.1.150

systemctl restart zabbix-agent2.service

ss -tnl |grep 10050

添加主机

在这里插入图片描述

在这里插入图片描述

添加模板
在这里插入图片描述

在这里插入图片描述

使用现有模板和监控项监控主机流程
在被监控的主机上安装Zabbix Agent ,建议和 Zabbix Server 同一个版本
配置 Zabbix agent的配置文件关键两项,并重启服务生效
在Zabbix Server 上使用 zabbix_get 工具测试是否正常连接被监控主机
在Zabbix Server 添加被监控主机
在Zabbix WEB 添加已有的模板至被监控的主机
在Zabbix WEB 观察是否有新数据生成

监控windows机器

下载包
安装

在这里插入图片描述

查看进程是否启动

在这里插入图片描述

在这里插入图片描述

添加主机

在这里插入图片描述

在这里插入图片描述

检测agent是否通

root@ubuntu20:~# apt install zabbix-get
root@ubuntu20:~# zabbix_get -s 192.168.1.189 -p 10050 -k “agent.ping”
1

迁移MySQL到独立的服务器

0 停止Zabbix Server服务 (建议)
1 将MySQL上的所有数据备份出来,Zabbix Server 还在不断采集数据
mysqldump -A --single-transaction --default-character-set=utf8 > all.sql
2 恢复到独立同一个版本同一配置的MySQL服务器
mysql -uroot -p123456 < all.sql
3 修改Zabbix Server指向新的MySQL服务器 /etc/zabbix/zabbix_server.conf
4 修改php连接信息指向新的MySQL服务器 /etc/zabbix/web/zabbix.conf.php

新mysql服务器 192.168.1.250 rocky8

mysqldump -uroot -p -A -F --single-transaction > zabbix.sql
scp zabbix.sql 192.168.1.150:/

在独立数据库服务器上安装并恢复数据库
[root@rocky8 ~]# yum install mysql-server
mysql -uroot -p < /zabbix.sql

#重新授权用户允许远程连接zabbix数据库
create user zabbix@‘192.168.1.%’ identified by ‘123456’;
grant all privileges on zabbix.* to zabbix@‘192.168.1.%’;
flush privileges;

#重新授权用户允许远程连接zabbix数据库

#将php的配置指向新的数据库服务器IP
#vim /usr/share/zabbix/conf/zabbix.conf.php #rocky配置文件路径
$DB[‘SERVER’] = ‘192.168.1.250’;

#将Zabbix Server的配置指向新的数据库服务器IP
#vim /etc/zabbix/zabbix_server.conf
DBHost=192.168.1.250
DBPort=3306

启动zabbix,访问验证正常
@ubuntu20:/etc/nginx# systemctl restart zabbix-server.service

配置监控nginx

配置文件修改

location = /basic_status {
            stub_status;
            allow 127.0.0.1;
            allow 192.168.1.150;
            deny all;
            }

添加模版
在这里插入图片描述

监控PHP

采样:

通过agent采样 php-》 agent 》 server
通过http

安装php
apt -y install php-fpm

查看文件 dpkg -L php7.4-fpm

修改php配置文件
vim /etc/php/7.4/fpm/pool.d/www.conf
listen=127.0.0.1:9000 #默认是通过socket文件通信
pm.status_path = /php_status #zabbix中是status,要改为status
ping.path = /ping

nginx 添加配置
location ~ ^/(ping|php_status)$ { # zabbix中是status,要改为status
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name;
}

在这里插入图片描述

添加模版

在这里插入图片描述

在这里插入图片描述
状态也错误,php和nginx要和监控项中的对应,将php和nginx中的php_status改为satus,重启服务正常
在这里插入图片描述

ubuntu20.04配置nginx连接php

        location ~ \.php$ {
                include  snippets/fastcgi-php.conf;
                fastcgi_pass 127.0.0.1:9000;
}

查看数据
在这里插入图片描述

怎么监控一个机器的流程?
1.安装agent,配置agent
2.在web管理界面添加被监控主机
3.关联模版,模版包含很多的监控项
4. 观察脚本

监控100台主机
ansible实现agent和配置

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

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

相关文章

Cmake qt ,vtkDataArray.cxx.obj: File too big

解决方法&#xff1a; Qt4 在pro 加入“QMAKE_CXXFLAGS -BigObj” 可以解决 Qt5 在网上用“-Wa,-mbig-obj” 不能解决&#xff0c;最后通过“QMAKE_CXXFLAGS -Ofast -flto”解决问题。 Qt4 在pro 加入“QMAKE_CXXFLAGS -BigObj” 可以解决Qt5 在网上用“-Wa,-mbig-obj” …

aop中获取@PathVariable参数

1.controller中的声明 2.aop中获取 RequestAttributes attributes RequestContextHolder.getRequestAttributes(); ServletRequestAttributes servletRequestAttributes (ServletRequestAttributes)attributes; HttpServletRequest request servletRequestAttributes.getReq…

漏洞修复:在应用程序中发现不必要的 Http 响应头

描述 blablabla描述&#xff0c;一般是在返回的响应表头中出现了Server键值对&#xff0c;那我们要做的就是移除它&#xff0c;解决方案中提供了nginx的解决方案 解决方案 第一种解决方案 当前解决方案会隐藏nginx的版本号&#xff0c;但还是会返回nginx字样&#xff0c;如…

WordPress关注公众号可见内容插件源码

Wordpress公众号引流工具——关注公众号可见内容插件推荐 通过关注微信公众号&#xff0c;获取随机验证码从而获得隐藏文本的访问权限。 插件特点 隐藏内容扫码关注获取验证码 可以作为引流公众号 支持无必须API接口&#xff0c;无备案域名也可以 自定义验证接口URL 自定…

每天一道动态规划之第四天

一、与字符串相关的动态规划 1.1题目 给定一个字符串str&#xff0c;给定一个字符串类型的数组arr&#xff0c;出现的字符都是小写英文arr每一个字符串&#xff0c;代表一张贴纸&#xff0c;你可以把单个字符剪开使用&#xff0c;目的是拼出str来返回需要至少多少张贴纸可以完…

vue第1篇前端的发展历史

一 vue的发展历史 1.1 vue vue是一个渐进式的javascript框架&#xff0c;Vue 的核心库只关注视图层&#xff0c;方便与第三方库或既有项目整合。 1.2 前端知识核心快捷汇总 Soc原则&#xff1a;关注点分离原则 HTML CSS JS : 视图 &#xff1a; 刷新后端提供的数据展示…

经管博士科研基础【16】一元二次函数的解的公式

1. 一元二次函数的形式 2. 一元二次函数的图形与性质 一元二次函数的图像是一条抛物线&#xff0c;图像定点公式为(-b/2a,4ac-b*b/4a)&#xff0c;对称轴位直线x-b/2a。 3. 求根公式 形如ax*xb*xc0的一元二次方程&#xff0c;其求根公式为&#xff1a; 4. 韦达定理 如果x1和…

财报解读:份额企稳、均价上浮,小米高端化驶入正轨?

时隔半个月&#xff0c;在雷军那场颇有反响的以“成长”为主题的个人演讲之后&#xff0c;小米发布了今年二季度财报。二季报中亮眼的财务数据&#xff0c;为雷军的演讲提供了一份更加有力的注解&#xff0c;小米经过三年探索&#xff0c;似乎已经找到了高端化的诀窍&#xff0…

C++:日期类

学习目标&#xff1a; 加深对四个默认构造函数的理解&#xff1a; 1.构造函数 2.析构函数 3.拷贝构造 4.运算符重载 实现功能 1.比较日期的大小 2.日期-天数 3.前/后置&#xff0c;-- 这里基本会使用运算符重载 定义一个日期类 class Date { public://1.全缺省参数的构造函数Da…

Ubuntu的C++环境配置

文章目录 1. 如果没有配置C环境会有情况出现2. Ubuntu的C环境配置方法 上篇介绍了Ubuntu中安装和配置QtCreator&#xff0c;下来将会介绍C的相关内容。 C的简介此处不做介绍。 想要在Ubuntu上运行C程序&#xff0c;首先需要先配置好C环境。 1. 如果没有配置C环境会有情况出现…

WEB项目利用Eclipse打包成war包并部署在CentOS8

1、Eclipse把WEB项目打包成war包 2、Xftp上传war包到Linux中安装Tomcat的webapps目录 /usr/local/tomcat/apache-tomcat-9.0.80/webapps3、利用IP地址访问部署的项目 在CentOS中可用 ifconfig找到对应的IP地址 http://192.168.122.2:8080/CentOS-Web/index.html

基于SSM的物资管理系统的设计与实现(论文+源码)_kaic

【摘 要】此物资管理系统是针对生产型企业开发的。通过分析企业的实际管理工作中存在的问题&#xff0c;与管理系统开发的详细步骤及系统开发的原理&#xff0c;并利用计算机的运算速度快、存储容量大、处理逻辑问题强等优点&#xff0c;将管理工作与计算机结合起来。根据管理工…

【文心一言】学习笔记

学习资料 《听说文心一言App霸榜了&#xff0c;那必须来一波全方位实测了》 情感陪伴&#xff1a;文心一言 App 可以充当用户的情感树洞&#xff0c;提供知心姐姐、【暖男】等角色扮演&#xff0c;为用户提供情绪疏导、情感分析、约会建议等服务。 1. 模型属性 【提示词工具…

leetcode:1710. 卡车上的最大单元数(python3解法)

难度&#xff1a;简单 请你将一些箱子装在 一辆卡车 上。给你一个二维数组 boxTypes &#xff0c;其中 boxTypes[i] [numberOfBoxesi, numberOfUnitsPerBoxi] &#xff1a; numberOfBoxesi 是类型 i 的箱子的数量。numberOfUnitsPerBoxi 是类型 i 每个箱子可以装载的单元数量。…

C++算法 —— 分治(2)归并

文章目录 1、排序数组2、数组中的逆序对3、计算右侧小于当前元素的个数4、翻转对 1、排序数组 排序数组 排序数组也可以用归并排序来做。 vector<int> tmp;//写成全局是因为如果在每一次小的排序中都创建一次&#xff0c;更消耗时间和空间&#xff0c;设置成全局的就更高…

ROS-4.创建发布者和订阅者

ros中非长连接的通信使用topic的方式&#xff0c;publisher向topic发布消息&#xff0c;subscriber订阅topic消息&#xff0c;对于非应答模式的通信适合使用该模式&#xff0c;如下图 接下来我们实现一个发布者和订阅者 1. 创建功能包 在实现订阅者和发布者的时候我们需要先…

oled--SSD1315驱动

OLED 接口方式&#xff08;由硬件电路确定&#xff09;&#xff1a;6800、8080、spi、i2c. 常见的驱动芯片&#xff1a;ssd1306、ssd1315。 oled屏幕的发光原理不同于lcd&#xff0c;上电后无法直接显示&#xff0c;需要初始化后才能正常显示。 SSD1315手册资料 SSD1315是一款…

微信小程序手机号快速验证组件调用方式

目录 一、测试环境 二、问题现象 三、总结 手机号验证组件&#xff08;包括快速验证组件和实时验证组件&#xff09;调用后无法对事件进行回调这个问题&#xff0c;先说结论&#xff0c;以下是正确的使用方式&#xff1a; <!-- 手机号快速验证组件 --> <button op…

第三章 图像到图像的映射

文章目录 第三章 图像到图像的映射3.1 单应性变换3.1.1 直接线性变换算法3.1.2 仿射变换 3.2 图像扭曲3.2.1 图像中的图像3.2.2 分段仿射扭曲3.2.3 图像配准 3.3 创建全景图3.3.1 RANSAC3.3.2 稳健的单应性矩阵估计3.3.3 拼接图像 第三章 图像到图像的映射 本章讲解…

Pandas数据分析基础—pandas自带函数map()/apply()/applymap()

文章目录 前言一、Series数据处理1、map()方法2、apply()方法3、applymap()方法总结 二、DataFrame数据处理1、map()方法2、apply()方法3、applymap()方法总结 三、map、apply、applymap三个函数区别 前言 在进行数据处理时&#xff0c;经常会对一个DataFrame展开逐行、逐列、…