我正在使用snmpd服务。阅读snmpd.conf和snmpd.examples手册后,我创建了以下文件配置
file:agentAddress udp:161
rocommunity public
rwcommunity private
trapcommunity trapComm
createUser user
iquerySecName user
agentSecName user
rouser user
trap2sink localhost
proc apache2
procfix apache2 /bin/systemctl start apache2.service
setEvent fixProc prErrFix = 1
monitor -r 10 -e fixProc "fixMyProc" prErrorFlag != 0
我的目标是在不存在apache2进程时立即重新运行apache2。 但是在停止apache2服务并稍等片刻之后,prErrFix变量并未按我期望的那样进行修改:
# snmpwalk -v2c -cpublic localhost 1.3.6.1.4.1.2021.2
UCD-SNMP-MIB::prIndex.1 = INTEGER: 1
UCD-SNMP-MIB::prNames.1 = STRING: apache2
UCD-SNMP-MIB::prMin.1 = INTEGER: 1
UCD-SNMP-MIB::prMax.1 = INTEGER: 0
UCD-SNMP-MIB::prCount.1 = INTEGER: 0
UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: error(1)
UCD-SNMP-MIB::prErrMessage.1 = STRING: No apache2 process running
UCD-SNMP-MIB::prErrFix.1 = INTEGER: noError(0)
UCD-SNMP-MIB::prErrFixCmd.1 = STRING: /bin/systemctl start apache2.service
我在这里错过了什么? 我正在debian9上使用snmpd 5.7.3。