首页
统计信息
友情链接
壁纸
Search
1
【更新】CommentToMail typecho2017&v4.1& Mailer三版本,支持php5.6/7,插件详解
158,146 阅读
2
【90APT开源免费】第三代哈弗H6、哈弗大狗、H6经典版车机开启无线ADB、升级地图、安装软件全流程
16,497 阅读
3
CentOS 7安装bbr教程
12,891 阅读
4
纯小白10分钟变身linux建站高手?宝塔linux面板全体验
12,487 阅读
5
深信服超融合架构测试介绍
11,886 阅读
技术相关
ACG相关
胡言乱语
数码杂烩
登录
Search
标签搜索
进击的巨人
漫画
宝塔
php
typecho
diy
vps
折腾
动漫
优酷路由宝
ubuntu
路由器
QQ
KMS
王忘杰
APT 高级持续性威胁 Advanced Persistent Threat
累计撰写
280
篇文章
累计收到
179
条评论
首页
栏目
技术相关
ACG相关
胡言乱语
数码杂烩
页面
统计信息
友情链接
壁纸
搜索到
280
篇与
的结果
2025-03-20
H3C无线控制器AC主备配置、AP license共享配置 、DHCP服务器Option 43配置
注意:HCL模拟器当前无法完成AP license共享,本文为虚拟机+实际设备演示,虚拟机中无法执行的命令从实际设备中演示。一、环境介绍 0、需求两台无线AC,进行主备配置,希望在AC1宕机掉线的时候,AP自动切换到AC2上,减小网络故障时间,AC license授权进行共享。1、运行环境新华三模拟器HCL v5.10.3实际设备 WX3510X两台2、地址规划AC1管理地址VLAN1 192.168.56.11 模拟器中AC1网页管理地址AC2管理地址VLAN1 192.168.56.12 模拟器中AC2网页管理地址AC1网络地址VLAN100 192.168.100.11 DHCP服务器Option 43配置地址AC2网络地址VLAN100 192.168.100.12 DHCP服务器Option 43配置地址PC地址VLAN110 192.168.110.2 手动获取AP地址VLAN120 192.168.120.x 自动获取phone地址VLAN130 192.168.130.x 自动获取核心交换机 作为上述设备的网关wifi SSID名称 haha 无加密,模拟器不支持输入密码,不支持自动重连wifi3、网络拓扑4、前期配置 仅主要配置核心交换机配置 sysname core dhcp enable vlan 1 # vlan 100 # vlan 110 # vlan 120 # vlan 130 # # dhcp server ip-pool 120 gateway-list 192.168.120.1 network 192.168.120.0 mask 255.255.255.0 option 43 hex 800b000002c0a8640bc0a8640c # dhcp server ip-pool 130 gateway-list 192.168.130.1 network 192.168.130.0 mask 255.255.255.0 # interface Vlan-interface100 ip address 192.168.100.1 255.255.255.0 # interface Vlan-interface110 ip address 192.168.110.1 255.255.255.0 # interface Vlan-interface120 ip address 192.168.120.1 255.255.255.0 # interface Vlan-interface130 ip address 192.168.130.1 255.255.255.0 # interface GigabitEthernet1/0/11 port link-mode bridge port link-type trunk port trunk permit vlan all combo enable fiber # interface GigabitEthernet1/0/12 port link-mode bridge port link-type trunk port trunk permit vlan all combo enable fiber # interface GigabitEthernet1/0/21 port link-mode bridge port access vlan 120 combo enable fiber # interface GigabitEthernet1/0/31 port link-mode bridge port access vlan 110 combo enable fiberAC1配置 sysname AC1 # vlan 1 # vlan 100 # vlan 130 # wlan service-template haha ssid haha vlan 130 service-template enable # interface Vlan-interface1 ip address 192.168.56.11 255.255.255.0 # interface Vlan-interface100 ip address 192.168.100.11 255.255.255.0 # interface GigabitEthernet1/0/0 port link-mode bridge combo enable fiber # interface GigabitEthernet1/0/11 port link-mode bridge port link-type trunk port trunk permit vlan all combo enable fiber # ip route-static 0.0.0.0 0 192.168.100.1 line vty 0 31 user-role network-operator sys user-group system # local-user admin class manage password hash 密码 service-type http authorization-attribute user-role level-15 authorization-attribute user-role network-operator # local-user ip class manage authorization-attribute user-role network-operator # ip http enable # wlan auto-ap enable wlan auto-persistent enable # wlan ap-group default-group vlan 1 # wlan virtual-ap-group default-virtualapgroup # wlan ap ap1 model WA6320-HCL serial-id H3C_66-C9-40-45-04-00 firmware-upgrade enable vlan 1 radio 1 radio enable service-template haha radio 2 radio enable service-template haha gigabitethernet 1 # return AC2配置 sysname AC2 # vlan 1 # vlan 100 # vlan 130 # wlan service-template haha ssid haha vlan 130 service-template enable # interface Vlan-interface1 ip address 192.168.56.12 255.255.255.0 # interface Vlan-interface100 ip address 192.168.100.12 255.255.255.0 # interface GigabitEthernet1/0/0 port link-mode bridge combo enable fiber # interface GigabitEthernet1/0/12 port link-mode bridge port link-type trunk undo port trunk permit vlan 1 port trunk permit vlan 2 to 4094 combo enable fiber line vty 0 31 user-role network-operator # user-group system # local-user admin class manage password hash 密码 service-type http authorization-attribute user-role level-15 authorization-attribute user-role network-operator # ip http enable # wlan auto-ap enable wlan auto-persistent enable # wlan ap-group default-group vlan 1 # wlan ap ap1 model WA6320-HCL serial-id H3C_66-C9-40-45-04-00 firmware-upgrade enable vlan 1 radio 1 radio enable service-template haha radio 2 radio enable service-template haha gigabitethernet 1 # return PC手动固定IPphone链接wifi,自动获取IP测试前期配置后,能够完成设备的PC ping 通phone二、AC主备配置 主AC配置 在我文章演示的环境中,希望主AC的全部AP都能切换到备用AC中,那么主AC仅需要配置默认AP组的优先级即可,配置优先级为7(默认为4),配置备用AC地址,配置CAPWAP主动隧道抢占功能。wlan ap-group default-group priority 7 backup-ac ip 192.168.100.12 wlan tunnel-preempt enable备用AC配置在我文章演示的环境中,备用AC需在默认AP组中声明自己是主AC的备份,配置CAPWAP主动隧道抢占功能。wlan ap-group default-group backup-ac ip 192.168.100.11 wlan tunnel-preempt enable二、AP license共享 模拟器中无法执行,配置为实际设备local 为自身member 为成员主AC配置wlan ap-license-group local ip 192.168.100.11 member ip 192.168.100.12 ap-license-synchronization enable 备用AC配置wlan ap-license-group local ip 192.168.100.12 member ip 192.168.100.11 ap-license-synchronization enable 三、DHCP服务器Option 43配置 如使用H3C作为DHCP服务器,则Option43配置如下H3C官方手册https://www.h3c.com/cn/Service/Document_Software/Document_Center/Home/Server/00-Public/Configure/Typical_Configuration_Example/DHCP_Option_43_CE-9895/#示例1: 采用PXE格式配置1个AC IPv4地址时(AC:10.23.200.1),Option选项内容各字段的配置如下。 · 80:Sub-option type,表示PXE格式的固定值。 · 07:Sub-option length,此处后面所跟数据为0000010a17c801,所以长度为7个字节。 · 0000:固定值,不可改变。 · 01:表示其后面AC IPv4地址的个数,此处为1个IPv4地址。 · 0a17c801:表示AC的十六进制IPv4地址。 最终在DHCP服务器的DHCP地址池视图下配置为option 43 hex 80070000010a17c801。 示例2: 采用PXE格式配置2个AC IPv4地址时(AC 1:10.23.200.1,AC 2:10.23.200.2),Option选项内容各字段的配置如下。 · 80:Sub-option type,表示PXE格式的固定值。 · 0b:Sub-option length,此处后面所跟数据为0000020a17c8010a17c802,所以长度为11个字节。 · 0000:固定值,不可改变。 · 02:表示其后面AC IPv4地址的个数,此处为2个IPv4地址。 · 0a17c8010a17c802:0a17c801表示AC 1的十六进制IPv4地址,0a17c802表示AC2的十六进制IPv4地址。 最终在DHCP服务器的DHCP地址池视图下配置为option 43 hex 800b0000020a17c8010a17c802。核心交换机实际配置,IP转换十六进制请自行百度dhcp server ip-pool 120 gateway-list 192.168.120.1 network 192.168.120.0 mask 255.255.255.0 option 43 hex 800b000002c0a8640bc0a8640c四、配置文件手动同步 在本文中的AC主备配置、AP license共享配置,是无法进行主备AC配置同步的,需要手动在备用AC中添加AP每次上线新AP,都需要手动在AC2中创建一次AP第一步将备用AC中MAC上线的名字修改为主AC中AP的名字wlan rename-ap 66C9-4045-0400 ap1第二步复制AC1中ap1的配置文件覆盖到AC2wlan ap ap1 model WA6320-HCL serial-id H3C_66-C9-40-45-04-00 firmware-upgrade enable vlan 1 radio 1 radio enable service-template haha radio 2 radio enable service-template haha gigabitethernet 1五、测试 PC持续ping phone当前AP在主AC上线,左侧为主此时断开主AC网络AP会在60秒内切换到备用AC上线因为模拟器不支持phone自动连接,所以需要手动让phone再次连接网络,随后ping恢复主AC恢复因模拟器限制无法演示,理论上主AC优先级高,主AC恢复后,AP会从备用AC返回主AC上线六、小结 新华三就是好啊查找资料时发现文档小BUG,已反馈H3C
2025年03月20日
393 阅读
0 评论
2 点赞
2025-03-05
VeeamBackup&Replication11 + SAPHANA COCKPIT备份恢复综合实验
Veeam卫盟是什么?Veeam在 Gartner 2021年“企业备份与恢复软件解决方案”魔力象限,同时也是Veeam 第五次入选领导者象限,实力和地位毋庸置疑。Veeam的官网为 https://www.veeam.com/cn/Veeam与其他备份软件的对比 https://www.veeam.com/cn/backup-software-comparison-for-small-business.htmlVeeam软件下载 https://www.veeam.com/cn/products/downloads/latest-version.html?ad=downloads&tab=current勒索软件猖獗,备份非常重要SAP HANA是什么?SAP HANA(高性能分析工具)是一款将数据存储在内存而不是硬盘的多模型数据库。这款列式内存数据库支持企业在同一系统中执行快速的事务处理和先进的分析处理。为什么 SAP HANA 如此重要?因为该产品支持企业近乎零延迟地处理海量数据,即时查询数据,并真正实现由数据驱动。SAP HANA 拥有独特的优势。该平台将数据存储在主内存的列存储表中,并且集联机分析处理 (OLAP) 和联机事务处理 (OLTP) 于一体,处理速度比目前市场上的其他数据库管理系统 (DBMS) 快很多。实验目标1、windows平台+linux存储库架构部署2、虚拟机备份还原3、物理机完全崩溃还原4、应用感知、数据库备份还原5、SAP数据库安装配置SAP备份插件6、接入SAP COCKPIT7、SAP HANA数据库备份还原8、故障处理9、升级veeam10、升级veeam hana插件实验环境windows2022+Alma8搭建备份系统vSphere7下进行windows2016虚拟机备份还原Centos7系统进行rm -rf /*,模拟系统完全崩溃,物理机恢复windows2016系统安装sqlserver2014进行数据库感知、备份、还原运行HANA数据库的SLES系统一套正常运行的SAP COCKPIT系统一、windows2022+Alma8搭建备份系统从官网下载Veeam Backup & Replication 11 其中免费社区版提供10个工作负载,而企业版购买后授权50个起步,本次实验使用社区免费版搭建https://www.veeam.com/cn/downloads.htmlwindows2022配置为 8cpu 16Gram 200G硬盘Alma8配置为 8cpu 16Gram 200G系统盘+1T存储盘1、安装windows平台软件,Veeam安全包包含所需的全部组件,按提示下一步直至安装完成2、部署Alma8存储库查看当前磁盘信息,1T的硬盘是我们的目标[root@alma8 ~]# fdisk -l Disk /dev/sda: 200 GiB, 214748364800 bytes, 419430400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: A2B91132-AE20-4646-8C52-9DACFD8A31AF Device Start End Sectors Size Type /dev/sda1 2048 1230847 1228800 600M EFI System /dev/sda2 1230848 3327999 2097152 1G Linux filesystem /dev/sda3 3328000 419428351 416100352 198.4G Linux LVM Disk /dev/sdb: 1 TiB, 1099511627776 bytes, 2147483648 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes创建分区[root@alma8 ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xf70aaad4. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (1-4, default 1): First sector (2048-2147483647, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-2147483647, default 2147483647): Created a new partition 1 of type 'Linux' and of size 1024 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.查看创建后的分区[root@alma8 ~]# fdisk -l /dev/sdb Disk /dev/sdb: 1 TiB, 1099511627776 bytes, 2147483648 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xf70aaad4 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 2147483647 2147481600 1024G 83 Linux创建文件系统[root@alma8 ~]# mkfs.xfs -b size=4096 -m reflink=1,crc=1 /dev/sdb1 meta-data=/dev/sdb1 isize=512 agcount=4, agsize=67108800 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=268435200, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=131071, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Discarding blocks...Done.创建挂载目录,挂载,设置开机启动挂载,重启确认挂载是否正常[root@alma8 ~]# mkdir /mnt/veeamRepo [root@alma8 ~]# mount /dev/sdb1 /mnt/veeamRepo/ [root@alma8 ~]# df -hT /dev/sdb1 Filesystem Type Size Used Avail Use% Mounted on /dev/sdb1 xfs 1.0T 7.2G 1017G 1% /mnt/veeamRepo [root@alma8 ~]# blkid /dev/sdb1 /dev/sdb1: UUID="b805dd02-9105-4ddc-ad64-1004e01d10cb" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="f70aaad4-01" [root@alma8 ~]# vi /etc/fstab UUID=b805dd02-9105-4ddc-ad64-1004e01d10cb /mnt/veeamRepo xfs defaults 0 0添加Veeam专属用户,为目标目录配置权限[root@alma8 ~]# useradd -d /home/VeeamRepo -m VeeamRepo [root@alma8 ~]# passwd VeeamRepo Changing password for user VeeamRepo. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@alma8 ~]# chown VeeamRepo:VeeamRepo /mnt/veeamRepo/ [root@alma8 ~]# chmod 700 /mnt/veeamRepo/ [root@alma8 ~]# ls -l /mnt/ total 0 drwx------. 2 VeeamRepo VeeamRepo 6 Jun 24 19:44 veeamRepo为VeeamRepo用户配置sudo权限,此权限是为了安装veeam存储库软件,后面安装完会取消[root@alma8 ~]# visudo ## Allow root to run any commands anywhere root ALL=(ALL) ALL VeeamRepo ALL=(ALL) ALL3、在veeam平台添加Backup Repository存储库存储库系统类型linux存储库命名添加服务器目标IP目标用户名密码保存ssh指纹点击Populate可查看分区情况选择保存位置、开启XFS fast cloning、开启7天内防删除添加完成4、关闭linux sudo用户[root@alma8 ~]# visudo ## Allow root to run any commands anywhere root ALL=(ALL) ALL #VeeamRepo ALL=(ALL) ALL查看linux上veeam进程信息[root@alma8 ~]# ps aux | grep veeam VeeamRe+ 8874 0.0 0.1 1348496 19640 ? Ssl 20:01 0:00 /opt/veeam/transport/veeamtransport --run-service root 8878 0.0 0.0 100212 7168 ? Sl 20:01 0:00 /opt/veeam/transport/veeamtransport --run-environmentsvc 7:6 root 8880 0.1 0.0 167304 4600 ? Sl 20:01 0:00 /opt/veeam/transport/veeamimmureposvc --subprocess --log /var/log/VeeamBackup --stdio 9:7 root 9657 0.0 0.0 221928 1152 pts/0 S+ 20:10 0:00 grep --color=auto veeam添加linux存储库后,可将windows上默认的存储库删除二、vSphere7下进行windows2016虚拟机备份还原1、接入vCenter,按提示下一步即可添加完成2、创建备份计划配置定时执行策略我这里仅执行一次备份中备份完成可查看备份报告3、快速恢复veeam快速恢复功能,可以在通过挂载备份库的方式直接拉起虚拟机,快速恢复业务可以选择要恢复的时间点,默认为最后一次备份覆盖原虚拟机还是新建虚拟机如果原虚拟机还在线,那么快速恢复的虚拟机不要同时连接网络,防止IP冲突虚拟机已经快速上线注意:此方法同样可以用于物理机到虚拟机(P2V)的停机转换此时我们可以在veeam选择将所有文件迁移到虚拟化,或者关闭这个虚拟机三、物理机Centos7系统进行rm -rf /*模拟系统完全崩溃备份还原对物理机centos7系统进行完全备份,此时需要添加物理机备份组和策略对系统执行破坏操作,重启后无法进入系统rm -rf /*恢复方案一:将备份挂载到虚拟化快速恢复业务挂载到虚拟机后需要重新配置网络恢复方案二:通过恢复镜像对物理机进行完全恢复物理机制作 veeam-recovery-media-5.0.2.4567_x86_64.iso 启动盘并启动同意协议设置网络选择卷还原,链接到veeam平台选择还原点还原中还原完成,移除启动盘,此时业务已经完全恢复四、windows2016系统安装sqlserver2014进行数据库感知备份还原添加2016系统,并开启应用感知,接入虚拟化和物理机都可以如果系统管理员也是数据库管理员,那么只需要配置系统管理员账号密码;如果系统管理员不是数据库管理员,那么还需要单独配置sa用户立即进行备份模拟黑客攻击,删除3个数据库通过veeam进行sql数据库单独恢复,需要开放数据库1433端口快速挂载成功五、centos7安装配置SAP备份插件进行SAP备份时需要将存储库的访问设置为管理员访问登录hdbstudio查看当前数据库状态1、上传、安装、配置SAP插件exp-hana:~ # ls .ICEauthority .cache .hdb .viminfo Downloads Public Videos .Xauthority .config .local Desktop Music Templates bin .bash_history .gnupg .ssh Documents Pictures VeeamPluginforSAPHANA-11.0.1.1261-1.x86_64.rpm inst-sys 安装插件 exp-hana:~ # rpm -ivh VeeamPluginforSAPHANA-11.0.1.1261-1.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:VeeamPluginforSAPHANA-11.0.1.1261################################# [100%] Run "SapBackintConfigTool --wizard" to configure the Veeam Plug-in for SAP HANA 配置插件 exp-hana:~ # SapBackintConfigTool --wizard Enter backup server name or IP address: 172.16.21.118 Enter backup server port number [10006]: Enter username: administrator Enter password for administrator: Available backup repositories: 1. Backup Repository linux Enter repository number: 1 Configuration result: SID EDB has been configured 查看插件配置 exp-hana:~ # SapBackintConfigTool --show-config Backup server name: 172.16.21.118 Port: 10006 User name: administrator Domain: Repository: 1. Backup Repository linux Delete orphaned backups after (days): Disabled Restore from copy: Disabled Source server: Disabled Source repository: Disabled2、进行HANA数据库接入Veeam登录hdbstudio控制台,打开备份管理终端backup console确认接口对接正常,配置日志记录方式为backint启动全局控制管理台open administration启用catalog和log的备份接口双击修改为true修改完成在备份还原中可以查看当前所有租户库当前数据库有一个系统数据库和两个租户数据库3、查看Veeam控制台,会生成HANA backint任务,log和catalog同步存储到Veeam中六、接入SAP COCKPIT登录SAP COCKPIT管理控制台,我们要接入的目标数据库为172.16.10.240,接入三个数据库EDBsystemdb、E4T、EDB1、登录Cockpit Manager管理控制台,将上面三个数据库注册到Cockpit中2、注册系统数据库填写相关信息创建备份专用用户注册成功3、分别注册两个租户数据库七、SAP HANA数据库备份还原登录Cockpit Manager操作控制台1、这次添加的三个为正式数据库点击查看数据库状态,首次添加需验证保存凭证,点击Credentials和SAP Control Credentials分别验证SAP Control Credentials为数据库管理员edbadm,Credentials为SYSTEM用户保存凭证后,点击数据库可查看详细信息并配置备份计划和备份选项2、配置备份选项Backup Configuration开启备份计划启用保留策略启用启动删除备份,保留60天,最低保存2个备份,删除时同时删除本地和backint文件,备份选项配置完成3、配置备份计划Backup Schedules创建备份计划每天11:08完全备份到backint创建完成4、登录Veeam观察备份状态备份中cockpit观察备份状态备份完成5、还原测试登录hdbstudio,还原租户库E4T停止数据库选择备份Veeam显示为恢复任务恢复完成八、故障处理故障一当有一天你的veeam使用中报错无法打开,出现如下错误,不必惊慌此故障是因为veeam默认安装的数据库版本是sqlserver2016 Express,此版本的数据库有体积限制,上面的报错触发上限了,升级为开发版或企业版后无限制,即可解决问题故障二当有一天你升级veeam时,升级包提示错误,不必惊慌一般情况下是因为授权文件导致的C:\Program Files\Common Files\Veeam\VeeamLicense.dll根据以往的经验,“VeeamLicense.dll 把这文件重名名,升级成功之后再 重名名回去就好了升级完成故障三进行备份时提示LvmDriver: Failed to create LVM instance.按官方说明在 /etc/lvm/lvm.conf中添加units="h"故障四进行SAP备份时,周期性出现"Backint process was canceled due to a connection timeout"错误,出现时间与SAP备份任务相同,具有关联性联系veeam亚洲技术支持得知,Backup Repositories默认有并限制,取消并发限制后正常https://helpcenter.veeam.com/archive/backup/110/vsphere/limiting_tasks.htmlLimit maximum concurrent tasks to:4九、Veeam11升级Veeam121、下载12安装包注册下载Veeam Backup & Replication 12.2版 : 12.2.0.334大小 : 12.3 GBhttps://www.veeam.com/cn/products/downloads/latest-version.html?ad=downloads&tab=currentMD5:70d4688a70d92287ff9bbf0e6bce9b19SHA1:0edeb141af8ddd368a9e6dac1fdbae15e0e55c55下载完一定要核对MD52、升级安装无特殊注意事项,升级后默认是社区版,再加载11的授权文件即可3、升级后按提示进行组件的升级即可十、Veeam12.2升级Veeam12.3升级方式相同,无特别注意事项 SAP HANA插件升级 从安装包找到插件 rpm -Uvh VeeamPluginforSAPHANA-12.3.0.310-1.x86_64.rpm SapBackintConfigTool --wizard Enter backup server name or IP address [x.x.x.x]: Enter backup server port number [10006]: Enter username [administrator]: Enter password for administrator [(do not change the existing password)]: Available backup repositories: 1. Backup Repository linux Enter repository number [1]: 1 Configuration result: SID XXX has been configured SID XXX has been configured 完成完毕一键三连
2025年03月05日
884 阅读
0 评论
3 点赞
2025-02-19
Zabbix运维监控系统对接ollama deepseek 本地AI大模型进行故障告警分析企业微信机器人webhook推送
前言 大家好,我是王忘杰,刷到社区一篇zabbix与AI结合的文章,感觉与AI结合的方向对了 Zabbix运维监控系统与AI大模型交互实践分享 随后整理思路,考虑如何以合理的方式来进行故障告警AI分析故障AI分析发送到企业微信可能存在以下问题:1、不能使用企业微信应用的方式发送,企业微信应用是对用户一对一发送,每发送一次就要调用一次AI,应当使用企业微信机器人的方式,发送到群里,这样仅发送一次就行了。2、AI服务器可能存在故障,脚本必须能够处理故障,防止因为服务器故障导致告警无法接收3、AI问答速度必须足够快,并且要限制字数,如果AI响应缓慢并且长篇大论,则会失去时效性。aiwebhook脚本设计思路实际效果展示一、前提准备 首先,你应当本地部署了zabbix告警系统,如果你还不会,可以查看王工相关教程 ALMA Linux 8飞速搭建zabbix6LTS、微信邮箱短信报警、windows、linux、交换机、vCenter监控、grafana面板、modbus动环采集、ZbxTable分析系统、Mysql、MSsql数据库监控、分组报警 https://90apt.com/2982其次,你应当本地部署了ollama开源大模型,如果你还不会,可以查看王工相关教程 个人电脑 服务器 快速部署深度求索DeepSeek-R1本地大模型 https://90apt.com/5370你的zabbix服务器上,必须使用python3.8及以上版本,安装ollama库和requests库 ollama python库 https://github.com/ollama/ollama-python ollama python库Python: 安装 Python 3.8 或更高版本。pip: 确保已安装 pip,Python 的包管理工具。ollama 库: 用于更方便地与 Ollama API 交互。安装命令如下:pip install ollama pip install requests可以使用ollama-python示例代码进行测试from ollama import Client client = Client( host='http://localhost:11434', headers={'x-some-header': 'some-value'} ) response = client.chat(model='qwen2.5:1.5b', messages=[ { 'role': 'user', 'content': '王忘杰是谁?', }, ]) print(response) 以上准备好,我们继续二、软件开发 企业微信webhook代码我从百度搜索,找篇文章 zabbix基于webhook发送到企业微信 https://blog.csdn.net/u010533742/article/details/109068187结合ollama-python示例代码,进行组合开发aiwebhook.py#!/bin/python3.8 import requests import sys import json from ollama import Client class WechatImage(object): # 发送消息 def send_news_message(self, qwurl, subject, content, strairesponse): url = qwurl data = { "msgtype": "markdown", "markdown": { "content": subject + '\n' + content + '\nAI分析\n' + strairesponse } } headers = {'content-type': 'application/json'} reponse = requests.post(url, json.dumps(data), headers=headers) return reponse if __name__ == '__main__': qwurl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=00000000000000000000000' #替换为企微的专用地址 subject = str(sys.argv[2]) content = str(sys.argv[3]) try: client = Client( host='http://locahost:11434', #ollama地址 headers={'x-some-header': 'some-value'}, timeout = 10 #超时时间 ) airesponse = client.chat(model='qwen2.5:1.5b', messages=[ #选择的模型 { 'role': 'user', 'content': "你是一个专业的IT工程师,简短简洁的告诉我下面信息的原因和处理措施,字数控制在100字以内" + content}, #提示词 ]) strairesponse = str(airesponse['message']['content']) #print(strairesponse) except: strairesponse = "\nAI超时,请检查AI后端" #超时处理 wechat_img = WechatImage() wechat_img.send_news_message(qwurl, subject, content, strairesponse) print("执行完毕") 代码中model='qwen2.5:1.5b'为模型,如果使用deepseek,可以根据显卡配置改为deepseek-r1:1.5b提示词可以自己编辑三、部署测试 1、在企业微信群中创建机器人,获取webhook地址2、将脚本放置到zabbix脚本目录中 /usr/lib/zabbix/alertscripts/aiwebhook.py并给予执行权限 chmod +x aiwebhook.py3、配置zabbix服务器3.1 新建报警媒介管理-媒介-创建媒介类型名称 aiwebhook 类型 脚本 脚本名称 aiwebhook.py 脚本参数 {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE} 描述 企业微信ai报警3.2 消息模板消息类型 问题 主题 告警通知 消息 主机:{HOST.NAME} 地址:{HOST.IP} 项目:{ITEM.NAME} 取值:{ITEM.LASTVALUE} 等级:<font color="warning">{TRIGGER.SEVERITY}</font> 状态:<font color="warning">{TRIGGER.STATUS}</font> 信息:{TRIGGER.NAME} 时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}消息类型 问题恢复 主题 恢复通知 消息 主机:{HOST.NAME} 地址:{HOST.IP} 项目:{ITEM.NAME} 取值:{ITEM.LASTVALUE} 等级:<font color="info">{TRIGGER.SEVERITY}</font> 状态:<font color="info">{TRIGGER.STATUS}</font> 信息:{TRIGGER.NAME} 时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}3.3 触发器动作配置-动作-触发器动作-创建动作发送给管理员操作添加 操作和恢复操作操作恢复操作4、重启一台闲置业务,触发告警完成四、小结 王工666
2025年02月19日
541 阅读
0 评论
4 点赞
2025-02-16
windows PC/服务器使用技巧、经验记录
1、关闭“幽灵”和“熔断”漏洞防护可恢复部分性能,有风险:https://www.grc.com/inspectre.htm2、Chrome开启多线程下载在地址栏输入 chrome://flags/,然后在搜索框中输入 Parallel downloading,选择enabled,重启Chrome3、如何在 Windows 上查看 HEIC 格式照片?https://www.microsoft.com/en-us/p/heif-image-extensions/9pmmsr1cgpwg?activetab=pivot:overviewtab4、win10自动登陆账号打开“设置-账户-登录选项”;取消“需要通过Windows Hello登录Microsoft账户”前面的复选框;点击桌面左下角的搜索栏,输入“netplwiz”,然后右侧点击“以管理员身份运行”;取消“要使用本计算机,用户必须输入用户名和密码”前面的复选框,并根据提示输入正确的账号名和密码;5、关闭休眠文件使用管理员运行cmd,执行:powercfg -h off 6、win10企业版无法访问共享文件夹首先我们按“window R键”打开运行窗口。在该窗口文本输入处输入“gpedit.msc”,这样本地组策略编辑器就能被启动。进入编辑器页面后,找到并点击页面左侧列的“计算机配置”。4.接着点击计算机配置下的“管理模板”选项。然后在管理模板下,依次点开“网络”-“Lanman工作站”。打开“Lanman工作站”后,在页面右侧列找到“启用不安全的来宾登录”。7.双击该选项,并选择“已启用”,再点击“确定”即可。启动不安全的来宾登录7、WIN10 添加自动启动程序无效的解决方案将启动项目加入Hkey_local_machine\software\wow6432node\microsoft\windows\currentversion\run或放入开机启动目录 运行-shell:Common Startup8、WPS右键无新建doc、xls等快捷方式重置插件,重新注册9、使加域的计算机具备本地管理员权限使用本地管理员登录计算机,在本地管理员组中加入域用户10、win11右键管理员菜单样式j经典 reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve x新版 reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f11、命令行禁用UACC:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f 0为禁用 1为默认12、win11任务栏展开https://github.com/valinet/ExplorerPatcher/releases13、windows查看wifi无线信号强度netsh wlan show interfaces14、解决FTP因windows防火墙拦截的方法防火墙放行 windows-system32-svchost.exe(windows服务主进程)15、windows远程桌面登录提示内部错误Error Code 0x4微软论坛搜索https://social.technet.microsoft.com/Forums/en-US/f7ed9049-36a5-4def-90f8-14ebb70e6671/error-code-0x4新建注册表项Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server MaxOutstandingConnections DWORD 300016、一键修改远程桌面端口、开放防火墙、开启ping回显REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Remote Assistance" /v "fAllowToGetHelp" reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v "PortNumber" /t REG_DWORD /d "0xf3b6" /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v "PortNumber" /t REG_DWORD /d "0xf3b6" /f net stop TermService /y net start TermService /y netsh advfirewall firewall add rule name="secrdp" dir=in action=allow protocol=TCP localport=62390 netsh advfirewall firewall add rule name="_Ping" dir=in protocol=icmpv4 action=allow17、配置windows计划任务运行 任务计划程序常规-不管用户是否登录等要运行常规-使用最高权限运行每天每2分钟运行一次触发器操作-启动程序设置-如果此任务已经运行,以下规则适用:停止现有实例18、windows重置SIDC:\Windows\System32\Sysprep勾选通用,等待重启即可18、.NET:这台计算机中已经安装了.net framework 4.8或更高的更新安装.NET Framework 4.8 开发者工具包https://dotnet.microsoft.com/zh-cn/download/visual-studio-sdks19、windows计算md5certutil -hashfile 文件 MD5
2025年02月16日
612 阅读
0 评论
5 点赞
2025-02-06
中小企业快速合规,快速部署开源堡垒机TELEPORT v3.x 解决win11黑屏问题、远程报错
为什么不是JumpServer? 说起开源堡垒机,恐怕JumpServer已经成为了代表,如果中小型企业要部署一台堡垒机,为什么不是JumpServer? 这就要说JumpServer的两个小缺点: 1、大型且繁琐 随着版本的迭代,JumpServer已经变得大型且繁琐,安装、升级、配置维护都成了运维的负担。 2、不支持本地RDP客户端 开源版JumpServer只支持linux发起本地客户端,但不支持windowsRDP客户端,这对中小型企业来说相当不友好 而TELEPORT正是为了解决这个两个痛点而来。官方介绍: Teleport是一款简单易用的开源堡垒机系统,具有小巧、易用的特点,支持 RDP/SSH/SFTP/Telnet 协议的远程连接和审计管理。Teleport由两大部分构成:跳板核心服务 WEB操作界面Teleport非常小巧且极易安装部署:仅需一分钟,就可以安装部署一套您自己的堡垒机系统!!因为Teleport内建了所需的脚本引擎、WEB服务等模块,因此不需要额外安装其他的库或者模块,整个系统的安装与部署非常方便。官方网站: https://tp4a.com/一、安装 1、服务端服务端安装包下载https://tp4a.com/download安装文档https://docs.tp4a.com/install/安装tar -zxvf teleport-linux-3.x.tar.gz cd teleport-linux-3.x sudo ./setup.sh登录初始化即可http://teleport服务器IP:7190/系统界面2、客户端https://tp4a.com/download客户端放置在服务器位置,即可点击页面下载[root@baoleiji ~]# mkdir /usr/local/teleport/data/assist -p [root@baoleiji assist]# ls teleport-assist-macos-3.6.3.dmg teleport-assist-windows-3.6.3.exe二、接入用户 导入域账号 用户-用户管理-设置LDAP三、添加主机 添加主机 资产-主机及账号-添加主机四、添加账号 绑定账号 资产-主机及账号-账号数五、运维授权 创建授权 运维-运维授权-新建授权策略编辑授权策略 添加用户 添加主机六、审计授权-查看录像 审计授权与运维授权相同 审计-审计授权-新建授权策略 添加用户 添加主机查看录像 审计-会话审计-查看回放七、使用方式 普通用户安装客户端后登录浏览器提示时选择打开teleport助手登录主机 运维-主机运维1、windows主机选择合适的分辨率唤醒客户端登陆成功2、linux主机点击SSH唤醒客户端 登陆成功3、其他可在助手设置修改本地客户端类型八、故障处理 1、存在core服务崩溃BUG,可以通过定时任务启动*/10 * * * * /etc/init.d/teleport start2、win11远程黑屏默认路径RDP客户端为 C:\Windows\System32\mstsc.exe黑屏原因由于win11更新RDP客户端程序不兼容,导致TP堡垒机远程黑屏解决方案从win10 LTSC系统中提取RDP客户端程序给win11使用RDP程序所需文件wbem目录、zh-CH目录、mstsc.exe、mstscax.dll我这里放置在D盘mstsc目录下,堡垒机助手指定文件再次远程,恢复正常3、清理录像teleport V3堡垒机快速清除180天前的录像 cd /usr/local/teleport/data/replay/ find . -mtime +180 -exec ls -l {} \; find . -mtime +180 -exec rm -rf {} \;4、远程连接报错核心日志 The server requires that the client support Enhanced RDP Security with CredSSP原因是堡垒机不支持使用RDP协议链接,只能使用SSL在目标服务器上 开始菜单-组策略-计算机配置-管理模板-windows组件-远程桌面服务-远程桌面会话主机-安全-远程(RDP)连接要求使用指定的安全层另外不要开启 仅允许运行使用网络级别身份验证的远程桌面的计算机连接九、总结 开源、快速、功能强大项目捐赠:https://tp4a.com/donate
2025年02月06日
1,630 阅读
0 评论
8 点赞
2025-02-05
个人电脑 服务器 快速部署深度求索DeepSeek-R1本地大模型
一、项目链接 ollamahttps://ollama.com/1Panelhttps://1panel.cn/深度求索DeepSeek-R1https://www.deepseek.com/DeepSeek-R1蒸馏模型https://ollama.com/library/deepseek-r1Anolis OS 8https://openanolis.cn/anolisos二、windows个人电脑本地使用DeepSeek-R1本地大模型 下载ollama windows客户端 https://ollama.com/downloadhttps://github.com/ollama/ollama/releases 安装运行DeepSeek-R1-蒸馏-Qwen-1.5Bollama run deepseek-r1:1.5b我的GTX4060显卡,可以运行DeepSeek-R1-Distill-Llama-8B蒸馏模型,为了演示快速我使用1.5b模型,大小仅为1.1G完整量化模型为ollama run deepseek-r1:671b 404G,跟openai-o1掰手腕的正是他,量化模型与显存几乎1:1,如果运行671b 404G,那么显存也要在671G以上,我的GTX4060仅有8G,所以能使用8b 4.9G模型进行对话终端输入ollama run deepseek-r1:1.5b直接进行对话正确安装显卡驱动的情况下,默认调用显卡退出>>> /? Available Commands: /set Set session variables /show Show model information /load <model> Load a session or model /save <model> Save your current session /clear Clear session context /bye Exit /?, /help Help for a command /? shortcuts Help for keyboard shortcuts Use """ to begin a multi-line message. >>> /bye默认ollama开机启动,可以通过任务管理器关闭三、服务器使用1panel面板快速部署DeepSeek-R1本地大模型 使用龙蜥anolis8系统,部署dockeryum install -y yum-utils #阿里云加速源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce docker-ce-cli containerd.io systemctl enable --now docker部署1panel面板curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.shdocker镜像 2月5日可用,配置到1panel面板中https://docker.xuanyuan.me安装MaxKB和Ollama应用端口默认不允许外部访问,注意勾选 允许端口外部访问会放开防火墙端口查看Ollama接口密钥,容器日志配置MaxKB登录默认账户密码username:admin password:MaxKB@123..配置deepseek-r1:1.5b添加ollama模型添加自动下载,等待下载完成即可配置使用体验大模型进行对话MaxKB更多功能可查看MaxKB文档自行体验四、windows ollama给外部用为当前windows系统添加环境变量:电脑-属性-高级系统设置-环境变量变量:OLLAMA_HOST,值:0.0.0.0:11434同时加载5个模型变量: OLLAMA_NUM_PARALLEL,值:5变量: OLLAMA_MAX_LOADED_MODELS,值:5模型位置OLLAMA_MODELS,值:E:\ollamaimagers模型在内存中驻留24小时OLLAMA_KEEP_ALIVE,值:24h重启电脑防火墙根据情况开放访问地址为 http://IP:11434五、N卡安装CUDA ollama显卡支持列表 https://ollama.readthedocs.io/gpu/ 不在列表中的ollama无法调用GPU命令行输入nvidia-smi 根据显示的CUDA Version安装对应的CUDA Toolkit Archive https://developer.nvidia.com/cuda-toolkit-archive 如CUDA Version12.8则下载CUDA Toolkit 12.8.0 (January 2025)
2025年02月05日
434 阅读
0 评论
1 点赞
2025-02-04
思通数科舆情网络情报分析系统docker一键部署
在线体验环境地址:https://open-yuqing.stonedt.com/docker run -itd --name stonedt_yuqing -p 8085:8085 registry.cn-beijing.aliyuncs.com/stonedt_yuqing/stonedt_yuqing:1.0.7访问地址 http://ip:8085 用户名13900000000 密码stonedt完成账号已过期! 注意,默认的账号会过期,并且没有地方配置过期时间,莫慌跟我操作进入容器登陆数据库 # mysql -uroot -p123456 查看当前数据库 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | stonedt_portal | | sys | +--------------------+ 5 rows in set (0.04 sec) 进入stonedt_portal库 mysql> use stonedt_portal; Database changed 列出表 mysql> show tables; +--------------------------+ | Tables_in_stonedt_portal | +--------------------------+ | data_favorite | | systemlog | | user | 查看user表 mysql> select * from user; +----+---------------------+-------------+-------------+----------------------------------+--------------------+---------------------+--------+----------+---------------+--------+-------------+----------+-----------------+-----------+------------+------------+-----------+---------------+----------------+----------+---------------+----------------+----------+---------------------+-----------+ | id | create_time | user_id | telephone | password | email | end_login_time | status | username | wechat_number | openid | login_count | identity | organization_id | user_type | user_level | wechatflag | is_online | nlp_secret_id | nlp_secret_key | nlp_flag | xie_secret_id | xie_secret_key | xie_flag | term_of_validity | mail_json | +----+---------------------+-------------+-------------+----------------------------------+--------------------+---------------------+--------+----------+---------------+--------+-------------+----------+-----------------+-----------+------------+------------+-----------+---------------+----------------+----------+---------------+----------------+----------+---------------------+-----------+ | 97 | 2022-02-14 11:23:13 | 13900000000 | 13900000000 | xx | 13900000000@qq.com | 2025-01-17 12:06:40 | 1 | NULL | NULL | NULL | 132 | NULL | NULL | 3 | NULL | NULL | 1 | NULL | NULL | 0 | NULL | NULL | 0 | 2025-01-19 00:00:00 | NULL | 可以看到term_of_validity上个月就过期了,改一下,改到2099年 mysql> UPDATE user SET term_of_validity='2099-01-19 00:00:00' WHERE id=97; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 登陆成功,修改完成
2025年02月04日
551 阅读
0 评论
0 点赞
2024-11-28
大型数据库sysbench测试结果 oceanbase4.3.4集群 MYSQL8.0.40单机调优 PGSQL17调优
一、系统配置和调优参数 MYSQL8.0.40单机 24C128G调优key_buffer_size=2048MB join_buffer_size=17000KB tmp_table_size=4096MB innodb_buffer_pool_size=8200MB sort_buffer_size=8200KB read_buffer_size=8200KB read_rnd_buffer_size=4096KB thread_stack=1024KB binlog_cache_size=512KB thread_cache_size=512 table_open_cache=4096 max_connections=10000PGSQL17单机 24C128G调优max_connections = 10000 shared_buffers = 2048MB work_mem = 512MB maintenance_work_mem = 1024MBOB集群 1zone6主机 租户24C48G默认设置二、测试参数 每个表行数1千万,350个表,总行数35亿,并发数80,在同一个超融合集群中三、测试数据 OB集群OLTP读写混合场景[ 10s ] thds: 80 tps: 260.33 qps: 5296.02 (r/w/o: 3718.86/1048.51/528.65) lat (ms,95%): 802.05 err/s: 0.00 reconn/s: 0.00 [ 20s ] thds: 80 tps: 371.01 qps: 7423.65 (r/w/o: 5196.51/1485.13/742.02) lat (ms,95%): 502.20 err/s: 0.00 reconn/s: 0.00 [ 30s ] thds: 80 tps: 608.00 qps: 12156.95 (r/w/o: 8509.74/2431.21/1216.01) lat (ms,95%): 193.38 err/s: 0.00 reconn/s: 0.00 [ 40s ] thds: 80 tps: 793.99 qps: 15880.87 (r/w/o: 11117.61/3175.27/1587.99) lat (ms,95%): 137.35 err/s: 0.00 reconn/s: 0.00 [ 50s ] thds: 80 tps: 922.80 qps: 18465.23 (r/w/o: 12924.92/3694.71/1845.60) lat (ms,95%): 114.72 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 80 tps: 929.30 qps: 18603.13 (r/w/o: 13023.95/3720.59/1858.59) lat (ms,95%): 130.13 err/s: 0.00 reconn/s: 0.00OB集群OLTP只读场景压测[ 10s ] thds: 80 tps: 1893.03 qps: 30354.81 (r/w/o: 26560.74/0.00/3794.06) lat (ms,95%): 68.05 err/s: 0.00 reconn/s: 0.00 [ 20s ] thds: 80 tps: 2909.96 qps: 46562.29 (r/w/o: 40742.58/0.00/5819.71) lat (ms,95%): 41.10 err/s: 0.00 reconn/s: 0.00 [ 30s ] thds: 80 tps: 2642.26 qps: 42274.92 (r/w/o: 36990.19/0.00/5284.73) lat (ms,95%): 50.11 err/s: 0.00 reconn/s: 0.00 [ 40s ] thds: 80 tps: 3473.07 qps: 55563.89 (r/w/o: 48617.76/0.00/6946.14) lat (ms,95%): 37.56 err/s: 0.00 reconn/s: 0.00 [ 50s ] thds: 80 tps: 3646.52 qps: 58341.39 (r/w/o: 51048.65/0.00/7292.74) lat (ms,95%): 31.37 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 80 tps: 3812.57 qps: 61006.78 (r/w/o: 53381.54/0.00/7625.23) lat (ms,95%): 29.19 err/s: 0.00 reconn/s: 0.00MYSQL单机OLTP读写混合场景[ 10s ] thds: 80 tps: 0.40 qps: 96.67 (r/w/o: 84.68/3.20/8.80) lat (ms,95%): 9799.46 err/s: 0.00 reconn/s: 0.00 [ 20s ] thds: 80 tps: 8.00 qps: 144.01 (r/w/o: 93.10/34.90/16.00) lat (ms,95%): 19778.24 err/s: 0.00 reconn/s: 0.00 [ 30s ] thds: 80 tps: 12.00 qps: 234.50 (r/w/o: 164.20/46.30/24.00) lat (ms,95%): 9284.15 err/s: 0.00 reconn/s: 0.00 [ 40s ] thds: 80 tps: 10.90 qps: 238.60 (r/w/o: 173.20/43.60/21.80) lat (ms,95%): 10722.67 err/s: 0.00 reconn/s: 0.00 [ 50s ] thds: 80 tps: 14.70 qps: 289.10 (r/w/o: 199.20/60.50/29.40) lat (ms,95%): 10722.67 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 80 tps: 16.40 qps: 323.10 (r/w/o: 225.80/64.50/32.80) lat (ms,95%): 8795.93 err/s: 0.00 reconn/s: 0.00MYSQL单机OLTP只读场景压测[ 10s ] thds: 80 tps: 19.20 qps: 372.12 (r/w/o: 325.73/0.00/46.39) lat (ms,95%): 6713.97 err/s: 0.00 reconn/s: 0.00 [ 20s ] thds: 80 tps: 41.10 qps: 650.72 (r/w/o: 568.51/0.00/82.20) lat (ms,95%): 5217.92 err/s: 0.00 reconn/s: 0.00 [ 30s ] thds: 80 tps: 59.50 qps: 958.60 (r/w/o: 839.60/0.00/119.00) lat (ms,95%): 3706.08 err/s: 0.00 reconn/s: 0.00 [ 40s ] thds: 80 tps: 78.90 qps: 1260.00 (r/w/o: 1102.20/0.00/157.80) lat (ms,95%): 2932.60 err/s: 0.00 reconn/s: 0.00 [ 50s ] thds: 80 tps: 94.80 qps: 1521.49 (r/w/o: 1331.90/0.00/189.60) lat (ms,95%): 2320.55 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 80 tps: 102.90 qps: 1640.71 (r/w/o: 1434.91/0.00/205.80) lat (ms,95%): 2082.91 err/s: 0.00 reconn/s: 0.00PG单机OLTP读写混合场景[ 10s ] thds: 80 tps: 8.29 qps: 249.21 (r/w/o: 188.56/36.07/24.58) lat (ms,95%): 8638.96 err/s: 0.00 reconn/s: 0.00 [ 20s ] thds: 80 tps: 13.51 qps: 276.96 (r/w/o: 195.21/54.73/27.02) lat (ms,95%): 10343.39 err/s: 0.00 reconn/s: 0.00 [ 30s ] thds: 80 tps: 15.90 qps: 308.30 (r/w/o: 214.70/61.80/31.80) lat (ms,95%): 9118.47 err/s: 0.00 reconn/s: 0.00 [ 40s ] thds: 80 tps: 16.50 qps: 324.00 (r/w/o: 224.40/66.60/33.00) lat (ms,95%): 8638.96 err/s: 0.00 reconn/s: 0.00 [ 50s ] thds: 80 tps: 15.10 qps: 308.70 (r/w/o: 217.20/61.30/30.20) lat (ms,95%): 9452.83 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 80 tps: 17.50 qps: 358.40 (r/w/o: 252.70/70.70/35.00) lat (ms,95%): 9118.47 err/s: 0.00 reconn/s: 0.00PG单机OLTP只读场景压测[ 10s ] thds: 80 tps: 317.53 qps: 5149.51 (r/w/o: 4506.46/0.00/643.05) lat (ms,95%): 1032.01 err/s: 0.00 reconn/s: 0.00 [ 20s ] thds: 80 tps: 525.90 qps: 8423.06 (r/w/o: 7371.25/0.00/1051.81) lat (ms,95%): 337.94 err/s: 0.00 reconn/s: 0.00 [ 30s ] thds: 80 tps: 789.40 qps: 12622.80 (r/w/o: 11044.10/0.00/1578.70) lat (ms,95%): 211.60 err/s: 0.00 reconn/s: 0.00 [ 40s ] thds: 80 tps: 1327.89 qps: 21255.90 (r/w/o: 18600.01/0.00/2655.89) lat (ms,95%): 99.33 err/s: 0.00 reconn/s: 0.00 [ 50s ] thds: 80 tps: 1347.00 qps: 21545.69 (r/w/o: 18851.69/0.00/2694.00) lat (ms,95%): 102.97 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 80 tps: 1450.39 qps: 23206.88 (r/w/o: 20306.30/0.00/2900.59) lat (ms,95%): 95.81 err/s: 0.00 reconn/s: 0.00四、测试结果 OB集群占用空间大约628GMYSQL单机占用空间大约1.4TPG单机数据量大约860G读写混合场景下OB 53倍领先 >PG≈MYSQL PG、MYSQL几乎无法使用只读场景下OB 2.5倍领先>PG 10倍领先>MYSQL
2024年11月28日
380 阅读
0 评论
0 点赞
2024-11-22
快速部署Citus Postgres集群 6节点,SysBench对比测试mysql8.4、OceanBase 集群、Postgres17、mariaDB11
前文快速部署OceanBase 集群 1ZONE 6节点,使用SysBench对比测试mysql8.4单节点https://90apt.com/5039一、环境准备 1、安装规划仍在同一套超融合中部署测试,保证硬件性能相同。本次部署的对象为:Postgres17单机 32C64GmariaDB11单机 32C64GCitus Postgres单机6容器集群 2副本5工作节点哈希分布 32C64GCitus Postgres集群 2副本5工作节点32分片哈希分布 48C96GCitus Postgres集群 2副本5工作节点5分片哈希分布 48C96G关闭防火墙,避免影响实验 systemctl stop firewalld && systemctl disable firewalld2、安装部署Postgres17单机、mariaDB11单机使用anolis8系统 1panel面板一键部署Citus Postgres单机6容器集群 2副本5工作节点哈希分布 使用anolis8系统Citus Postgres集群 使用alma9系统二、1panel一键部署Postgres17单机、mariaDB11单机 1、使用1P面板一键部署即可Postgres17单机、mariaDB11单机2、性能测试2.1、MYSQL单机OLTP读写混合场景清除数据sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=IP地址 --mysql-port=端口 --mysql-db=数据库名 --mysql-user=用户名 --mysql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --rand-type=uniform --time=60 cleanup初始化测试数据sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=IP地址 --mysql-port=端口 --mysql-db=数据库名 --mysql-user=用户名 --mysql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --rand-type=uniform --time=60 prepare执行测试sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=IP地址 --mysql-port=端口 --mysql-db=数据库名 --mysql-user=用户名 --mysql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --time=60 --rand-type=uniform --db-ps-mode=disable run2.2、MYSQL单机OLTP只读场景压测准备数据sysbench --db-driver=mysql --mysql-host=IP地址 --mysql-port=端口 --mysql-user=用户名 --mysql-password=密码 --mysql-db=数据库名 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 oltp_read_only prepare运行压测sysbench --db-driver=mysql --mysql-host=IP地址 --mysql-port=端口 --mysql-user=用户名 --mysql-password=密码 --mysql-db=数据库名 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 --percentile=95 --report-interval=1 oltp_read_only run清理数据sysbench --db-driver=mysql --mysql-host=IP地址 --mysql-port=端口 --mysql-user=用户名 --mysql-password=密码 --mysql-db=数据库名 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 --percentile=95 oltp_read_only cleanup2.3、PG单机OLTP读写混合场景清除数据sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=pgsql --pgsql-host=IP地址 --pgsql-port=端口 --pgsql-db=数据库名 --pgsql-user=用户名 --pgsql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --rand-type=uniform cleanup初始化测试数据sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=pgsql --pgsql-host=IP地址 --pgsql-port=端口 --pgsql-db=数据库名 --pgsql-user=用户名 --pgsql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --rand-type=uniform prepare执行测试sysbench /usr/share/sysbench/oltp_read_write.lua --db-driver=pgsql --pgsql-host=IP地址 --pgsql-port=端口 --pgsql-db=数据库名 --pgsql-user=用户名 --pgsql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --time=60 --rand-type=uniform --db-ps-mode=disable run 2.4、PG单机OLTP只读场景压测准备数据sysbench --db-driver=pgsql --pgsql-host=IP地址 --pgsql-port=端口 --pgsql-db=数据库名 --pgsql-user=用户名 --pgsql-password=密码 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 oltp_read_only prepare运行压测sysbench --db-driver=pgsql --pgsql-host=IP地址 --pgsql-port=端口 --pgsql-db=数据库名 --pgsql-user=用户名 --pgsql-password=密码 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 --percentile=95 --report-interval=1 oltp_read_only run清理数据sysbench --db-driver=pgsql --pgsql-host=IP地址 --pgsql-port=端口 --pgsql-db=数据库名 --pgsql-user=用户名 --pgsql-password=密码 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 --percentile=95 oltp_read_only cleanup最后放测试结果三、搭建Citus Postgres单机容器集群 1、Citus相关概念分布表分布在所有节点create_distributed_table参考表全部内容集中在一个分片中,每个数据节点复制该内容,保证数据一致性create_reference_table本地表协调节点不切分就是普通本地数据库,默认并行查询跨多个节点查询允许同时运行更多查询,协调节点需增强性能数据分布方式按哈希分布 默认 扩容节点需要迁移数据重新分布按数据范围分布按数据量分布2、下载docker镜像docker pull citusdata/citus3、创建docker网络bridge网桥模式docker network create --subnet=192.168.88.0/24 citus-network查看创建的网络docker network ls NETWORK ID NAME DRIVER SCOPE 3ba81d539b5d 1panel-network bridge local c24c0167d92e bridge bridge local de9fd59a6f8a citus-network bridge local a253a0857538 host host local 4aae934ed291 none null local4、启动citus服务创建协调节点 coordinate服务节点 docker run -dit --name citus-cod -p 5433:5432 -v /citus/citus-cod:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 --net=citus-network citusdata/citus -c listen_addresses="*" -c shared_preload_libraries='citus'创建工作节点docker run -dit --name citus-worker10 -v /citus/worker10:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -e POSTGRES_HOST_AUTH_METHOD='trust' --net=citus-network citusdata/citus -c listen_addresses="*" -c shared_preload_libraries='citus' docker run -dit --name citus-worker11 -v /citus/worker11:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -e POSTGRES_HOST_AUTH_METHOD='trust' --net=citus-network citusdata/citus -c listen_addresses="*" -c shared_preload_libraries='citus' docker run -dit --name citus-worker12 -v /citus/worker12:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -e POSTGRES_HOST_AUTH_METHOD='trust' --net=citus-network citusdata/citus -c listen_addresses="*" -c shared_preload_libraries='citus' docker run -dit --name citus-worker13 -v /citus/worker13:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -e POSTGRES_HOST_AUTH_METHOD='trust' --net=citus-network citusdata/citus -c listen_addresses="*" -c shared_preload_libraries='citus' docker run -dit --name citus-worker14 -v /citus/worker14:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -e POSTGRES_HOST_AUTH_METHOD='trust' --net=citus-network citusdata/citus -c listen_addresses="*" -c shared_preload_libraries='citus' docker run -dit --name citus-worker15 -v /citus/worker15:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -e POSTGRES_HOST_AUTH_METHOD='trust' --net=citus-network citusdata/citus -c listen_addresses="*" -c shared_preload_libraries='citus'5、往集群添加节点进入postgresql协调节点docker exec -it citus-cod psql -U postgres添加工作节点 select * from master_add_node('citus-worker10',5432); select * from master_add_node('citus-worker11',5432); select * from master_add_node('citus-worker12',5432); select * from master_add_node('citus-worker13',5432); select * from master_add_node('citus-worker14',5432); select * from master_add_node('citus-worker15',5432);查看工作节点select * from master_get_active_worker_nodes(); node_name | node_port ----------------+----------- citus-worker10 | 5432 citus-worker11 | 5432 ........6、管理节点删除工作节点 DELETE FROM pg_dist_placement WHERE groupid = (SELECT groupid FROM pg_dist_node WHERE nodename ='citus-worker11' AND nodeport = '5432' LIMIT 1);移除节点SELECT master_remove_node('citus-worker11', '5432');重新平衡分片SELECT rebalance_table_shards();7、数据库文件转入转出使用docker cp转入docker cp 主机文件 容器名:/容器文件使用docker cp转出docker cp 容器名:/容器文件 主机文件导入数据库备份pg_restore -U postgres -d postgres < 数据库备份.backup导出数据库备份pg_dump -U postgres postgres > 数据库备份.sql8、设置分布表分片、副本分片数为5set citus.shard_count = 5;副本数为2SET citus.shard_replication_factor = 2;分布表SELECT create_distributed_table('表名','主键'); SELECT create_distributed_table('sbtest1','id');查看分片数show citus.shard_count; citus.shard_count ------------------- 32 (1 row)查看分片详情select * from pg_dist_shard; 默认为hash分片 select * from pg_dist_shard_placement; 查看分片与节点的关系更改分片数SELECT alter_distributed_table('表名',shard_count:=2,cascade_to_colocated:=true); SELECT alter_distributed_table('sbtest1',shard_count:=2,cascade_to_colocated:=true);查看数据存放位置select get_shard_id_for_distribution_column('sbtest1',1);9、故障修复9.1、模拟协调节点故障 docker stop citus-cod工作节点仍然可以查询进入工作节点10docker exec -it citus-worker10 psql -U postgres查看数据select * from sbtest1;9.2、工作节点故障工作节点故障后,可以进行查询,不能进行写入;若要继续写入,需要先禁用故障节点citus_disable_node 恢复节点后在重新复制分片 replicate_table_shards10、性能测试命令与单机相同,但准备数据库,要先进行表分片,分片后测试性能SELECT create_distributed_table('sbtest1','id'); SELECT create_distributed_table('sbtest2','id'); ...... SELECT create_distributed_table('sbtest350','id');最后放测试结果四、搭建Citus Postgres集群 有上面的搭建经验,其实多主机集群就很简单了安装教程参考官网 https://docs.citusdata.com/en/stable/installation/multi_node_rhel.html#post-enterprise-rhel1、添加仓库curl https://install.citusdata.com/community/rpm.sh | sudo bash2、安装 PostgreSQL + Citus 并初始化数据库# 安装PG数据库和Citus扩展 sudo yum install -y citus121_16 # 初始化PG数据库 sudo /usr/pgsql-16/bin/postgresql-16-setup initdb # 加载Citus扩展 echo "shared_preload_libraries = 'citus'" | sudo tee -a /var/lib/pgsql/16/data/postgresql.conf3、配置连接和身份验证在启动数据库之前,让我们更改其访问权限。默认情况下,数据库服务器仅侦听 localhost 上的 Client 端。作为此步骤的一部分,我们指示它侦听所有 IP 接口,然后配置客户端身份验证文件以允许来自本地网络的所有传入连接。sudo vi /var/lib/pgsql/16/data/postgresql.conf # Uncomment listen_addresses for the changes to take effect listen_addresses = '*' sudo vi /var/lib/pgsql/16/data/pg_hba.conf # Allow unrestricted access to nodes in the local network. The following ranges # correspond to 24, 20, and 16-bit blocks in Private IPv4 address spaces. host all all 10.0.0.0/8 trust # Also allow the host unrestricted access to connect to itself host all all 127.0.0.1/32 trust host all all ::1/128 trust启动数据库服务器,创建 Citus 扩展# 启动数据库 sudo systemctl restart postgresql-16 # 配置开机启动 sudo systemctl enable postgresql-16 您必须将 Citus 扩展添加到要在集群中使用的每个数据库。以下示例将扩展添加到名为 postgres 的默认数据库。 sudo -i -u postgres psql -c "CREATE EXTENSION citus;"5、要在 coordinator 节点上执行的步骤在执行上述步骤后,只能在协调器节点上执行下面列出的步骤。5.1、添加 worker 节点信息我们需要通知 coordinator 有关其 worker 的信息。要添加此信息,请执行以下操作: 我们调用 UDF,它将节点信息添加到 pg_dist_node catalog 表,协调器使用该表来获取 worker 节点。对于我们的示例,我们假设有两个 worker(名为 worker-101、worker-102)。添加工作人员的 DNS 名称(或 IP 地址) 和服务器端口添加到表中。# Register the hostname that future workers will use to connect # to the coordinator node. # # You'll need to change the example, 'coord.example.com', # to match the actual hostname sudo -i -u postgres psql -c \ "SELECT citus_set_coordinator_host('coord.example.com', 5432);" # Add the worker nodes. # # Similarly, you'll need to change 'worker-101' and 'worker-102' to the # actual hostnames5.2、验证安装是否成功为了验证安装是否成功,我们检查协调器节点是否具有 选取所需的 worker 配置。此命令在 psql 中的 shell 应该输出我们添加到上面 pg_dist_node 表中的工作节点。sudo -i -u postgres psql -c "SELECT * FROM citus_get_active_worker_nodes();"6、性能测试与容器集群相同五、测试结果MYSQL单机OLTP读写混合场景[ 10s ] thds: 80 tps: 279.82 qps: 5649.14 (r/w/o: 3961.11/1120.39/567.64) lat (ms,95%): 467.30 err/s: 0.00 reconn/s: 0.00[ 20s ] thds: 80 tps: 336.51 qps: 6786.91 (r/w/o: 4759.38/1354.52/673.01) lat (ms,95%): 390.30 err/s: 0.00 reconn/s: 0.00[ 30s ] thds: 80 tps: 246.00 qps: 4918.91 (r/w/o: 3441.11/985.80/492.00) lat (ms,95%): 520.62 err/s: 0.00 reconn/s: 0.00[ 40s ] thds: 80 tps: 306.70 qps: 6129.61 (r/w/o: 4290.91/1225.30/613.40) lat (ms,95%): 434.83 err/s: 0.00 reconn/s: 0.00[ 50s ] thds: 80 tps: 354.50 qps: 7104.99 (r/w/o: 4974.69/1421.30/709.00) lat (ms,95%): 369.77 err/s: 0.00 reconn/s: 0.00[ 60s ] thds: 80 tps: 339.50 qps: 6785.12 (r/w/o: 4741.72/1364.40/679.00) lat (ms,95%): 376.49 err/s: 0.00 reconn/s: 0.00MYSQL单机OLTP只读场景压测[ 1s ] thds: 80 tps: 2322.83 qps: 37870.75 (r/w/o: 33145.27/0.00/4725.49) lat (ms,95%): 51.02 err/s: 0.00 reconn/s: 0.00[ 2s ] thds: 80 tps: 2927.99 qps: 46815.91 (r/w/o: 40960.92/0.00/5854.99) lat (ms,95%): 35.59 err/s: 0.00 reconn/s: 0.00[ 3s ] thds: 80 tps: 3440.21 qps: 55064.31 (r/w/o: 48183.89/0.00/6880.41) lat (ms,95%): 31.94 err/s: 0.00 reconn/s: 0.00[ 4s ] thds: 80 tps: 3973.17 qps: 63529.73 (r/w/o: 55585.39/0.00/7944.34) lat (ms,95%): 27.17 err/s: 0.00 reconn/s: 0.00[ 5s ] thds: 80 tps: 4175.91 qps: 66879.59 (r/w/o: 58526.76/0.00/8352.82) lat (ms,95%): 26.20 err/s: 0.00 reconn/s: 0.00[ 76s ] thds: 80 tps: 4714.21 qps: 75534.39 (r/w/o: 66105.97/0.00/9428.42) lat (ms,95%): 22.69 err/s: 0.00 reconn/s: 0.00[ 77s ] thds: 80 tps: 4679.42 qps: 74748.76 (r/w/o: 65388.92/0.00/9359.85) lat (ms,95%): 23.10 err/s: 0.00 reconn/s: 0.00[ 78s ] thds: 80 tps: 4737.18 qps: 75766.94 (r/w/o: 66295.57/0.00/9471.37) lat (ms,95%): 22.28 err/s: 0.00 reconn/s: 0.00[ 79s ] thds: 80 tps: 4650.49 qps: 74527.85 (r/w/o: 65222.87/0.00/9304.98) lat (ms,95%): 23.10 err/s: 0.00 reconn/s: 0.00[ 80s ] thds: 80 tps: 4664.70 qps: 74592.18 (r/w/o: 65266.78/0.00/9325.40) lat (ms,95%): 22.69 err/s: 0.00 reconn/s: 0.00OB集群 1zone6主机OLTP读写混合场景[ 10s ] thds: 80 tps: 194.03 qps: 3980.77 (r/w/o: 2799.12/785.60/396.05) lat (ms,95%): 960.30 err/s: 0.00 reconn/s: 0.00[ 20s ] thds: 80 tps: 585.61 qps: 11728.84 (r/w/o: 8211.80/2345.83/1171.21) lat (ms,95%): 267.41 err/s: 0.00 reconn/s: 0.00[ 30s ] thds: 80 tps: 1159.31 qps: 23173.24 (r/w/o: 16218.30/4636.33/2318.61) lat (ms,95%): 104.84 err/s: 0.00 reconn/s: 0.00[ 40s ] thds: 80 tps: 1573.49 qps: 31474.50 (r/w/o: 22032.76/6294.86/3146.88) lat (ms,95%): 70.55 err/s: 0.00 reconn/s: 0.00[ 50s ] thds: 80 tps: 1568.68 qps: 31364.68 (r/w/o: 21954.30/6272.92/3137.46) lat (ms,95%): 89.16 err/s: 0.00 reconn/s: 0.00[ 60s ] thds: 80 tps: 1876.77 qps: 37543.14 (r/w/o: 26280.21/7509.89/3753.04) lat (ms,95%): 55.82 err/s: 0.00 reconn/s: 0.00OB集群 1zone6主机OLTP只读场景压测[ 1s ] thds: 80 tps: 258.36 qps: 4791.07 (r/w/o: 4194.56/0.00/596.51) lat (ms,95%): 646.19 err/s: 0.00 reconn/s: 0.00[ 2s ] thds: 80 tps: 523.06 qps: 8405.99 (r/w/o: 7359.87/0.00/1046.12) lat (ms,95%): 601.29 err/s: 0.00 reconn/s: 0.00[ 3s ] thds: 80 tps: 678.97 qps: 10798.50 (r/w/o: 9440.56/0.00/1357.94) lat (ms,95%): 376.49 err/s: 0.00 reconn/s: 0.00[ 4s ] thds: 80 tps: 974.06 qps: 15628.02 (r/w/o: 13679.90/0.00/1948.13) lat (ms,95%): 277.21 err/s: 0.00 reconn/s: 0.00[ 5s ] thds: 80 tps: 1244.00 qps: 19876.04 (r/w/o: 17388.04/0.00/2488.01) lat (ms,95%): 207.82 err/s: 0.00 [ 76s ] thds: 80 tps: 5320.92 qps: 85129.68 (r/w/o: 74486.85/0.00/10642.83) lat (ms,95%): 19.29 err/s: 0.00 reconn/s: 0.00[ 77s ] thds: 80 tps: 5331.83 qps: 85282.34 (r/w/o: 74620.67/0.00/10661.67) lat (ms,95%): 18.95 err/s: 0.00 reconn/s: 0.00[ 78s ] thds: 80 tps: 5279.20 qps: 84432.24 (r/w/o: 73874.84/0.00/10557.41) lat (ms,95%): 19.29 err/s: 0.00 reconn/s: 0.00[ 79s ] thds: 80 tps: 5431.77 qps: 86835.31 (r/w/o: 75971.77/0.00/10863.54) lat (ms,95%): 18.61 err/s: 0.00 reconn/s: 0.00[ 80s ] thds: 80 tps: 5411.58 qps: 86724.27 (r/w/o: 75901.11/0.00/10823.16) lat (ms,95%): 18.61 err/s: 0.00 reconn/s: 0.00PG单机OLTP读写混合场景[ 10s ] thds: 80 tps: 150.17 qps: 3145.15 (r/w/o: 2213.04/623.77/308.34) lat (ms,95%): 1050.76 err/s: 0.00 reconn/s: 0.00[ 20s ] thds: 80 tps: 189.60 qps: 3731.26 (r/w/o: 2612.54/739.51/379.21) lat (ms,95%): 1327.91 err/s: 0.00 reconn/s: 0.00[ 30s ] thds: 80 tps: 299.30 qps: 5992.23 (r/w/o: 4196.32/1197.31/598.60) lat (ms,95%): 530.08 err/s: 0.00 reconn/s: 0.00[ 40s ] thds: 80 tps: 340.40 qps: 6804.74 (r/w/o: 4763.56/1360.39/680.79) lat (ms,95%): 484.44 err/s: 0.00 reconn/s: 0.00[ 50s ] thds: 80 tps: 425.30 qps: 8512.85 (r/w/o: 5959.04/1703.21/850.61) lat (ms,95%): 376.49 err/s: 0.00 reconn/s: 0.00[ 60s ] thds: 80 tps: 592.39 qps: 11850.79 (r/w/o: 8294.72/2371.28/1184.79) lat (ms,95%): 257.95 err/s: 0.00 reconn/s: 0.00PG单机OLTP只读场景压测[ 1s ] thds: 80 tps: 358.25 qps: 6397.54 (r/w/o: 5602.21/0.00/795.33) lat (ms,95%): 467.30 err/s: 0.00 reconn/s: 0.00[ 2s ] thds: 80 tps: 675.16 qps: 10843.59 (r/w/o: 9492.27/0.00/1351.32) lat (ms,95%): 282.25 err/s: 0.00 reconn/s: 0.00[ 3s ] thds: 80 tps: 773.98 qps: 12380.60 (r/w/o: 10833.65/0.00/1546.95) lat (ms,95%): 235.74 err/s: 0.00 reconn/s: 0.00[ 4s ] thds: 80 tps: 583.02 qps: 9271.26 (r/w/o: 8104.23/0.00/1167.03) lat (ms,95%): 419.45 err/s: 0.00 reconn/s: 0.00[ 5s ] thds: 80 tps: 900.02 qps: 14466.28 (r/w/o: 12666.24/0.00/1800.03) lat (ms,95%): 272.27 err/s: 0.00 reconn/s: 0.00[ 75s ] thds: 80 tps: 7219.92 qps: 115510.73 (r/w/o: 101073.88/0.00/14436.84) lat (ms,95%): 16.12 err/s: 0.00 reconn/s: 0.00[ 76s ] thds: 80 tps: 7312.11 qps: 117077.83 (r/w/o: 102446.60/0.00/14631.23) lat (ms,95%): 15.55 err/s: 0.00 reconn/s: 0.00[ 77s ] thds: 80 tps: 7336.09 qps: 117346.48 (r/w/o: 102677.30/0.00/14669.19) lat (ms,95%): 15.27 err/s: 0.00 reconn/s: 0.00[ 78s ] thds: 80 tps: 6918.94 qps: 110807.00 (r/w/o: 96968.13/0.00/13838.88) lat (ms,95%): 18.61 err/s: 0.00 reconn/s: 0.00[ 79s ] thds: 80 tps: 6900.01 qps: 110262.12 (r/w/o: 96464.11/0.00/13798.02) lat (ms,95%): 20.00 err/s: 0.00 reconn/s: 0.00[ 80s ] thds: 80 tps: 7222.03 qps: 115629.55 (r/w/o: 101186.49/0.00/14443.07) lat (ms,95%): 15.00 err/s: 0.00 reconn/s: 0.00PG单机6容器集群OLTP读写混合场景[ 10s ] thds: 80 tps: 68.18 qps: 1453.28 (r/w/o: 1031.17/277.74/144.37) lat (ms,95%): 2362.72 err/s: 0.00 reconn/s: 0.00[ 20s ] thds: 80 tps: 111.10 qps: 2229.06 (r/w/o: 1564.75/442.21/222.11) lat (ms,95%): 893.56 err/s: 0.00 reconn/s: 0.00[ 30s ] thds: 80 tps: 128.00 qps: 2567.82 (r/w/o: 1796.71/515.00/256.10) lat (ms,95%): 773.68 err/s: 0.00 reconn/s: 0.00[ 40s ] thds: 80 tps: 136.10 qps: 2713.78 (r/w/o: 1898.08/543.60/272.10) lat (ms,95%): 719.92 err/s: 0.00 reconn/s: 0.00[ 50s ] thds: 80 tps: 138.90 qps: 2773.51 (r/w/o: 1940.90/554.70/277.90) lat (ms,95%): 707.07 err/s: 0.00 reconn/s: 0.00[ 60s ] thds: 80 tps: 137.50 qps: 2750.50 (r/w/o: 1927.00/548.50/275.00) lat (ms,95%): 719.92 err/s: 0.00 reconn/s: 0.00PG单机6容器集群OLTP只读场景压测[ 1s ] thds: 80 tps: 0.00 qps: 820.05 (r/w/o: 740.24/0.00/79.81) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00[ 2s ] thds: 80 tps: 11.00 qps: 256.10 (r/w/o: 234.09/0.00/22.01) lat (ms,95%): 1973.38 err/s: 0.00 reconn/s: 0.00[ 3s ] thds: 80 tps: 71.01 qps: 1037.15 (r/w/o: 895.13/0.00/142.02) lat (ms,95%): 2778.39 err/s: 0.00 reconn/s: 0.00[ 4s ] thds: 80 tps: 67.00 qps: 1121.96 (r/w/o: 987.97/0.00/134.00) lat (ms,95%): 1678.14 err/s: 0.00 reconn/s: 0.00[ 5s ] thds: 80 tps: 84.00 qps: 1388.04 (r/w/o: 1220.03/0.00/168.00) lat (ms,95%): 2009.23 err/s: 0.00 reconn/s: 0.00[ 75s ] thds: 80 tps: 221.98 qps: 3532.71 (r/w/o: 3088.75/0.00/443.96) lat (ms,95%): 467.30 err/s: 0.00 reconn/s: 0.00[ 76s ] thds: 80 tps: 224.99 qps: 3537.87 (r/w/o: 3087.89/0.00/449.98) lat (ms,95%): 493.24 err/s: 0.00 reconn/s: 0.00[ 77s ] thds: 80 tps: 223.02 qps: 3609.26 (r/w/o: 3163.23/0.00/446.03) lat (ms,95%): 502.20 err/s: 0.00 reconn/s: 0.00[ 78s ] thds: 80 tps: 222.00 qps: 3577.02 (r/w/o: 3133.02/0.00/444.00) lat (ms,95%): 502.20 err/s: 0.00 reconn/s: 0.00[ 79s ] thds: 80 tps: 232.99 qps: 3643.80 (r/w/o: 3177.82/0.00/465.97) lat (ms,95%): 502.20 err/s: 0.00 reconn/s: 0.00[ 80s ] thds: 80 tps: 215.02 qps: 3571.29 (r/w/o: 3141.26/0.00/430.03) lat (ms,95%): 458.96 err/s: 0.00 reconn/s: 0.00PG6主机集群 2副本5工作节点32分片哈希分布OLTP读写混合场景[ 10s ] thds: 80 tps: 6.20 qps: 217.91 (r/w/o: 172.23/25.29/20.39) lat (ms,95%): 9624.59 err/s: 0.00 reconn/s: 0.00[ 20s ] thds: 80 tps: 17.80 qps: 351.61 (r/w/o: 244.91/71.10/35.60) lat (ms,95%): 11523.48 err/s: 0.00 reconn/s: 0.00[ 30s ] thds: 80 tps: 18.90 qps: 374.59 (r/w/o: 261.60/75.20/37.80) lat (ms,95%): 6476.48 err/s: 0.00 reconn/s: 0.00[ 40s ] thds: 80 tps: 14.60 qps: 294.10 (r/w/o: 206.50/58.40/29.20) lat (ms,95%): 7895.16 err/s: 0.00 reconn/s: 0.00[ 50s ] thds: 80 tps: 17.60 qps: 351.69 (r/w/o: 246.09/70.40/35.20) lat (ms,95%): 7615.89 err/s: 0.00 reconn/s: 0.00[ 60s ] thds: 80 tps: 20.70 qps: 414.81 (r/w/o: 290.50/82.90/41.40) lat (ms,95%): 6026.41 err/s: 0.00 reconn/s: 0.00PG6主机集群 2副本5工作节点32分片哈希分布OLTP只读场景压测[ 1s ] thds: 80 tps: 0.00 qps: 253.20 (r/w/o: 173.45/0.00/79.75) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00[ 2s ] thds: 80 tps: 0.00 qps: 315.14 (r/w/o: 315.14/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00[ 3s ] thds: 80 tps: 0.00 qps: 310.98 (r/w/o: 310.98/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00[ 4s ] thds: 80 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00[ 5s ] thds: 80 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00[ 75s ] thds: 80 tps: 17.00 qps: 272.01 (r/w/o: 238.01/0.00/34.00) lat (ms,95%): 4280.32 err/s: 0.00 reconn/s: 0.00[ 76s ] thds: 80 tps: 22.00 qps: 351.98 (r/w/o: 307.98/0.00/44.00) lat (ms,95%): 4203.93 err/s: 0.00 reconn/s: 0.00[ 77s ] thds: 80 tps: 27.00 qps: 432.02 (r/w/o: 378.02/0.00/54.00) lat (ms,95%): 4855.31 err/s: 0.00 reconn/s: 0.00[ 78s ] thds: 80 tps: 20.00 qps: 320.00 (r/w/o: 280.00/0.00/40.00) lat (ms,95%): 4358.09 err/s: 0.00 reconn/s: 0.00[ 79s ] thds: 80 tps: 21.00 qps: 318.97 (r/w/o: 276.97/0.00/42.00) lat (ms,95%): 4280.32 err/s: 0.00 reconn/s: 0.00[ 80s ] thds: 80 tps: 26.00 qps: 435.97 (r/w/o: 383.98/0.00/52.00) lat (ms,95%): 4280.32 err/s: 0.00 reconn/s: 0.00PG6主机集群 2副本5工作节点5分片哈希分布OLTP读写混合场景[ 10s ] thds: 80 tps: 18.70 qps: 480.68 (r/w/o: 354.91/80.38/45.39) lat (ms,95%): 6247.39 err/s: 0.00 reconn/s: 0.00[ 20s ] thds: 80 tps: 49.90 qps: 992.92 (r/w/o: 693.82/199.30/99.80) lat (ms,95%): 2828.87 err/s: 0.00 reconn/s: 0.00[ 30s ] thds: 80 tps: 68.90 qps: 1369.50 (r/w/o: 958.00/273.70/137.80) lat (ms,95%): 2082.91 err/s: 0.00 reconn/s: 0.00[ 40s ] thds: 80 tps: 51.40 qps: 1051.00 (r/w/o: 736.00/212.20/102.80) lat (ms,95%): 2880.27 err/s: 0.00 reconn/s: 0.00[ 50s ] thds: 80 tps: 58.80 qps: 1164.10 (r/w/o: 815.90/230.60/117.60) lat (ms,95%): 2198.52 err/s: 0.00 reconn/s: 0.00[ 60s ] thds: 80 tps: 62.90 qps: 1242.19 (r/w/o: 867.69/248.70/125.80) lat (ms,95%): 1973.38 err/s: 0.00 reconn/s: 0.00PG6主机集群 2副本5工作节点5分片哈希分布OLTP读写混合场景[ 1s ] thds: 80 tps: 0.00 qps: 195.52 (r/w/o: 115.72/0.00/79.80) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00[ 2s ] thds: 80 tps: 1.00 qps: 578.18 (r/w/o: 576.18/0.00/2.00) lat (ms,95%): 1973.38 err/s: 0.00 reconn/s: 0.00[ 3s ] thds: 80 tps: 67.00 qps: 989.03 (r/w/o: 855.03/0.00/134.00) lat (ms,95%): 2985.89 err/s: 0.00 reconn/s: 0.00[ 4s ] thds: 80 tps: 136.99 qps: 2305.88 (r/w/o: 2031.89/0.00/273.99) lat (ms,95%): 3095.38 err/s: 0.00 reconn/s: 0.00[ 5s ] thds: 80 tps: 200.98 qps: 3237.63 (r/w/o: 2835.67/0.00/401.95) lat (ms,95%): 787.74 err/s: 0.00 reconn/s: 0.00[ 75s ] thds: 80 tps: 795.93 qps: 12744.86 (r/w/o: 11154.01/0.00/1590.86) lat (ms,95%): 458.96 err/s: 0.00 reconn/s: 0.00[ 76s ] thds: 80 tps: 749.04 qps: 11941.61 (r/w/o: 10442.53/0.00/1499.08) lat (ms,95%): 475.79 err/s: 0.00 reconn/s: 0.00[ 77s ] thds: 80 tps: 729.03 qps: 11708.42 (r/w/o: 10250.37/0.00/1458.05) lat (ms,95%): 484.44 err/s: 0.00 reconn/s: 0.00[ 78s ] thds: 80 tps: 744.98 qps: 11892.74 (r/w/o: 10402.77/0.00/1489.97) lat (ms,95%): 442.73 err/s: 0.00 reconn/s: 0.00[ 79s ] thds: 80 tps: 739.02 qps: 11824.28 (r/w/o: 10346.25/0.00/1478.04) lat (ms,95%): 434.83 err/s: 0.00 reconn/s: 0.00[ 80s ] thds: 80 tps: 761.99 qps: 12226.87 (r/w/o: 10702.88/0.00/1523.98) lat (ms,95%): 419.45 err/s: 0.00 reconn/s: 0.00mariaDB单机OLTP读写混合场景[ 10s ] thds: 80 tps: 100.18 qps: 2130.57 (r/w/o: 1507.19/415.02/208.36) lat (ms,95%): 1280.93 err/s: 0.00 reconn/s: 0.00[ 20s ] thds: 80 tps: 125.20 qps: 2464.65 (r/w/o: 1721.73/492.51/250.40) lat (ms,95%): 909.80 err/s: 0.00 reconn/s: 0.00[ 30s ] thds: 80 tps: 135.70 qps: 2726.24 (r/w/o: 1908.86/545.99/271.39) lat (ms,95%): 816.63 err/s: 0.00 reconn/s: 0.00[ 40s ] thds: 80 tps: 156.80 qps: 3113.73 (r/w/o: 2178.95/621.19/313.59) lat (ms,95%): 719.92 err/s: 0.00 reconn/s: 0.00[ 50s ] thds: 80 tps: 133.71 qps: 2690.01 (r/w/o: 1886.48/536.12/267.41) lat (ms,95%): 802.05 err/s: 0.00 reconn/s: 0.00[ 60s ] thds: 80 tps: 132.90 qps: 2663.70 (r/w/o: 1862.30/535.60/265.80) lat (ms,95%): 1032.01 err/s: 0.00 reconn/s: 0.00mariaDB单机OLTP只读场景压测[ 1s ] thds: 80 tps: 1053.26 qps: 17530.32 (r/w/o: 15344.01/0.00/2186.30) lat (ms,95%): 458.96 err/s: 0.00 reconn/s: 0.00[ 2s ] thds: 80 tps: 3058.47 qps: 48963.52 (r/w/o: 42846.58/0.00/6116.94) lat (ms,95%): 39.65 err/s: 0.00 reconn/s: 0.00[ 3s ] thds: 80 tps: 3993.09 qps: 63878.37 (r/w/o: 55892.20/0.00/7986.17) lat (ms,95%): 29.19 err/s: 0.00 reconn/s: 0.00[ 4s ] thds: 80 tps: 3401.95 qps: 54410.25 (r/w/o: 47606.34/0.00/6803.91) lat (ms,95%): 38.25 err/s: 0.00 reconn/s: 0.00[ 5s ] thds: 80 tps: 3410.99 qps: 54540.82 (r/w/o: 47718.84/0.00/6821.98) lat (ms,95%): 38.25 err/s: 0.00 reconn/s: 0.00[ 75s ] thds: 80 tps: 3695.36 qps: 59142.79 (r/w/o: 51753.07/0.00/7389.72) lat (ms,95%): 34.33 err/s: 0.00 reconn/s: 0.00[ 76s ] thds: 80 tps: 3858.59 qps: 61812.42 (r/w/o: 54095.24/0.00/7717.18) lat (ms,95%): 31.94 err/s: 0.00 reconn/s: 0.00[ 77s ] thds: 80 tps: 3674.11 qps: 58735.75 (r/w/o: 51387.54/0.00/7348.22) lat (ms,95%): 36.24 err/s: 0.00 reconn/s: 0.00[ 78s ] thds: 80 tps: 3974.16 qps: 63621.59 (r/w/o: 55672.26/0.00/7949.32) lat (ms,95%): 33.12 err/s: 0.00 reconn/s: 0.00[ 79s ] thds: 80 tps: 5416.04 qps: 86639.63 (r/w/o: 75808.55/0.00/10831.08) lat (ms,95%): 21.11 err/s: 0.00 reconn/s: 0.00[ 80s ] thds: 80 tps: 5403.05 qps: 86473.78 (r/w/o: 75667.68/0.00/10806.10) lat (ms,95%): 21.50 err/s: 0.00 reconn/s: 0.00六、小结 table_size=1000000 tables=350 threads=80 mysql单机数据量大约140GMYSQL8.4.3单机 32C64G默认设置PGSQL17单机 32C64G默认设置OB集群 1zone6主机 租户48C96G默认设置PG单机6容器集群 2副本5工作节点哈希分布PG6主机集群 2副本5工作节点32分片哈希分布 48C96GPG6主机集群 2副本5工作节点5分片哈希分布 48C96GmariaDB11.5.2 32C64G默认设置读写混合场景下OB集群遥遥领先>PG单机>MYSQL单机>Maria DB单机>PG单机容器集群>PG6主机集群几乎无法使用 只读场景下PG单机>OB集群>MYSQL单机≈mariaDB单机>PG单机容器集群>PG6主机集群几乎无法使用
2024年11月22日
392 阅读
0 评论
0 点赞
2024-11-19
采用开源Zabbix+500块硬件平替5万块动环检测系统,实现UPS、温湿度、烟雾等数据采集、存储、告警、大屏展示、RS485 Modbus采集、RS232采集
架构展示: 大屏展示: 所需软件: ZabbixGrafana安装Zabbix-agent2的采集服务器MThings串口调试软件厂家自带UPS监控软件USR-VCOM有人虚拟串口软件所需硬件: 有人串口服务器(USR-N510)有人串口服务器 USR-TCP232-306自制RS485连接线万图思睿 SD123-ST01 RS485温湿度变送器万图思睿 SD123-SA01-R4 RS485烟感报警器所需资料: 科士达YDC3330 modbus开发文档YDC3330说明书一、安装、配置串口服务器 1、硬件安装制作UPS所需要的RS485通讯线,我使用了1、2、8,分别是485+、485-、GND地线,而12V是不需要连接的,因为我们连接的对象是UPS,它并不需要我们通过12V为其供电。如果我们连接的是温湿度计,则需要通过12V为其供电。YDC3330自带两个RS485接口,其支持菊花链连接,所以我使用RS485线一根接一根串起来,这样外观美观。注意,UPS接线非常危险,注意安全!串口服务器只需要将串口模式拨到RS485,并且连接电源、网线、串口线即可2、网络更改按串口服务器背面IP地址,登录,修改IP地址和串口参数、协议参数。右上角更改语言,左侧更改IP地址、按UPS说明书要求调整串口内容,我这里使用的9600:8n1,下方我这里需要使用厂家的UPS软件测试,所以使用的TcpServer None,后面使用Zabbix modbus-get的时候,就需要改成ModbusTCP了二、解析文档 1、使用厂家软件测试安装USR-VCOM有人虚拟串口软件,这个软件的作用可以理解为通过网络将串口无限延长。串口 - 有人串口服务器 - 虚拟串口此时我们使用厂家的UPS软件,软件正常运行通过菊花链串联的方式,4台UPS都上线了,可以搜索到站号分别为1、5、6、7,这个后面要用到2、解析参数如何获取我们需要的参数呢假设,我们要获取A相输入电压,查看说明书采用的modbus-RTU报文格式如图功能码对照表A相输入电压地址,大小2Byte按modbus-RTU组合参数,此时的报文为 01 04 75 30 00 01 XX XX01为站号1 04为功能码,我们要取的30001在功能码中为04H读 75 30为30000的十六进制 00 01为读取一个寄存器地址,即30001的数据,同理我们要读取ABC三相输入,此处就为00 03三个寄存器地址 XX XX为校验码,modbus调试软件可以自动生成使用MThings调试,确认我们要获取的数据没问题此处发现厂家说明书印刷错误,印刷运行状态为30070,实际测试为30080三、配置Zabbix 1、修改串口服务器为modbus-tcp模式2、通过zabbix-agent2获取数据安装一台主机,并安装zabbix-agent2,接入zabbix在zabbix服务器上通过命令请求数据,可以看到数据返回正常zabbix_get -s 172.16.1.5 -k modbus.get[tcp://172.16.1.201:9000,1,4,30000,81] zabbix_get -s 172.16.11.5 指定请求的客户端 -k modbus.get 以modbus.get方式请求 tcp://172.16.1.201:9000,1,4,30000,81 串口服务器IP端口,站号1,功能码4,从30000开始请求,请求81个寄存器数据3、制作zabbix监控项我们采用的方式是一次请求,分段解析添加监控项制作modbus-get监控项,按图片填写即可键值:modbus.get[tcp://172.16.1.201:9000,1,4,30000,81] 信息类型:文本添加监控项制作数据分类监控项,从modbus-get监控项获取数据注意类型为:相关项目 主要项是modbus-get监控项还没完,点击到进程中,此处是配置获取第几位的数值,有没有倍率关系,倍率关系看说明书JSONPath = $[17] 自定义倍数 = 0.14、制作zabbix报警项添加触发器last(/donghuan/ups1yunxingzhuangtai)=5当ups1yunxingzhuangtai值为5时报警,5的值在说明书中为市电中断拉闸测试,5s内收到微信告警添加监控数据获取失败报警表达式: nodata(/donghuan/modbus.get[tcp://172.16.1.201:9000,7,4,30000,81],30)=1 30秒后无数据进行报警四、配置大屏 Grafana正常接入Zabbix添加一项,一看就懂按自己的喜好风格制作大屏即可五、温湿度、烟雾传感器协议解析 新增内容:温湿度采集修改设备地址烟雾采集手动触发烟雾告警读取烟雾信号万图思睿的产品修改设备地址方式相同六、施耐德APC Smart-UPS RS232采集 1、连接信息默认波特率为24002、查询字符Y 让设备进入查询模式 j 续航时间 L 输入电压 O 输出电压 C 当前温度 Q 电池状态 f 电容容量 \ 当前负载3、发送数据编写python程序形成UPSdata数据,格式建议为[x,y,z],便于zabbix解析服务器安装有人vcom软件,将串口连接到服务器zabbix_sender.exe -c zabbix_agent2.conf -k 键值 -o "发送的数据"4、zabbix接收创建 zabbix采集器 键值与zabbix_sender发送的键值对应5、查看接收的数据6、python采集程序示例import serial,time,os def main(): # 配置串口参数 ser = serial.Serial( port='COM11', # 根据实际情况修改串口号,例如 Windows 上可能是 'COM3' baudrate=2400, # 设置波特率,根据实际情况修改 timeout=1 # 设置读取超时时间 ) if ser.is_open: print(f"串口 {ser.port} 已打开,查询 施耐德UPS 信息") else: print(f"无法打开串口 {ser.port}") return try: # 发送字符 'Y' ser.write(b'Y') # 等待一段时间让设备响应 time.sleep(0.1) # 读取返回的数据 response = ser.read(ser.in_waiting ) # 读取所有等待数据或至少1字节 if response: UPS1_list = response.decode('utf-8', errors='ignore').splitlines() if UPS1_list[0] == "SM": try: ser.write(b'jLOCQf\\Y') # 等待一段时间让设备响应 time.sleep(0.1) # 读取返回的数据 response = ser.read(ser.in_waiting or 100) # 读取所有等待数据或至少1字节 if response: UPS2_list = response.decode('utf-8', errors='ignore').splitlines() if UPS2_list[7] == "SM": print("续航时间"+UPS2_list[0].lstrip('0').replace(':','')+"分钟 输入电压"+UPS2_list[1]+"V 输出电压"+UPS2_list[2]+"V 当前温度"+UPS2_list[3].lstrip('0')+"摄氏度 电池容量"+UPS2_list[5]+"% 当前负载"+UPS2_list[6].lstrip('0')+"%") UPS3_list = str("["+UPS2_list[0].lstrip('0').replace(':','')+","+UPS2_list[1]+","+UPS2_list[2]+","+UPS2_list[3].lstrip('0')+","+UPS2_list[5]+","+UPS2_list[6].lstrip('0')+"]") command_array = ['zabbix_sender.exe','-c','zabbix_agent2.conf','-k','upsrs232','-o',UPSdata] command_str = ' '.join(command_array) print(command_array) print(command_str) result = os.popen(command_str) print(result.read()) else: print("没有接收到返回数据,连接错误") except Exception as e: print(f"通信过程中发生错误: {e}") else: print("UPS连接错误") else: print("没有接收到返回数据,连接错误") except Exception as e: print(f"通信过程中发生错误: {e}") finally: # 关闭串口 ser.close() print(f"串口 {ser.port} 已关闭") if __name__ == "__main__": main() 七、小结 文章很流畅,但现实并不会如此顺利。第一次,使用的串口线有问题,导致无法连接UPS第二次,厂家给我发错了文档,连续一星期无法测试成功第三次,厂家发对了文档,但是文档的内容错误,导致获取的数据不正确半个月时间分析协议,最后接入Zabbix制作大屏仅用了半天而已最后,Zabbix无比强大,值得深入学习!时隔两年,增加了RS232采集Zabbix真的太强大了
2024年11月19日
1,154 阅读
0 评论
17 点赞
2024-11-08
快速部署OceanBase 集群 1ZONE 6节点,使用SysBench对比测试mysql8.4单节点
一、环境准备 1、安装规划使用anolis8.9系统,1个zone,6台主机,1为rootserver,2 3安装obproxy 4安装ocp exp关闭防火墙,避免影响实验 systemctl stop firewalld && systemctl disable firewalld2、使用obd在线部署当您选择在线部署时,可以参考本节命令在中控机上安装 obd。sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo sudo yum install -y ob-deploy source /etc/profile.d/obd.sh3、安装java环境,OCP Express要求java1.8https://www.java.com/en/download/manual.jsp下载 Linux x64 RPM filesize: 104.47 安装[root@ob2 ~]# rpm -ivh jre-8u431-linux-x64.rpm 警告:jre-8u431-linux-x64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ad986da3: NOKEY Verifying... ################################# [100%] 准备中... ################################# [100%] 正在升级/安装... 1:jre-1.8-1.8.0_431-10 ################################# [100%] [root@ob2 ~]# java -version java version "1.8.0_431" Java(TM) SE Runtime Environment (build 1.8.0_431-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.431-b10, mixed mode) 4、配置优化每台主机执行echo -e "* soft nofile 655350\n* hard nofile 655350" >> /etc/security/limits.d/nofile.conf echo "vm.max_map_count=655360" >> /etc/sysctl.conf; sysctl -p echo "fs.file-max=6573688" >> /etc/sysctl.conf; sysctl -p5、启动白屏安装 注意,命令需要在本地终端执行,不可以远程ssh执行 obd web如果ssh远程执行obd web,会报ceanbase-ce:ssh 原因:OBD-1013 : root@x.x.x.x connect failed: could not get keys from ssh-agent 建议:手动修复 Please check user config and network二、安装环境 我这里安装OCP Express我这里rootserver、ocpEXP、obproxy分散在各个主机上等待部署完成安装完成,记好密码三、配置使用 登录ocp exphttp://IP:8180/配置租户等待租户创建完成后,创建数据库和用户连接测试可通过rootserver2881端口连接也可通过obproxy 2883端口连接四、性能测试 均在同一个超融合集群中 MYSQL8.4.3单机 32C64GOB集群 1zone6主机 8Cx6 16Gx6table_size=1000000 tables=350 threads=80 数据量大约140G安装SysBench配置epel源yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel* sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*安装SysBenchyum install sysbenchOB集群OLTP读写混合场景 清除数据sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=IP地址 --mysql-port=端口 --mysql-db=数据库名 --mysql-user=用户名 --mysql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --rand-type=uniform --time=60 cleanup初始化测试数据sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=IP地址 --mysql-port=端口 --mysql-db=数据库名 --mysql-user=用户名 --mysql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --rand-type=uniform --time=60 prepare执行测试sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=IP地址 --mysql-port=端口 --mysql-db=数据库名 --mysql-user=用户名 --mysql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --time=60 --rand-type=uniform --db-ps-mode=disable runOB集群OLTP只读场景压测 准备数据sysbench --db-driver=mysql --mysql-host=IP地址 --mysql-port=端口 --mysql-user=用户名 --mysql-password=密码 --mysql-db=数据库名 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 oltp_read_only prepare运行压测sysbench --db-driver=mysql --mysql-host=IP地址 --mysql-port=端口 --mysql-user=用户名 --mysql-password=密码 --mysql-db=数据库名 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 --percentile=95 --report-interval=1 oltp_read_only run清理数据sysbench --db-driver=mysql --mysql-host=IP地址 --mysql-port=端口 --mysql-user=用户名 --mysql-password=密码 --mysql-db=数据库名 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 --percentile=95 oltp_read_only cleanupMYSQL单机OLTP读写混合场景 清除数据sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=IP地址 --mysql-port=端口 --mysql-db=数据库名 --mysql-user=用户名 --mysql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --rand-type=uniform --time=60 cleanup初始化测试数据sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=IP地址 --mysql-port=端口 --mysql-db=数据库名 --mysql-user=用户名 --mysql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --rand-type=uniform --time=60 prepare执行测试sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=IP地址 --mysql-port=端口 --mysql-db=数据库名 --mysql-user=用户名 --mysql-password=密码 --table_size=1000000 --tables=350 --threads=80 --report-interval=10 --time=60 --rand-type=uniform --db-ps-mode=disable runMYSQL单机OLTP只读场景压测 准备数据sysbench --db-driver=mysql --mysql-host=IP地址 --mysql-port=端口 --mysql-user=用户名 --mysql-password=密码 --mysql-db=数据库名 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 oltp_read_only prepare运行压测sysbench --db-driver=mysql --mysql-host=IP地址 --mysql-port=端口 --mysql-user=用户名 --mysql-password=密码 --mysql-db=数据库名 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 --percentile=95 --report-interval=1 oltp_read_only run清理数据sysbench --db-driver=mysql --mysql-host=IP地址 --mysql-port=端口 --mysql-user=用户名 --mysql-password=密码 --mysql-db=数据库名 --table_size=1000000 --tables=350 --events=0 --time=300 --threads=80 --percentile=95 oltp_read_only cleanup测试结果 MYSQL单机OLTP读写混合场景[ 10s ] thds: 80 tps: 279.82 qps: 5649.14 (r/w/o: 3961.11/1120.39/567.64) lat (ms,95%): 467.30 err/s: 0.00 reconn/s: 0.00[ 20s ] thds: 80 tps: 336.51 qps: 6786.91 (r/w/o: 4759.38/1354.52/673.01) lat (ms,95%): 390.30 err/s: 0.00 reconn/s: 0.00[ 30s ] thds: 80 tps: 246.00 qps: 4918.91 (r/w/o: 3441.11/985.80/492.00) lat (ms,95%): 520.62 err/s: 0.00 reconn/s: 0.00[ 40s ] thds: 80 tps: 306.70 qps: 6129.61 (r/w/o: 4290.91/1225.30/613.40) lat (ms,95%): 434.83 err/s: 0.00 reconn/s: 0.00[ 50s ] thds: 80 tps: 354.50 qps: 7104.99 (r/w/o: 4974.69/1421.30/709.00) lat (ms,95%): 369.77 err/s: 0.00 reconn/s: 0.00[ 60s ] thds: 80 tps: 339.50 qps: 6785.12 (r/w/o: 4741.72/1364.40/679.00) lat (ms,95%): 376.49 err/s: 0.00 reconn/s: 0.00MYSQL单机OLTP只读场景压测[ 1s ] thds: 80 tps: 2322.83 qps: 37870.75 (r/w/o: 33145.27/0.00/4725.49) lat (ms,95%): 51.02 err/s: 0.00 reconn/s: 0.00[ 2s ] thds: 80 tps: 2927.99 qps: 46815.91 (r/w/o: 40960.92/0.00/5854.99) lat (ms,95%): 35.59 err/s: 0.00 reconn/s: 0.00[ 3s ] thds: 80 tps: 3440.21 qps: 55064.31 (r/w/o: 48183.89/0.00/6880.41) lat (ms,95%): 31.94 err/s: 0.00 reconn/s: 0.00[ 4s ] thds: 80 tps: 3973.17 qps: 63529.73 (r/w/o: 55585.39/0.00/7944.34) lat (ms,95%): 27.17 err/s: 0.00 reconn/s: 0.00[ 5s ] thds: 80 tps: 4175.91 qps: 66879.59 (r/w/o: 58526.76/0.00/8352.82) lat (ms,95%): 26.20 err/s: 0.00 reconn/s: 0.00[ 76s ] thds: 80 tps: 4714.21 qps: 75534.39 (r/w/o: 66105.97/0.00/9428.42) lat (ms,95%): 22.69 err/s: 0.00 reconn/s: 0.00[ 77s ] thds: 80 tps: 4679.42 qps: 74748.76 (r/w/o: 65388.92/0.00/9359.85) lat (ms,95%): 23.10 err/s: 0.00 reconn/s: 0.00[ 78s ] thds: 80 tps: 4737.18 qps: 75766.94 (r/w/o: 66295.57/0.00/9471.37) lat (ms,95%): 22.28 err/s: 0.00 reconn/s: 0.00[ 79s ] thds: 80 tps: 4650.49 qps: 74527.85 (r/w/o: 65222.87/0.00/9304.98) lat (ms,95%): 23.10 err/s: 0.00 reconn/s: 0.00[ 80s ] thds: 80 tps: 4664.70 qps: 74592.18 (r/w/o: 65266.78/0.00/9325.40) lat (ms,95%): 22.69 err/s: 0.00 reconn/s: 0.00OB集群 1zone6主机OLTP读写混合场景[ 10s ] thds: 80 tps: 194.03 qps: 3980.77 (r/w/o: 2799.12/785.60/396.05) lat (ms,95%): 960.30 err/s: 0.00 reconn/s: 0.00[ 20s ] thds: 80 tps: 585.61 qps: 11728.84 (r/w/o: 8211.80/2345.83/1171.21) lat (ms,95%): 267.41 err/s: 0.00 reconn/s: 0.00[ 30s ] thds: 80 tps: 1159.31 qps: 23173.24 (r/w/o: 16218.30/4636.33/2318.61) lat (ms,95%): 104.84 err/s: 0.00 reconn/s: 0.00[ 40s ] thds: 80 tps: 1573.49 qps: 31474.50 (r/w/o: 22032.76/6294.86/3146.88) lat (ms,95%): 70.55 err/s: 0.00 reconn/s: 0.00[ 50s ] thds: 80 tps: 1568.68 qps: 31364.68 (r/w/o: 21954.30/6272.92/3137.46) lat (ms,95%): 89.16 err/s: 0.00 reconn/s: 0.00[ 60s ] thds: 80 tps: 1876.77 qps: 37543.14 (r/w/o: 26280.21/7509.89/3753.04) lat (ms,95%): 55.82 err/s: 0.00 reconn/s: 0.00OB集群 1zone6主机OLTP只读场景压测[ 1s ] thds: 80 tps: 258.36 qps: 4791.07 (r/w/o: 4194.56/0.00/596.51) lat (ms,95%): 646.19 err/s: 0.00 reconn/s: 0.00[ 2s ] thds: 80 tps: 523.06 qps: 8405.99 (r/w/o: 7359.87/0.00/1046.12) lat (ms,95%): 601.29 err/s: 0.00 reconn/s: 0.00[ 3s ] thds: 80 tps: 678.97 qps: 10798.50 (r/w/o: 9440.56/0.00/1357.94) lat (ms,95%): 376.49 err/s: 0.00 reconn/s: 0.00[ 4s ] thds: 80 tps: 974.06 qps: 15628.02 (r/w/o: 13679.90/0.00/1948.13) lat (ms,95%): 277.21 err/s: 0.00 reconn/s: 0.00[ 5s ] thds: 80 tps: 1244.00 qps: 19876.04 (r/w/o: 17388.04/0.00/2488.01) lat (ms,95%): 207.82 err/s: 0.00 [ 76s ] thds: 80 tps: 5320.92 qps: 85129.68 (r/w/o: 74486.85/0.00/10642.83) lat (ms,95%): 19.29 err/s: 0.00 reconn/s: 0.00[ 77s ] thds: 80 tps: 5331.83 qps: 85282.34 (r/w/o: 74620.67/0.00/10661.67) lat (ms,95%): 18.95 err/s: 0.00 reconn/s: 0.00[ 78s ] thds: 80 tps: 5279.20 qps: 84432.24 (r/w/o: 73874.84/0.00/10557.41) lat (ms,95%): 19.29 err/s: 0.00 reconn/s: 0.00[ 79s ] thds: 80 tps: 5431.77 qps: 86835.31 (r/w/o: 75971.77/0.00/10863.54) lat (ms,95%): 18.61 err/s: 0.00 reconn/s: 0.00[ 80s ] thds: 80 tps: 5411.58 qps: 86724.27 (r/w/o: 75901.11/0.00/10823.16) lat (ms,95%): 18.61 err/s: 0.00 reconn/s: 0.00总结在只读场景下,OB集群性能领先约15%左右在读写混合场景下,OB集群性能领先约6倍左右
2024年11月08日
308 阅读
0 评论
0 点赞
2024-09-19
群晖ABB(Active Backup for Business) vSphere、物理机备份恢复实验
群晖ABB是由群晖提供的企业级数据备份工具,无授权数量限制,具有去重、差异备份等功能,几乎可以满足中小企业和家庭用户的所有备份需求,本文重点介绍vSphere虚拟机备份恢复功能。群晖ABB官方介绍页面https://www.synology.cn/zh-cn/dsm/feature/active_backup_business一、安装ABB套件 二、虚拟机vSphere备份还原 1、配置备份计划进入ABB,虚拟机页面接入vCenter配置备份任务为减轻设备压力和对网络的影响,可以开启数据压缩并限制并发任务数配置任务执行时间配置任务保留计划配置管理2、监控备份任务3、基于ABB进行即时还原选择要恢复的虚拟机、时间点可以跨平台还原可以先即时还原,然后再同步数据还原位置,我这里实验选择还原到其他位置选择文件夹选择虚拟化主机选择网络确认还原参数,建议不要勾选开机即时还原完成vSphere中可以看到虚拟机准备就绪,我们可以将这个虚拟机的网络关闭再开机,防止IP冲突系统启动成功4、虚拟机数据同步迁移 将即时还原迁移为永久数据迁移中,不影响虚拟机运行迁移完成三、物理机备份还原 1、准备一台windows服务器2、配置备份任务备份模板,可选备份所有硬盘、所有硬盘+外接硬盘、系统盘三种方式下载备份代理3、目标主机运行代理程序在代理程序中登录群晖登陆成功4、进行备份操作登录群晖ABB,已经发现了物理机执行备份任务5、制作还原映像恢复介质创建https://kb.synology.cn/zh-cn/DSM/help/ActiveBackupRecoveryMediaCreator/activebackuprecoverymediacreator?version=7#ISO可创建ISO文件或直接写入到U盘中制作启动盘6、执行还原操作通过ISO或U盘启动进入群晖恢复模式配置IP地址选择备份的主机选择分区还原等待还原结束即可 四、小结 666
2024年09月19日
582 阅读
0 评论
3 点赞
1
2
3
...
24