首页
统计信息
友情链接
壁纸
Search
1
【更新】CommentToMail typecho2017&v4.1& Mailer三版本,支持php5.6/7,插件详解
158,244 阅读
2
【90APT开源免费】第三代哈弗H6、哈弗大狗、H6经典版、坦克300车机开启无线ADB、升级地图、安装软件全流程
24,178 阅读
3
CentOS 7安装bbr教程
12,973 阅读
4
纯小白10分钟变身linux建站高手?宝塔linux面板全体验
12,559 阅读
5
深信服超融合架构测试介绍
12,178 阅读
技术相关
ACG相关
胡言乱语
数码杂烩
登录
Search
标签搜索
进击的巨人
漫画
宝塔
php
typecho
diy
vps
折腾
动漫
优酷路由宝
ubuntu
路由器
QQ
KMS
王忘杰
累计撰写
290
篇文章
累计收到
179
条评论
首页
栏目
技术相关
ACG相关
胡言乱语
数码杂烩
页面
统计信息
友情链接
壁纸
搜索到
199
篇与
的结果
2025-04-23
ALMA Linux 8飞速搭建zabbix6LTS、微信邮箱短信报警、windows、linux、交换机、vCenter监控、grafana面板、modbus动环采集、ZbxTable分析系统、Mysql、MSsql数据库监控、分组报警、对接oceanbase数据库
一、环境 zabbix所在服务器系统为alma8,zabbix6要求的mariadb版本为10.5-10.6,同时zabbix提供了zabbix-selinux-policy来配置selinux,所以安装中也不再要求关闭selinux。二、安装zabbix 官方安装帮助页面,安装方法随版本更新,官方更新更快https://www.zabbix.com/cn/download1、配置zabbix 软件源rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm dnf clean all2、安装zabbix-server和zabbix-agent2dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent23、安装数据库配置mariabd源 /etc/yum.repos.d/MariaDB.repo# MariaDB 10.6 CentOS repository list - created 2023-02-02 03:14 UTC # https://mariadb.org/download/ [mariadb] name = MariaDB baseurl = https://mirrors.aliyun.com/mariadb/yum/10.6/centos8-amd64 module_hotfixes=1 gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1安装数据库、启动、并设置开机启动dnf clean all dnf install mariadb-server systemctl enable --now mariadb4、进行MariaDB数据库初始化mariadb-secure-installation首先是设置密码,会提示先输入密码 Enter current password for root (enter for none):<–初次运行直接回车 Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车 New password: <– 设置root用户的密码 Re-enter new password: <– 再输入一次你设置的密码 Remove anonymous users? [Y/n] <– 是否删除匿名用户 Disallow root login remotely? [Y/n] <–是否禁止root远程登录 Remove test database and access to it? [Y/n] <– 是否删除test数据库 Reload privilege tables now? [Y/n] <– 是否重新加载权限表5、初始化并导入zabbix数据库 mysql -uroot -p登录mariadb> create database zabbix character set utf8mb4 collate utf8mb4_bin; mariadb> create user zabbix@localhost identified by 'password123'; mariadb> grant all privileges on zabbix.* to zabbix@localhost; mariadb> set global log_bin_trust_function_creators = 1; mariadb> quit;导入初始架构和数据,系统将提示您输入新创建的密码zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix导入数据库架构后禁用log_bin_trust_function_creators选项mysql -uroot -p mariadb> set global log_bin_trust_function_creators = 0; mariadb> quit;6、配置数据库密码编辑配置文件 /etc/zabbix/zabbix_server.confDBPassword=password1237、配置PHP时区编辑配置文件 /etc/php-fpm.d/zabbix.confphp_value[date.timezone] = Asia/Shanghai8、启动并设置开机启动systemctl enable --now zabbix-server zabbix-agent2 httpd php-fpm9、查看是否有错误信息 cat /var/log/zabbix/zabbix_server.log10、防火墙开放端口firewall-cmd --add-port=80/tcp --permanent firewall-cmd --permanent --add-port=10050-10051/tcp firewall-cmd --reload firewall-cmd --list-ports firewall-cmd --list-services11、替换zabbix自带字体,解决中文乱码百度下载Noto Sans S Chinese字体替换掉默认使用的DejaVuSanscp NotoSansSC-Regular.otf /usr/share/fonts/dejavu/DejaVuSans.ttf12、调整zabbix缓存/etc/zabbix/zabbix_server.confCacheSize=1G13、调整ping进程数/etc/zabbix/zabbix_server.confStartPingers=16三、服务端配置 1、连接到新安装的Zabbix前端: http://server_ip/zabbix注意,mariadb也属于mysql数据库类型2、登录zabbix账号Admin 密码zabbix前端配置完成请务必修改密码四、企业微信消息推送 注意:为了企业的数据安全,从2022年6月20号20点之后,新开启的通讯录同步助手与新创建的自建应用必须在管理端配置可信IP,仅配置的可信IP能调用接口。当前时间2023年6月,企业微信应用验证必须与企业名相同,请考虑使用企业微信机器人推送。1、在企业微信 - 我的企业 - 企业信息 - 企业ID 2、创建zabbix机器人应用企业微信后台 - 应用管理 - 应用 - 创建应用 先进行网页授权及JS-SDK可信域名下的网页可使用网页授权及JS-SDK可信IP位于自行创建的应用-开发接口-企业可信IP 可信IP即服务器所在网络的外网IP,可打开https://ifconfig.me/快速查看,如果企业机房接入多条外网宽带,把外网宽带的IP全都写上3、查看Agentld和Secret 4、准备zabbix机器人脚本环境dnf -y install epel-release dnf -y install python2-pip pip2 install requests查询脚本存放位置cat /etc/zabbix/zabbix_server.conf | grep AlertScript可以看到脚本存放在/usr/lib/zabbix/alertscripts目录中编写脚本 weixin.py并放入上面的目录 ,填入上面获得的三个值#!/usr/bin/env python2 #-*- coding: utf-8 -*- import requests import sys import os import json import logging logging . basicConfig ( level = logging . DEBUG , format = ' %(asctime)s , %(filename)s , %(levelname)s , %(message)s ' , datefmt = ' %a , %d %b %Y %H:%M:%S' , filename = os . path . join ( '/tmp' , 'weixin.log' ), filemode = 'a' ) corpid = 'ww36e' appsecret = '5yFNqeTjrr3I' agentid = 1000002 token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret req = requests . get ( token_url ) accesstoken = req . json ()[ 'access_token' ] msgsend_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken touser = sys . argv [ 1 ] subject = sys . argv [ 2 ] #toparty='3|4|5|6' message = sys . argv [ 2 ] + " \n\n " + sys . argv [ 3 ] params ={ "touser" : touser , # "toparty": toparty, "msgtype" : "text" , "agentid" : agentid , "text" : { "content" : message }, "safe" : 0 } req = requests . post ( msgsend_url , data = json . dumps ( params )) logging . info ( 'sendto:' + touser + ';;subject:' + subject + ';;message:' + message )赋予执行权限chmod +x /usr/lib/zabbix/alertscripts/weixin.py创建日志文件touch /tmp/weixin.log chown zabbix:zabbix /tmp/weixin.log测试脚本,用户名为企业微信通讯录中的用户名,一般为拼音全拼,严格区分大小写!/usr/lib/zabbix/alertscripts/weixin.py 用户名 '标题' '测试成功'此时企业微信可以收到zaabix应用发来的信息。5、添加报警媒介zabbix后台 - 管理 - 报警媒介类型名称 weixin类型 脚本脚本名称 weixin.py脚本参数:{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE} 6、配置Trigger actions触发动作,启用消息推送管理员,填写要发送的信息配置 - 动作 Trigger actions - 创建动作 在 动作 中填写名称在 操作 中编辑操作和恢复操作操作发送消息zabbix管理员组仅发送到微信custom message主题:服务器报警消息:告警主机:{HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 告警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}恢复操作通知所有参与者custom message主题:服务器已恢复消息:告警主机:{HOST.NAME} 告警地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 告警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID} 7、配置Autoregistration actions自动注册,填写要发送的信息在Autoregistration actions自动注册中注意:自动注册的其他内容在下方linux、windows部分发送消息zabbix管理员组仅送到weixinCustom message主题:Linux主机自动注册到zabbix服务器消息:主机名:{HOST.HOST} 主机IP:{HOST.IP} Agent端口:{HOST.PORT} 8、接收微信推送人员管理-用户-报警媒介邮箱推送、微信推送 可以理解为仅配置脚本不同,其他配置参数基本一致邮箱 1、安装mailxyum install mailx -y2、修改mailx配置vim /etc/mail.rc最后添加 set from=xx@qq.com set smtp=smtp.qq.com set smtp-auth-user=xx@qq.com set smtp-auth-password=邮箱密码 set smtp-auth=login3、测试邮箱echo “hello world” | mail -s “testmail” xx@qq.com4、编写邮箱脚本cd /usr/lib/zabbix/alertscripts/vim mailx.sh#!/bin/bash #send mail messages=`echo $3 | tr '\r\n' '\n'` subject=`echo $2 | tr '\r\n' '\n'` echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&15、创建日志,添加权限touch /tmp/mailx.logchown -R zabbix.zabbix /tmp/mailx.logchmod +x /usr/lib/zabbix/alertscripts/mailx.shchown -R zabbix.zabbix /usr/lib/zabbix/6、添加使用其他添加过程与微信相同微信推送 1、查看短信平台文档编写短信脚本,注意不通用我用的短信平台采用http get通讯cd /usr/lib/zabbix/alertscripts/cat sendSMS.sh#!/bin/bash #手机号码 MOBILE_NUMBER=$1 #短信主题 MESSAGE_SUBJECT=$2 #短信内容 MESSAGE_UTF8=$3 #调用短信接口 /usr/bin/curl -s -G --data-urlencode userid=用户ID --data-urlencode account=用户名 --data-urlencode password=用户密码 --data-urlencode mobile=${MOBILE_NUMBER} --data-urlencode content="${MESSAGE_SUBJECT}-${MESSAGE_UTF8}" http://www.短信平台接口.com/xx?action=send >> /tmp/sendSMS.log2、添加使用其他添加过程与微信相同五、自动注册windows主机 平台 - 配置 - 动作 - Autoregistration actions自动注册 创建动作元数据中的 Linux 为下方脚本里的 HostMetadata=windows 严格区分大小写操作添加主机添加主机群组关联模板下载安装agent2客户端https://www.zabbix.com/cn/download_agents最新版本为 Zabbix agent 2 v6.0.5修改配置 HostMetadata=windowsC:\Program Files\Zabbix Agent 2\zabbix_agent2.conf重启服务收到自动注册提示六、自动注册linux主机 zabbix平台自动注册linux与windows方法基本相同,元数据修改为linux在linux客户端上可以使用自动化脚本安装zabbix agent2客户端我这里仅放一个centos7/8的安装脚本,内容为卸载agent1安装agent2#/bin/bash echo "关闭selinux" sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config setenforce 0 echo "下载zabbix-agent2,卸载agent1" OSVERSION=`cat /etc/redhat-release |awk -F "release " '{print $2}'|awk -F "." '{print $1}'` rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/$OSVERSION/x86_64/zabbix-release-6.0-1.el$OSVERSION.noarch.rpm yum clean all yum remove zabbix-agent -y yum install zabbix-agent2 -y echo "修改zabbix-agent2配置文件" ipaddr=$(ip a show |grep ens|grep inet |awk '{print $2}'|awk -F '/' '{print $1}') zabbix_server='192.168.1.110' hostname=$(hostname) sed -i "s/^Server=127.0.0.1/Server=${zabbix_server}/g" /etc/zabbix/zabbix_agent2.conf sed -i "s/^ServerActive=127.0.0.1/ServerActive=${zabbix_server}/g" /etc/zabbix/zabbix_agent2.conf sed -i "s/Hostname=Zabbix server/Hostname=${hostname}/g" /etc/zabbix/zabbix_agent2.conf sed -i "s/# HostMetadata=/HostMetadata=linux/g" /etc/zabbix/zabbix_agent2.conf echo "防火墙放行zabbix-agent端口" firewall-cmd --permanent --add-port=10050-10051/tcp firewall-cmd --reload echo "启动zabbix-agent服务" systemctl enable --now zabbix-agent2 zabbixagentpid=`ps -ef |grep zabbix_agent2|grep -w 'zabbix_agent2'|grep -v 'grep'|awk '{print $2}'` if [ "$zabbixagentpid" ];then echo "zabbix agent2 正在运行 " else echo "zabbix agent2 安装失败!!!" fi七、通过SNMP监控交换机 1、为zabbix添加SNMPv2模板SNMPv2模板下载https://share.zabbix.com/templates/network-devices-fortigate-template-fortinet-all-discovery/#body2、交换机配置snmpv2snmp-agent sys-info version v2c snmp-agent community read public snmp-agent community write private snmp-agent trap enable snmp-agent target-host trap address udp-domain 192.168.1.110 params securityname public v2c snmp-agent3、查找MIBH3C常用MIBhttps://www.h3c.com/cn/Service/Document_Software/TechnicalInfo/PorductMaintanInfo/Switches/DailyMainten/MIBList/4、安装snmp调试工具并进行测试dnf -y install net-snmp-utilssnmpwalk为模糊测试snmpwalk -v 2c -c public 192.168.237.50 .1.3.6.1.4.1.2021.10.1.3snmpget是zabbix的精准获取方式snmpget -v 2c -c public 192.168.237.50 .1.3.6.1.4.1.2021.10.1.35、举例如S5130 CPU使用率,查询H3C手册为 1.3.6.1.4.1.25506.8.35.18.1.3使用snmpwalk -v 2c -c public 192.168.237.50 1.3.6.1.4.1.25506.8.35.18.1.3后返回SNMPv2-SMI::enterprises.25506.8.35.18.1.3.0 = INTEGER: 16得知最后多一位.0使用snmpget -v 2c -c public 192.168.237.50 1.3.6.1.4.1.25506.8.35.18.1.3.0得到结果相同,则此项为s5130型号的CPU使用率在zabbix新建监控项,即可实现CPU使用率记录新建触发器,即可实现CPU使用率报警前5次报警值均超过80时进行CPU使用率过高报警最终效果其他参数:CPU使用率 1.3.6.1.4.1.25506.8.35.18.4.3.1.4.0.1 内存使用率 1.3.6.1.4.1.25506.8.35.18.1.16.0 固件版本 1.3.6.1.2.1.1.1.0 开机时间 1.3.6.1.2.1.1.3.0 SN 1.3.6.1.4.1.25506.2.6.1.2.1.1.2.2 温度 1.3.6.1.4.1.25506.2.6.1.1.1.1.12.212八、添加vsphere vCenter监控 1、开启VMware支持并重启zabbix-server服务/etc/zabbix/zabbix_server.conf ### Option: StartVMwareCollectors StartVMwareCollectors=52、检查vCenter sdk接口返回500代码代表接口在工作curl -i -k --data "" https://172.16.0.1/sdk HTTP/2 500 cache-control: no-cache content-type: text/xml; charset=utf-8 date: Tue, 28 Jun 2022 01:36:00 GMT x-envoy-upstream-service-time: 0 server: envoy3、登录每台ESXi主机开启MOB服务系统高级设置,搜索Config.HostAgent.plugins.solo.enableMob,确定值改为true4、zabbix创建主机注意是修改继承的宏 https://172.16.0.1/sdk5、查看数据一段时间后,zabbix可以获取到所有的vCenter、ESXi和虚拟机的信息九、grafana面板 1、安装当前最新版本grafana-10.0.1sudo yum install -y https://dl.grafana.com/oss/release/grafana-10.0.1-1.x86_64.rpm注意配置开机启动并配置防火墙,默认使用3000端口2、安装grafana zabbix插件grafana-cli plugins list-remote grafana-cli plugins install alexanderzobnin-zabbix-app systemctl restart grafana-server3、登录grafana接入zabbix源http://IP:3000/ 打开grafana界面,打开后输入admin/admin登录,登陆后按提示更改admin密码。启用zabbix插件配置数据源http://ip/zabbix/api_jsonrpc.php保存并测试成功新建面板即可十、首页图表监控 首页添加构件十一、modbus动环采集 https://90apt.com/3387十二、ZbxTable分析系统 十三、数据库监控 (一)微软MSSQL数据库监控安装完SQLServer数据库,开启数据库远程访问配置对IP的监听配置防火墙端口开放测试端口RHEL8系统安装ODBC驱动https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16&tabs=redhat18-install%2Calpine17-install%2Cdebian8-install%2Credhat7-13-install%2Crhel7-offlinesudo su #Download appropriate package for the OS version #Choose only ONE of the following, corresponding to your OS version #RHEL 7 and Oracle Linux 7 curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo #RHEL 8 and Oracle Linux 8 curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo #RHEL 9 curl https://packages.microsoft.com/config/rhel/9.0/prod.repo > /etc/yum.repos.d/mssql-release.repo exit sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts sudo ACCEPT_EULA=Y yum install -y msodbcsql18 # optional: for bcp and sqlcmd sudo ACCEPT_EULA=Y yum install -y mssql-tools18 echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc source ~/.bashrc # optional: for unixODBC development headers sudo yum install -y unixODBC-devel配置/etc/odbc.inihttps://learn.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/connection-string-keywords-and-data-source-names-dsns?view=sql-server-ver16[TEST] Driver = ODBC Driver 18 for SQL Server # Server = [protocol:]server[,port] Server = tcp:172.16.10.102,1433 TrustServerCertificate=YES # # Note: # Port isn't a valid keyword in the odbc.ini file # for the Microsoft ODBC driver on Linux or macOS 测试,连接成功isql -v TEST user passwd +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | echo [string] | | quit | | | +---------------------------------------+ SQL> 配置zabbix模板,为目标主机配置一个MSSQL by ODBC在继承以及主机 宏中修改值{$MSSQL.DSN}即上方odbc.ini中定义的[TEST]{$MSSQL.USER}和{$MSSQL.PASSWORD}是自定义的账号密码注意右侧可以选择密文模式保存(二)MYSQL数据库监控为目标主机关联MySQL by Zabbix agent 2模板为MYSQL创建监控专用用户并配置宏mysql -uroot -p use mysql; CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>'; GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';{$MYSQL.USER}和{$MYSQL.PASSWORD}是自定义的账号密码注意右侧可以选择密文模式保存十三、分组报警 1、将不同主机的告警发送给不同用户创建主机群组,并将主机添加至主机组,如动环告警 2、为主机添加群组3、创建用户群组动环报警组4、创建用户加入群组创建用户donghuanyonghu,加入动环报警组5、为用户创建报警媒介我这里用企业微信报警6、触发器操作发送报告的触发器7、操作发送群组配置完成十四、总结 对接oceanbase数据库见oceanbase文章十五、总结 功能强大、简单方便、干净卫生
2025年04月23日
1,741 阅读
0 评论
25 点赞
2025-04-02
群晖NAS服务器硬盘故障损坏 RAID6 下线更换硬盘 修复存储池步骤
1、发现故障硬盘5发生IO错误,一般为硬盘故障前兆2、查询保修期打群晖客服查询是原厂质保还是代理商质保,查询是否在保质期,提供序列号后,确认在维保期呢。3、运行S.M.A.R.T检测运行后显示状态正常4、综合判断由于服务器已经运行数年,此硬盘可能会很快损坏,服务器采用RAID6阵列,允许2块硬盘下线,综合判断后决定将此硬盘发回换货。5、硬盘下线拆掉6、硬盘上线安装换回来的新硬盘7、修复存储池提示不兼容因为群晖是很多年前的型号了,硬盘已经停产,尽量用同一型号的新硬盘8、等待并祈祷修复顺利9、修复成功
2025年04月02日
300 阅读
0 评论
0 点赞
2025-03-26
VMware vSphere vSAN ESXi笔记记录
最新版本下载:https://customerconnect.vmware.com/cn/downloads/#all_products1、loading esxi installer 卡死在 loading /lsi_mr3.v00 使用UEFI模式安装2、vSphere Clustering Service (vCLS)虚拟机异常处理 缺少功能进BIOS把MWAIT开启3、vCenter Converter standalone 转换物理机到虚拟机问题 提交任务后,总是停留在1%,进度信息停在:Connecting to the Converter helper server on the destination virtual machine.但是错误提示,一直等待。取消任务后,提示:Unable to connect to the Converter helper server on the destination virtual machine问题解决:因为Converter Server在 vCenter上创建的 helper vm虚拟机的缺省网络设置是自动获取ip地址,而网络上没有可用的dhcp服务,所以Converter Server和helper vm通讯失败。应该在vCenter Converter提交任务前的配置页,静态配置helper vm的ip地址,最好用ipv4,并且和vCenter Converter同网段,速度会更快。————————————————版权声明:本文为CSDN博主「我是超级用户」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/petrosofts/article/details/750034594、VMware EXSI 启用vMotion 选择编辑 VMkernel适配器启用 vMotion功能5、vSphere下载 当前已经无法下载,推荐一个大佬的收集网站https://sysin.org/6、vSAN 内部版本建议警报“vSAN 内部版本建议引擎” https://vcsa.vmware.com/ph/api/v1/results?deploymentId=2d02e861-7e93-4954-9a73-b08692a330d1&collectorId=VsanCloudHealth.6_5&objectId=0c3e9009-ba5d-4e5f6-bae8-f25ec506d219&type=vsan-updates-json下载文件,从文件更新7、vSAN 硬件兼容性警报“vSAN HCL 数据库最新版本” https://partnerweb.vmware.com/service/vsan/all.json 下载文件,从文件更新8、vSphere兼容列表 smartX兼容列表 https://compatibilityguide.broadcom.com/https://www.smartx.com/smtxos-compatibility/9、vSAN磁盘均衡报警 配置自动重新均衡策略
2025年03月26日
1,181 阅读
0 评论
0 点赞
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日
620 阅读
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日
1,006 阅读
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日
708 阅读
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日
666 阅读
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、远程连接报错核心日志 默认日志位置 /var/log/teleport/tpcore.logThe server requires that the client support Enhanced RDP Security with CredSSP原因是堡垒机不支持使用RDP协议链接,只能使用SSL在目标服务器上 开始菜单-组策略-计算机配置-管理模板-windows组件-远程桌面服务-远程桌面会话主机-安全-远程(RDP)连接要求使用指定的安全层另外不要开启 仅允许运行使用网络级别身份验证的远程桌面的计算机连接九、总结 开源、快速、功能强大项目捐赠:https://tp4a.com/donate
2025年02月06日
1,927 阅读
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日
567 阅读
0 评论
1 点赞
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日
486 阅读
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日
532 阅读
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,264 阅读
0 评论
17 点赞
1
2
3
...
17