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参数成功时,在接口回显中提示用户当前生效的日志类型有哪些。
经确认,上述处理策略不影响社区用户相关接口使用。