【已评审】snmp、cli接口查询、设置syslog日志类型为all的含义评审

ISSUE链接

背景

历史版本中,snmp接口查询syslog日志类型,由于只有操作日志、安全日志和事件日志三种类型且使能都默认打开,因此snmp接口查询默认结果为all。

在后续版本中syslog新增了入侵检测日志类型(默认关闭)。如果用户从旧版本升级到新版本,并且没设置syslog日志类型的场景下,在新版本中snmp接口查询默认结果从all变为了OperationLogs,SecurityLogs,EventLogs,用户侧的预期结果发生了变化(用户预期会返回all)。

cli接口存在类似问题,设置接口可以通过设置all打开所有日志类型使能,在老版本中,all代表开启操作日志、安全日志和事件日志使能,在新版本中all代表开启操作日志、安全日志、事件日志和入侵检测日志使能。

决策点

一、snmp接口查询、设置syslog日志类型为all的处理策略评审

snmp接口名:/snmp/1.3.6.1.4.1.{{SnmpOemIdentifier}}.34.50/syslogInfoDescriptionTable/Readwrite
属性名:syslogSendLogType

方案1: 无论查询还是设置,all仅代表操作日志、安全日志和事件日志这三种日志使能;
如果要打开操作日志、安全日志、事件日志和入侵检测日志四个日志的使能,只能用"OperationLogs,SecurityLogs,EventLogs,IntrusionDetectionLogs"的格式进行设置。
如果四种日志类型使能都打开,查询结果也是"OperationLogs,SecurityLogs,EventLogs,IntrusionDetectionLogs"的格式

1)设置场景请求示例

snmp设置场景请求值 日志类型说明
none
OperationLogs 操作日志
SecurityLogs 安全日志
EventLogs 事件日志
IntrusionDetectionLogs 入侵检测日志
OperationLogs,EventLogs 操作日志,事件日志
OperationLogs,EventLogs,IntrusionDetectionLogs 操作日志,事件日志,入侵检测日志
all 或 OperationLogs,SecurityLogs,EventLogs 操作日志,安全日志,事件日志
OperationLogs,SecurityLogs,EventLogs,IntrusionDetectionLogs 操作日志,安全日志,事件日志,入侵检测日志

2)查询场景响应示例

snmp查询场景响应 日志类型说明
none
OperationLogs 操作日志
SecurityLogs 安全日志
EventLogs 事件日志
IntrusionDetectionLogs 入侵检测日志
OperationLogs,EventLogs 操作日志,事件日志
OperationLogs,EventLogs,IntrusionDetectionLogs 操作日志,事件日志,入侵检测日志
all 操作日志,安全日志,事件日志
OperationLogs,SecurityLogs,EventLogs,IntrusionDetectionLogs 操作日志,安全日志,事件日志,入侵检测日志

方案2: syslogSendLogType节点中all只表示操作日志、安全日志和事件日志使能,新增oid节点用于入侵检测日志使能显示
snmp接口名:/snmp/1.3.6.1.4.1.{{SnmpOemIdentifier}}.34.50/syslogInfoDescriptionTable/Readwrite
新增节点名称:syslogIntrusionDetectionLogEnabled
类型:integer
权限:Readwrite

使能状态 取值类型
关闭 1
打开 2

二、cli接口设置syslog日志类型值为all的处理策略评审

方案1: 无论查询还是设置,all仅代表操作日志、安全日志和事件日志这三种日志使能;
cli命令名 :ipmcset -t syslog -d logtype -v
设置
all
为开启操作日志、安全日志和事件日志使能,
设置operationlogs,securitylogs,eventlogs,intrusion_detectionlogs才是开启操作日志、安全日志、事件日志和入侵检测日志使能

cli命令ipmcget -t syslog -d iteminfo查询syslog日志类型不会显示为all,操作日志、安全日志和事件日志使能回显为operationlogs securitylogs eventlogs
操作日志、安全日志、事件日志和入侵检测日志使能回显为operationlogs securitylogs eventlogs intrusion_detectionlogs

cli设置取值 日志类型说明
none
operationlogs 操作日志
securitylogs 安全日志
eventlogs 事件日志
intrusion_detectionlogs 入侵检测日志
operationlogs,eventlogs 操作日志,事件日志
operationlogs,eventlogs,intrusion_detectionlogs 操作日志,事件日志,入侵检测日志
all 或者 operationlogs,securitylogs,eventlogs 操作日志,安全日志,事件日志
operationlogs,securitylogs,eventlogs,intrusion_detectionlogs 操作日志,安全日志,事件日志,入侵检测日志

方案2:增加参数,单独表示入侵检测日志
ipmcset -t syslog -d intrusiondetectionlogs -v 1 disabled/enabled

评审结论:

1、snmp 接口评审结论
a)文档中说明设置logtype属性时,all参数不再推荐使用(会逐步废弃),建议用户填写具体的日志类型;如果下发all参数,则表示开启当前版本snmp接口支持的所有日志类型;

b)查询logtype属性时,如果显示all,则表示当前版本snmp接口支持开启的所有日志类型。

c)如果旧版本设置为all,升级到新版本将按照实际开启的日志类型进行返回(例如返回“OperationLogs,SecurityLogs,EventLogs”)。

2、cli 接口评审结论
设置接口all参数保持不变,但是需要在cli接口设置all参数成功时,在接口回显中提示用户当前生效的日志类型有哪些

经确认,上述处理策略不影响社区用户相关接口使用。

3 个赞