[{"content":"zabbix LTS 4 监控esxi ESXI设置项 开启主机调试mob调试 登录ESXi主机，在【管理】- 【系统】-【高级设置】找到键：Config.HostAgent.plugins.solo.enableMob，然后将其启用\n创建一个用户并分配权限 这里示例为user：zabbix\tpwd：自定义\n分配只读权限\n获取uuid 打开https://esxi_ip/mob/?moid=ha-host\u0026amp;doPath=hardware.systemInfo\n这里为https://192.168.15.44/mob/?moid=ha-host\u0026amp;doPath=hardware.systemInfo\n用刚刚那个zabbix用户登录\n这里uuid为：\u0026ldquo;5f47fd40-5bcb-11d9-a905-xxx\u0026rdquo;\nzabbix server设置项 开启配置 环境\ncentos7.9 Zabbix 4.0.46 ESXI 7 vim /etc/zabbix/zabbix_server.conf\n# 找到以下参数取消注释并配置相应数值 StartVMwareCollectors=6 VMwareCacheSize=50M VMwareFrequency=10 VMwarePerfFrequency=60 VMwareTimeout=30 参数解释：\nStartVMwareCollectors：收集器实例的数量。此值取决于要监控的 VMware 服务的数量，原则是：servicenum \u0026lt; StartVMwareCollectors \u0026lt; (servicenum * 2)，其中 servicenum 是 VMware 服务的数量\nVMwareCacheSize：用于存储VMware 数据的缓存容量，默认为8M，取值范围：256K-2G。\nVMwareFrequency： 连接到VMware服务收集一个新数据的频率，默认为60秒，取值范围：10-86400。\nVMwarePerfFrequency：连接到VMware服务收集性能数据的频率，默认为60秒，取值范围10-86400。\nVMwareTimeout：等待VMware 服务响应的时间，默认为10秒，取值范围：1-300。\n重启zabbix\nsystemctl restart zabbix-server 检查日志是否开启成功\ntail -60f /var/log/zabbix/zabbix_server.log 如果有VMware monitoring: YES，就成功了\nweb端配置 添加主机\n添加完后来到主机页面里面，选择 宏 选项\n去看看监控项有没有红色感叹号，这里出现了缺少宏 {$VMWARE_PERF_INTERVAL}，给他补上去\n过段时间有数据了\n","date":"2026-06-05T10:26:30+08:00","permalink":"/post/2026/06/zabbix-lts-4-%E7%9B%91%E6%8E%A7esxi/","title":"zabbix LTS 4 监控esxi"},{"content":"zabbix LTS 4备份 备份mysql数据库 核心命令：\nmysqldump -h127.0.0.1 -P3306 -uroot -pxxx zabbix \u0026gt; /home/backupZabbix/db/2023_09_08.sql\nshellScript:\n#!/bin/bash . /etc/profile . ~/.bash_profile dateBackup=$(date +%Y-%m-%d_%H:%M:%S) dir=\u0026#34;/home/backupZabbix/db/\u0026#34; if [ ! -d \u0026#34;${dir}\u0026#34; ] then mkdir ${dir} echo \u0026#34;创建文件夹成功\u0026#34; else echo \u0026#34;文件夹已经存在\u0026#34; fi # 需要备份的数据库名 dbNames=(zabbix) for dbName in ${dbNames[@]} do echo \u0026#34;-----------------\u0026gt; 备份 ${dbName} 数据库 \u0026lt;-----------------\u0026#34; \u0026gt;\u0026gt; /home/backupZabbix/log/${dateBackup}.log # 备份MySQL， 1\u0026gt;\u0026gt; 为正常输出，2\u0026gt;\u0026gt; 为错误或者警告输出到日志文件 mysqldump -uroot -pxxx ${dbName} 1\u0026gt;\u0026gt; ${dir}/${dateBackup}_zabbix.sql 2\u0026gt;\u0026gt; /home/backupZabbix/log/${dateBackup}.log # 压缩文件 解压为 gzip -d mybatis.sql.gz gzip ${dir}/${dateBackup}_zabbix.sql done echo -e \u0026#34; \\n ----------------\u0026gt; 删除过期文件 \u0026lt;---------------------------\u0026#34; \u0026gt;\u0026gt; /home/backupZabbix/log/${dateBackup}.log # 判断文件夹数量是否大于7，防止程序意外停止，删除所有备份 dirCount=`ls -l /home/backupZabbix/db/|grep \u0026#34;^d\u0026#34;|wc -l` if [ ${dirCount} -gt 7 ] then # 删除超过七天的 sql 备份 find /home/backupZabbix/db -mtime +6 -name \u0026#34;*_*\u0026#34; -exec rm -rf {} \\; #删除超过七天的 日志 find /home/backupZabbix/db -mtime +6 -name \u0026#34;*.log\u0026#34; -exec rm -rf {} \\; echo -e \u0026#34; 删除过期文件成功\u0026#34; \u0026gt;\u0026gt; /home/backupZabbix/log/${dateBackup}.log else echo \u0026#34;删除过期文件失败，文件数量小于 7 \u0026#34; \u0026gt;\u0026gt; /home/backupZabbix/log/${dateBackup}.log fi sh xxx.sh运行\n定时任务：\ncrontab -e 0 01 * * * . /etc/profile;/bin/sh /home/backupZabbix/backupMysqlZabbix.sh 还原zabbix 安装mysql yum install MariaDB-server 还原 mysql -u root -p\ncreate database zabbix character set utf8 collate utf8_bin; create user zabbix@localhost identified by \u0026lsquo;xxx\u0026rsquo;; grant all privileges on zabbix.* to zabbix@localhost; quit;\ngunzip \u0026lt; all_abc.sql.gz | mysql -uroot -p12356\nmysql -h127.0.0.1 -P3306 -uroot -pxzjzxcvb zabbix \u0026lt; 2021-07.sql\n安装zabbixServer https://www.zabbix.com/cn/download?zabbix=4.0\u0026os_distribution=centos\u0026os_version=7\u0026components=server_frontend_agent\u0026db=mysql\u0026ws=apache\n","date":"2026-06-05T10:26:30+08:00","permalink":"/post/2026/06/zabbix-lts-4%E5%A4%87%E4%BB%BD/","title":"zabbix LTS 4备份"},{"content":"zabbix4监控LSI阵列卡 linux端 前提：搭建好zabbix平台，安装好megacli软件在/opt/MegaRAID/MegaCli/MegaCli64\n环境：centos6.10\nzabbix 4\n功能实现\n硬盘自动发现并加入监控（新接入一块盘会自动接入） 监控硬盘的物理坏道 监控硬盘的逻辑坏道 监控硬盘的预报错（DELL服务器确认硬盘是否故障的最重要指标） 监控硬盘的状态 监控阵列等级状态，一但出现降级则告警 阀值设置\nMedaia Error Count on Every Disk \u0026lt;=30 Other Error Count on Every Disk \u0026lt;=1000 Predictive Failure Count On Every Disk \u0026lt;=2 Firmware State on Every Disk !=Unconfigured(bad),Failed Raid Level State != Degraded 创建取值脚本 为了安全与方便，在home目录下创建一个zabbix的文件夹存放缓存，并把所有者改为zabbix\nmkdir /home/zabbix chown zabbix:zabbix /home/zabbix mkdir /home/zabbix/tmp chown zabbix:zabbix /home/zabbix/tmp 这里放在/home/zabbix/diskcheck_megacli.sh，看你喜好\n#!/bin/bash #zabbix监控硬盘信息脚本 #By xiangjunyu 20151101 TEMP_DIR=\u0026#34;/home/zabbix\u0026#34; #获取磁盘信息 sudo /opt/MegaRAID/MegaCli/MegaCli64 -Pdlist -a0|grep -Ei \u0026#39;(Slot Number|Media Error Count|Other Error Count|Predictive Failure Count|Raw Size|Firmware state)\u0026#39;|sed -e \u0026#34;s:\\[0x.*Sectors\\]::g\u0026#34; \u0026gt;${TEMP_DIR}/tmp/pdinfo.txt #将每块磁盘信息拆分，进行逐盘分析 split -l 6 -d ${TEMP_DIR}/tmp/pdinfo.txt ${TEMP_DIR}/tmp/pdinfo #获取磁盘数量（实际数量=PDNUM+1） PDNUM=`sudo /opt/MegaRAID/MegaCli/MegaCli64 -PDGetNum -aAll|grep Physical|awk \u0026#39;{ print $8 }\u0026#39;` #磁盘分块后文件名规范统一化 for((i=0;i\u0026lt;${PDNUM};i++)) do mv ${TEMP_DIR}/tmp/pdinfo0${i} ${TEMP_DIR}/tmp/pdinfo${i} \u0026gt;/dev/null 2\u0026gt;\u0026amp;1 #ls /tmp/pdinfo${i} done SLOT_NUM=$2 DATAFORMATE() { while read LINE do if [[ ${LINE} == Slot* ]]; then SLOTNUMNAME=`echo ${LINE}|awk -F: \u0026#39;{ print $1 }\u0026#39;` SLOTNUM=`echo ${LINE}|awk -F: \u0026#39;{ print $2 }\u0026#39;` elif [[ ${LINE} == Media* ]]; then MECNAME=`echo ${LINE}|awk -F: \u0026#39;{ print $1 }\u0026#39;` MEC=`echo ${LINE}|awk -F: \u0026#39;{ print $2 }\u0026#39;` elif [[ ${LINE} == Other* ]]; then OECNAME=`echo ${LINE}|awk -F: \u0026#39;{ print $1 }\u0026#39;` OEC=`echo ${LINE}|awk -F: \u0026#39;{ print $2 }\u0026#39;` elif [[ ${LINE} == Predictive* ]]; then PFCNAME=`echo ${LINE}|awk -F: \u0026#39;{ print $1 }\u0026#39;` PFC=`echo ${LINE}|awk -F: \u0026#39;{ print $2 }\u0026#39;` elif [[ ${LINE} == Raw* ]]; then RAWNAME=`echo ${LINE}|awk -F: \u0026#39;{ print $1 }\u0026#39;` SIZE=`echo ${LINE}|awk -F: \u0026#39;{ print $2 }\u0026#39;` elif [[ ${LINE} == Firmware* ]]; then FIRMWARENAME=`echo ${LINE}|awk -F: \u0026#39;{ print $1 }\u0026#39;` FIRMWARESTATUS=`echo ${LINE}|awk -F: \u0026#39;{ print $2 }\u0026#39;` fi done \u0026lt;${TEMP_DIR}/tmp/pdinfo${SLOT_NUM} } #检测阵列等级状态 CHECKRAIDLEVEL() { sudo /opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL|grep Degraded if [ $? = 0 ] then echo -1 else echo 0 fi } OPTION=$1 case $OPTION in mec) DATAFORMATE echo ${MEC} ;; oec) DATAFORMATE echo ${OEC} ;; pfc) DATAFORMATE echo ${PFC} ;; firm) DATAFORMATE if [[ \u0026#34;$FIRMWARESTATUS{}\u0026#34; = \u0026#34;Unconfigured(bad)\u0026#34; ]] then echo -1 elif [[ \u0026#34;$FIRMWARESTATUS{}\u0026#34; = \u0026#34;Failed\u0026#34; ]] then echo -1 else echo 0 fi ;; rdlevel) CHECKRAIDLEVEL ;; *) echo \u0026#34;Please select option: mec $slot_num ;oec $slot_num;pfc $slot_num;firm $slot_num;rdlevel\u0026#34; esac rm -rf ${TEMP_DIR}/tmp/pdinfo* 权限加个x（运行）\nchmod +x /home/zabbix/diskcheck_megacli.sh zabbix agent设置 给zabbix用户分root权限运行MegaCli visudo 加上zabbix ALL=(root) NOPASSWD: /opt/MegaRAID/MegaCli/MegaCli64 esc键 ：wq保存 修改zabbix agent配置文件 vim /etc/zabbix/zabbix_agentd.conf #加上一行 UnsafeUserParameters=1 #还有一行应该默认有Include=/etc/zabbix/zabbix_agentd.conf.d/ 创建自定义监控项的配置文件 写个配置文件在/etc/zabbix/zabbix_agentd.conf.d/disk.conf\n#硬盘自动发现 #UserParameter=raid.pd.discovery,MegaCli64 -PDlist -aAll -NoLog|grep Slot|awk \u0026#39;BEGIN{printf \u0026#34;{\u0026#34;data\u0026#34;:[nn\u0026#34;} {printf \u0026#34;,n{ \u0026#34;{#SLOT_NUM}\u0026#34;:\u0026#34;%s\u0026#34;}\u0026#34;, $NF, $1;} END{ printf \u0026#34;nt]n}n\u0026#34;;}\u0026#39; | sed \u0026#39;/^,$/d\u0026#39; UserParameter=raid.pd.discovery,sudo /opt/MegaRAID/MegaCli/MegaCli64 -PDlist -aAll -NoLog | grep Slot | awk \u0026#39;BEGIN{printf \u0026#34;{\\\u0026#34;data\\\u0026#34;:[\u0026#34;} {if(NR\u0026gt;1) printf \u0026#34;,\u0026#34;; printf \u0026#34;\\n{\\\u0026#34;{#SLOT_NUM}\\\u0026#34;:\\\u0026#34;%s\\\u0026#34;}\u0026#34;, $NF} END{printf \u0026#34;\\n]}\\n\u0026#34;}\u0026#39; | sed \u0026#39;/^,$/d\u0026#39; #收集Media Error Count UserParameter=raid.phy.mec[*],/home/zabbix/diskcheck_megacli.sh mec $1 #收集Other Error Count UserParameter=raid.phy.oec[*],/home/zabbix/diskcheck_megacli.sh oec $1 #收集Predictive Failure Count UserParameter=raid.phy.pfc[*],/home/zabbix/diskcheck_megacli.sh pfc $1 #检测硬盘状态，有故障则回复-1 UserParameter=raid.phy.firms[*],/home/zabbix/diskcheck_megacli.sh firm $1 #检测阵列等级,有降级则回复-1 UserParameter=raid.level.state,/home/zabbix/diskcheck_megacli.sh rdlevel 重启zabbix agent\nservice zabbix-agent restart 测试一下取值\nzabbix_agentd -t raid.phy.mec[0] zabbix_agentd -t raid.pd.discovery raid.phy.mec[3] [t|0]\n[root@localhost zabbix_agentd.d]# zabbix_agentd -t raid.pd.discovery raid.pd.discovery [t|{\u0026ldquo;data\u0026rdquo;:[ {\u0026quot;{#SLOT_NUM}\u0026quot;:\u0026ldquo;0\u0026rdquo;}, {\u0026quot;{#SLOT_NUM}\u0026quot;:\u0026ldquo;1\u0026rdquo;}, {\u0026quot;{#SLOT_NUM}\u0026quot;:\u0026ldquo;2\u0026rdquo;}, {\u0026quot;{#SLOT_NUM}\u0026quot;:\u0026ldquo;3\u0026rdquo;} ]}]\n取到值为0,则正常;如有报错,要具体看\nzabbix server设置 创建模板 命名为Check Raid By MegaCli\n创建自动发现规则 在模板中新建一个Discovery rule\nName：Physical disk discovery\nType：Zabbix agent(active)\nKey：raid.pd.discovery\nUpdate interval (in sec):3600\nKeep lost resources period (in days):30\nDeion:Find physical disk\nEnabled： ✔\n并且在过滤器添加一项{#SLOT_NUM},对应disk.conf里面写的key\n创建监控项原型item 在自动发现规则中Physical disk discovery创建监控项原型\nMedia Error Count On Slot {#SLOT_NUM}\nName:Media Error Count On Slot $1\nType：Zabbix agent(active)\nKey:raid.phy.mec[{#SLOT_NUM}] #这里的key注意和disk.conf里的匹配\nApplications:MegaRaid #自己新建一个Application\nEnabled： ✔\nOther Error Count On Slot {#SLOT_NUM}\nPredictive Error Count On Slot {#SLOT_NUM}\nFirmware State On Slot {#SLOT_NUM}\nRaid Level State\n创建触发器原型trigger 在自动发现规则中Physical disk discovery创建触发器原型\n名称：{HOST.NAME}硬盘阵列 SLOT {#SLOT_NUM} Firmware State 报错\n表达式：{Check Raid By MegaCli:raid.phy.firms[{#SLOT_NUM}].last()}\u0026lt;\u0026gt;0\n严重性：严重\n以此类推\n疑难解答 自动发现规则报错 无法发送请求\n错误的发现规则类型 请求无法发送。\nValue should be a JSON object.\n格式错误\n在server上用zabbix_get -s agent的ip -k key看看\nzabbix_get -s xxx -k raid.pd.discovery\n[root@localhost ~]# zabbix_get -s 192 -k raid.pd.discovery {\u0026#34;data\u0026#34;:[ ]} [root@localhost ~]# zabbix_get -s 192 -k raid.phy.mec[0] /home/zabbix/diskcheck_megacli.sh: line 5: /var/lib/zabbix/.bash_profile: No such file or directory /home/zabbix/diskcheck_megacli.sh: line 21: ((: i\u0026lt;: syntax error: operand expected (error token is \u0026#34;\u0026lt;\u0026#34;) /home/zabbix/diskcheck_megacli.sh: line 28: /home/zabbix/tmp/pdinfo0: No such file or directory 没有数据，应该是zabbix用户权限不足\n在agent的机子上用sudo -u zabbix 跑跑看看\n要用root才能跑，在sudoer里面加上就行了\nwin端 ","date":"2026-06-05T10:26:30+08:00","permalink":"/post/2026/06/zabbix4%E7%9B%91%E6%8E%A7lsi%E9%98%B5%E5%88%97%E5%8D%A1/","title":"zabbix4监控LSI阵列卡"},{"content":"故障现象 win11用HP官方驱动网络连接HP LaserJet m128 p1020等打印机\n时不时提示打印服务Print Spool未运行，手动开启服务后可以正常打印，但大概几天内又会停止。\n查看事件管理器得到报错信息\n错误应用程序名称: spoolsv.exe，版本: 10.0.22621.6133，时间戳: 0xbddbf451 错误模块名称: HpTcpMon.dll，版本: 7.2.5.51，时间戳: 0x4ab0e4d3 异常代码: 0xc0000005 错误偏移量: 0x000000000001c62c 错误进程 ID: 0x0x1190 错误应用程序启动时间: 0x0x1DCDE9AB1A622FA 错误应用程序路径: C:\\Windows\\System32\\spoolsv.exe 错误模块路径: C:\\Windows\\System32\\HpTcpMon.dll 报告 ID: b7f0bdbd-7ff0-428c-8bef-aa7e8fe6adfc 错误程序包全名: 错误程序包相对应用程序 ID: HpTcpMon.dll介绍 核心概念：什么是 Port Monitor？ 在 Windows 中，打印机不能直接把数据扔给网络网卡或 USB 接口，它必须通过一个叫做 Print Spooler（打印后台处理程序） 的核心服务。而 Spooler 并不懂得底层硬件的通信协议（它不懂什么是 TCP/IP，也不懂什么是 USB 信号）。\nPort Monitor（端口监视器） 就是连接 Spooler 和底层物理接口的“翻译官”兼“快递员”。\n它的职责： 打开端口、配置端口、将打印数据流（RAW/LPR 等）传输给打印机、管理双向通信（如获取打印机墨水状态、纸张耗尽错误等）。 关系对比 Windows 允许不同的硬件厂商编写自己的 Port Monitor 来扩展打印功能。\n端口监视器 (Port Monitor) 对应的物理/网络端口 (Port Type) 说明 tcpmon.dll 标准 TCP/IP 端口 (Standard TCP/IP Port) Windows 自带，通用的网络打印监视器。 HpTcpMon.dll HP Standard Network Port HP 专用的网络监视器。 usbmon.dll USB 端口 (USB001, USB002) 负责本地 USB 连接的打印机。 localspl.dll 本地端口 (LPT1, COM1, FILE) 负责传统并口、串口或打印到文件。 解决方法：将HP Standard Port换为Standard TCP/IP Port 在 C:\\Windows\\System32 目录下，将HpTcpMon.dll重命名为HpTcpMon.dll.bak\n按win+r，输入regedit运行注册表编辑器，并且定位到\n计算机\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Print\\Monitors\\HP Standard TCP/IP Port\n将Driver的值从HpTcpMon.dll改为TcpMon.dll\n重启电脑后，测试打印成功。并且在控制面板-硬件和声音-设备和打印机-打印服务器属性中查看打印机端口，可见已经改为系统自带的标准 TCP/IP 端口\n","date":"2026-06-04T10:26:30+08:00","permalink":"/post/2026/06/hp%E6%89%93%E5%8D%B0%E6%9C%BA%E9%A9%B1%E5%8A%A8tcp%E7%9B%91%E6%8E%A7%E6%8E%A5%E5%8F%A3hptcpmon.dll%E5%B4%A9%E6%BA%83%E9%97%AE%E9%A2%98/","title":"HP打印机驱动Tcp监控接口HpTcpMon.dll崩溃问题"},{"content":"","date":"2026-06-04T10:20:19+08:00","permalink":"/post/2026/06/test-powershell/","title":"Test Powershell"},{"content":"hello\n","date":"2026-06-03T16:01:59+08:00","permalink":"/post/2026/06/hello-hugo%E6%B5%8B%E8%AF%95/","title":"Hello Hugo测试"}]