Version 35.1 by superadmin on 2024/10/13, 16:57

Show last authors
1 [[返回本章节索引>>http://itil4hub.cn/bin/view/G%20%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/ITIL%E5%AE%9E%E6%96%BD%E9%A1%B9%E7%9B%AE%E8%B5%84%E6%96%99/ITIL%E5%AE%9E%E6%96%BD%E9%A1%B9%E7%9B%AE%E6%B5%81%E7%A8%8B%E8%AE%BE%E8%AE%A1%E6%96%B9%E6%A1%88%E9%9B%86/%E9%97%AE%E9%A2%98%E7%AE%A1%E7%90%86/]] [[阅读下一章>>http://itil4hub.cn/bin/view/G%20%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99/ITIL%E5%AE%9E%E6%96%BD%E9%A1%B9%E7%9B%AE%E8%B5%84%E6%96%99/ITIL%E5%AE%9E%E6%96%BD%E9%A1%B9%E7%9B%AE%E6%B5%81%E7%A8%8B%E8%AE%BE%E8%AE%A1%E6%96%B9%E6%A1%88%E9%9B%86/%E9%97%AE%E9%A2%98%E7%AE%A1%E7%90%86/19%20%E6%9F%90%E4%BF%A1%E6%81%AF%E5%8C%96%E4%B8%AD%E5%BF%83%E8%BF%90%E7%BB%B4%E6%9C%8D%E5%8A%A1%E9%97%AE%E9%A2%98%E7%AE%A1%E7%90%86%E7%A8%8B%E5%BA%8F/]]
2
3
4 **文档信息**
5
6 [[image:1728803823948-232.png]]
7
8
9 **版本历史**
10
11 [[image:1728803862626-671.png]]
12
13
14 = **1.设计概要** =
15
16
17 问题管理流程的根本目的是消除或减少生产环境中事件发生的数量和严重程度,从而为企业建立一个稳定的IT环境,提高IT服务的可用性。此流程对发生在生产环境中的问题进行管理,找出产生这些问题的根本原因,然后根据需要通过变更请求(RFC)、变通方法或建议的预防性措施来防止事件的再次发生。
18
19 问题管理流程着重于消除事件或减少事件发生,确定事件的根本原因。主要活动包括分析事件、找出问题、分派问题、确定根本原因以及找出解决方案、回顾及关闭,以消除事件或在其发生时降低对用户或业务的影响。
20
21
22 = **2.总体方案** =
23
24 [[image:1728803903848-811.png]]
25
26
27 问题管理概要流程描述如下:
28
29 |**序号**|(% style="width:146px" %)**步骤名称**|(% style="width:163px" %)**责任人**|(% style="width:752px" %)**说明**
30 |200.1|(% style="width:146px" %)问题确定与记录|(% style="width:163px" %)问题处理专家/问题经理|(% style="width:752px" %)(((
31 1. 对事件研究、维护提出以及分析发现的潜在问题,在系统中进行记录,并对问题信息进行描述
32 1. 问题处理专家创建的问题,如果需要,应提交给问题经理确认;否则应抄送问题经理备案
33 1. 问题经理创建的问题,可与200.2环节合并,直接分派给问题处理专家
34 )))
35 |200.2|(% style="width:146px" %)问题确认与分派|(% style="width:163px" %)问题处理专家/问题经理|(% style="width:752px" %)(((
36 1. 问题处理专家提交上来的问题,问题经理应对其进行审核确认,确定问题是否需要继续处理。如果问题确认无效,则关闭问题,并通知请求者
37 1. 问题经理创建或审核的问题,分派给相应问题处理专家;问题处理专家创建的问题,可以自行处理或分派给现场厂商
38 )))
39 |200.3|(% style="width:146px" %)分析并诊断问题/提供变通方法|(% style="width:163px" %)(((
40 问题处理专家/
41
42 厂商
43 )))|(% style="width:752px" %)(((
44 1. 问题处理专家/厂商接受问题,更新问题状态及实际开始诊断时间
45 1. 如需其他问题处理专家协助分析、诊断,则通知问题经理,由问题经理协调资源,成立问题分析小组,举行问题根本原因分析研讨会议,并确定问题的潜在原因,提供或更新问题变通方法,以降低问题在根本解决前对业务产生的影响
46 1. 将问题产生根本原因及变通方法及时更新到问题记录中
47 1. 将问题根本原因及变通方法通知问题经理
48 1. 如果预计无法找到问题的根本原因,及时通报问题经理
49 )))
50 |200.4|(% style="width:146px" %)开发、确认、实施解决方案|(% style="width:163px" %)(((
51 问题处理专家/
52
53 厂商
54 )))|(% style="width:752px" %)(((
55 1. 问题处理专家或厂商推荐并测试根本性解决方案,并确保这些方案彻底解决问题,更新问题记录中的实际诊断结束时间
56 1. 问题处理专家判断实施上述解决方案/变通方法是否需要通过其他流程(如变更流程等)
57 1*. 如需要,提交到相应的流程,并和该流程人员保持沟通,了解问题的解决状况
58 1*. 如不需要变更,计划并组织实施解决方案以解决问题
59 1. 如果需要第三方介入,则问题处理专家负责与第三方的接口与协调
60 1. 如果问题处理专家预计在无法找到根本解决方案或虽有解决方案但目前无法实施(如实施的代价太大),通报问题经理
61 )))
62 |200.5|(% style="width:146px" %)问题监控|(% style="width:163px" %)(((
63 问题经理/
64
65 问题处理专家
66 )))|(% style="width:752px" %)(((
67 问题经理和问题处理专家负责问题分析、诊断、解决过程中的跟踪和监控:
68
69 1. 在问题找到根本原因或解决方案之后,根据需要,向服务台或问题请求人员通报该问题的解决情况,以帮助和提高事件的解决率
70 1. 对于问题处理专家认为无法找到根本原因或虽有解决方案,但目前无法实施(如实施的代价太大等),问题经理协调问题处理专家进行分析判断,决定该问题是继续诊断、解决还是关闭该问题
71 )))
72 |200.6|(% style="width:146px" %)问题回顾|(% style="width:163px" %)(((
73 问题经理/
74
75 问题处理专家
76 )))|(% style="width:752px" %)(((
77 1. 问题处理专家和问题经理对问题进行回顾,确认问题是否被正确的解决,如果没有解决,转到200.3分析并诊断问题/提供变通方法
78 1. 整理问题处理经验,提交到知识管理系统。
79 )))
80 |200.7|(% style="width:146px" %)问题关闭|(% style="width:163px" %)问题处理专家|(% style="width:752px" %)(((
81 1. 对问题记录的信息项进行总结,更新问题记录并关闭问题
82 )))
83
84 问题管理存在以下实际应用场景:
85
86 1. 突发事件升级为问题
87 1. 运维人员手动提交问题
88 1. 根据事件趋势分析结果提交问题
89
90 = =
91
92 = **3.模块与周边产品集成** =
93
94
95
96
97
98 = **4.详细设计与开发指导** =
99
100 == **4.1.技术细节** ==
101
102 == **4.1.1.表单(format)** ==
103
104 * PM.problem.logging
105
106 PM.problem.planning
107
108 PM.problem.investigation
109
110 PM.problem.resolution
111
112 PM.problem.closure
113
114 添加“问题来源”、“重复问题”。
115
116 “问题来源:”的文本控件的输入属性为MS.source,值列表为“事件升级;维护提出;趋势分析”。
117
118 “是否为重复问题:”的组合控件的输入属性为MS.duplicate,值列表为“1;0”,显示列表为“是;否”。
119
120 “是否为重大问题:”的组合控件的输入属性为MS.critical,值列表为“1;0”,显示列表为“是;否”。
121
122 将标签“问题协调员”改为“问题处理人”。
123
124 将表单中“区域:”和“分区:”标签的标题分别修改为“领域:”和“子领域:”。
125
126 隐藏“文件夹:”的标签控件和文本输入控件。
127
128 隐藏“服务” 的标签控件和文本输入控件。
129
130 将“公司”选项卡的“可见条件” [$G.multi]=true去掉,并设置该选项卡为不可见。
131
132 将“任务”选项卡设置为不可见。
133
134 将“评估”选项卡改为“受影响的配置项”。并该选项卡下面的“估计每人每天的次数:”、“估计成本”的标签和文本控件隐藏。添加标签,设置标题为“请通过选择"主要配置项"来添加多个受影响的配置项:”。
135
136 [[image:1728803998299-174.png]]
137
138
139 将“活动”选项下面控件的标题修改如下:
140
141 [[image:1728804015751-690.png]]
142
143
144 * advFind.search.problem
145
146 添加“问题来源”、“重复问题”。
147
148 添加“问题来源”,输入属性为“MS.source”,值列表为“事件升级;维护提出;趋势分析”。
149
150 “重复问题”的选项控件的输入属性为MS.duplicate。
151
152 将表单中“区域:”和“分区:”标签的标题分别修改为“领域:”和“子领域:”。
153
154 标签“问题协调员”改为“问题处理人”。
155
156 将“搜索下列状态的记录单:”控件删除掉。
157
158 隐藏“文件夹”控件。
159
160 [[image:1728804100665-159.png]]
161
162
163 * 修改以下表单
164
165 PM.error.logging
166
167 PM.error.planning
168
169 PM.error.investigation
170
171 PM.error.resolution
172
173 PM.error.closure
174
175 “问题协调员:”改为“问题处理人:”
176
177 “匹配的配置项数:”改为“受影响的配置项数:”
178
179 “区域:”改为“领域:”
180
181 “子区域:”改为“子领域:”
182
183 隐藏“相关交互计数:”
184
185 隐藏“文件夹:”
186
187 [[image:1728804130498-873.png]]
188
189
190
191 “活动更新”改为“提供更新”
192
193 “日记更新”改为“日志”
194 “活动历史记录”改为“历史活动”
195
196 “更新类型:”改为“活动类型:”
197
198
199 [[image:1728804152433-364.png]]
200
201
202
203 * 创建表单PM.notify.registered
204
205 表单上用标签来显示问题工单各个字段的内容。比如标签“领域:”后面紧跟着还有一个标签,这个标签标题为空,它的输入属性为”subcategory”,以此来动态生成邮件内容。
206
207
208 [[image:1728804209751-713.png]]
209
210
211 * 表单PM.notify.assigned
212
213 表单上用标签来显示问题工单各个字段的内容。比如标签“领域:”后面紧跟着还有一个标签,这个标签标题为空,它的输入属性为”subcategory”,以此来动态生成邮件内容。
214
215
216 [[image:1728804233983-723.png]]
217
218
219 * 表单PM.notify.assigned.group
220
221 表单上用标签来显示问题工单各个字段的内容。比如标签“领域:”后面紧跟着还有一个标签,这个标签标题为空,它的输入属性为”subcategory”,以此来动态生成邮件内容。
222
223
224 [[image:1728804260239-719.png]]
225
226
227 == **4.1.2.表单控制(formatctrl)** ==
228
229 * 表单控制rootcause
230
231 计算
232
233 将计算语句incident.category in $file="problem"改为incident.category in $file="故障"
234
235 [[image:1728804290109-635.png]]
236
237 验证
238
239 将以下验证语句去掉。
240
241 [[image:1728804305533-650.png]]
242
243 * 表单控制knownerror
244
245 加false将验证以下语句禁用。
246
247 [[image:1728804325508-222.png]]
248
249
250 == **4.1.3.处理定义(Process)** ==
251
252 * process="rca.view.init"
253
254 将下面的初始表达式
255
256 if ($L.mode="add") then (rcStatus in $L.file="Open")
257
258 改为:if ($L.mode="add") then (rcStatus in $L.file="已登记")
259
260
261 == **4.1.4.显示选项(displayoptions)** ==
262
263 * 将以下displayoption的用户条件设置为false :
264
265 id="rca.view_ok_1"
266
267 id="rca.view_ok"
268
269 id="rca.view_previousphase"
270
271 id="kne.view_previousphase"
272
273 id="kne.view_ok "
274
275 id="rca.view_getsla"
276
277 id="rca.task.view_getsla"
278
279 id="rca.view_do nothing"
280
281 id="rca.task.view_do nothing"
282
283
284 == **4.1.5.活动动作(activityactions)** ==
285
286 * table#"rootcause"
287
288 将名称和描述改成中文。
289
290 Open:登记
291
292 Reassignment:重新分配
293
294 Assignment:分配
295
296 Phase Change:更改阶段
297
298 Reopen:重新打开
299
300 Status Change:更改状态
301
302 Closed:关闭
303
304 Cancelled:取消
305
306 Workaround Update:更新变通方案
307
308 External Update:外部更新
309
310
311 效果图如下:
312
313 [[image:1728804373117-464.png]]
314
315 [[image:1728804406592-495.png]]
316
317 [[image:1728804418524-225.png]]
318
319
320 * table#"knownerror"
321
322 将名称和描述改成中文。
323
324 Open:登记
325
326 Reassignment:重新分配
327
328 Assignment:分配
329
330 Phase Change:更改阶段
331
332 Reopen:重新打开
333
334 Status Change:更改状态
335
336 Closed:关闭
337
338 Cancelled:取消
339
340 Workaround Update:更新变通方案
341
342 External Update:外部更新
343
344
345 [[image:1728804442563-918.png]]
346
347 [[image:1728804453159-946.png]]
348
349
350 == **4.1.6.数据** ==
351
352 为数据表注入定制好的中文数据。
353
354 请直接双击zip文件,解压出unl文件,然后用SM的数据库管理器导入数据。
355
356
357 **问题阶段(表名:rootcausephase)**
358
359 [[image:1728804471764-343.png]]
360
361
362 **问题控制类别(表名:rootcausecat)**
363
364 [[image:1728804487048-226.png]]
365
366
367 **问题状态(表名:ModuleStatus)**
368
369 [[image:1728804500431-649.png]]
370
371
372 **问题活动(表名:activitytype)**
373
374 [[image:1728804537907-970.png]]
375
376
377 **已知错误阶段**
378
379 [[image:1728804549777-897.png]]
380
381
382 **已知错误类别**
383
384 [[image:1728804569099-343.png]]
385
386
387 **已知错误活动(表名:activitytype)**
388
389 [[image:1728804581942-816.png]]
390
391
392 == **4.1.7.全局列表(globallists)** ==
393
394 * name=”PM Activity Types”
395
396 更改值列表如下:
397
398 {"信息更新","分析与调查","已关闭","与客户沟通","与供应商沟通","已登记","操作员更新","已诊断部分问题","阶段变更","问题已标识","问题重现","重新分配","重新打开","来自客户的更新","变通方案", "已分配","状态变更","已取消","变通方案更新","解决方案更新"}
399
400 == ==
401
402 == **4.1.8.系统消息(scmessage)** ==
403
404 * 把更新消息编号2210的文本“请提供更新。”改为“请提供当前更新的详细描述。”
405
406 语言代码: zh-Hans
407
408 类别: us
409
410 消息编号: 2210
411
412 严重度: 1
413
414 文本:请提供当前更新的详细描述。
415
416
417 * 将消息编号810的文本“请提供区域。”更改为“请提供领域。”
418
419 [[image:1728804613899-619.png]]
420
421
422 * 将消息编号811的文本“请提供子区域。”更改为“请提供子领域。”
423
424 [[image:1728804637281-152.png]]
425
426
427 * 将消息编号1502的文本“请提供标题。”更改为“请提供简要描述。”
428
429 [[image:1728804654335-863.png]]
430
431
432 * 将消息编号813的文本“请提供描述。”更改为“请提供详细说明。”
433
434 [[image:1728804704383-985.png]]
435
436
437 == **4.2.表结构** ==
438
439 |**数据库表**|**标签**|**字段名**|**数据类型**|**是否为必填**|**Oracle映射**
440 |rootcause|问题来源|MS.source|character|否|varchar2(40)
441 |rootcause|是否为重复问题|MS.duplicate|character|否|char(1)
442 |rootcause|是否为重大问题|MS.critical|Character|否|Char(1)
443
444 SQL语句:
445
446 ALTER TABLE "SM7ADMIN"."ROOTCAUSEM1" ADD ( "MS_SOURCE" VARCHAR2(40), "MS_DUPLICATE" CHAR(1), "MS_CRITICAL" CHAR(1))
447
448 == ==
449
450 == **4.2.1.字段帮助内容** ==
451
452 为以下数据库表的字段添加帮助内容:
453
454 |**数据库表**|**字段名**|**帮助内容**
455 |rootcause|MS.source|(((
456 描述问题的来源。
457
458 事件升级:事件恢复服务后提出的问题,以便对事件的根本原因进行分析。
459
460 维护提出:技术专家在日常维护工作中提出的问题。
461
462 趋势分析:通过分析事件记录找出的问题。
463 )))
464 |rootcause|MS.duplicate|描述当前问题记录是否为重复问题。
465 |rootcause|MS.critical|描述当前问题记录是否为重大问题。如果是重大问题,在关闭问题前需要提供重大问题报告。
466
467 == ==
468
469 == **4.3.通知与告警** ==
470
471 == **4.3.1.邮件(Notification)** ==
472
473 创建以下通知定义。邮件的格式由“窗体”参数来控制。以下用到的窗体均已在表单设计章节创建。
474
475 ID:PM_Open_1
476
477 [[image:1728804783010-977.png]]
478
479 邮件消息编号等于900的触发条件为:assignee.name in $L.file~~=operator() and assignee.name in $L.file~~=nullsub(assignee.name in $L.file.save, "Empty")
480
481 邮件消息编号等于908的触发条件为:nullsub(assignee.name in $L.file, "")="" and assignment in $L.file~~=nullsub(assignment in $L.file.save, "")
482
483 == ==
484
485 == **4.3.2.短信(SMS)** ==
486
487 服务管理系统发送短信通知的实现设计如下:
488
489 服务管理系统在问题创建后,会向Oracle数据库中的OutBox表写入目标手机号码和短信内容;接下来外部的事件监控平台将OutBox表里的数据同步到XX短信通的数据库。XX短信通平台将把这些数据库记录作为短信发送给接收人。
490
491 触发事件:当用户创建问题时
492
493 接收人类型:分配组、问题处理人
494
495 处理规则:默认只发送邮件,如果优先级为严重和较高,则需要加短信。如果事件已经分配处理者,通知处理者;如果没有处理者,通知将发给整个分配组成员。
496
497 == ==
498
499 == **4.3.3.代码实现** ==
500
501 * ScriptLibrary: MS_SMS_Notification
502
503 说明:给配置组发短信时,检索出各个配置组成员的移动电话号码,将短信依次写入OutBox表。给处理者发短信时,检索出处理者的移动电话号码,然后将短信写入OutBox表,接下来短信的实际发送由诺亚短信通来处理。
504
505 **function** **sendMsgToGroup**(group,msg,module)
506
507 {
508
509 **var** SMSFile=**new** **SCFile**("OutBox");
510
511 **var** AssignmentFile=**new** **SCFile**("assignment");
512
513 **var** rcAssignment=**AssignmentFile.doSelect**("name=\""+group+"\"");
514
515
516 **if** (rcAssignment==RC_SUCCESS)
517
518 {
519
520 **var** OperatorArray=**system.functions.denull**(AssignmentFile.operators);
521
522 **var** i=0;
523
524
525 **for** (i **in** OperatorArray)
526
527 {
528
529 **var** mobile=**getOperatorMobile**(OperatorArray[i]);
530
531
532 SMSFile.ID=**generateOutBoxID**();
533
534 SMSFile.ExpressLevel=2; ~/~/可通过此字段控制发送信息的先后顺序.0为最高优先级;1较高优先级;2普通优先级.
535
536 SMSFile.Sender=
537
538 SMSFile.ReceiverMobileNo=mobile;
539
540 SMSFile.Msg=msg;
541
542 SMSFile.SendTime=**system.functions.tod**();
543
544 SMSFile.CommPort=0; ~/~/当系统有多个设备同时工作的时候,如需指定使用某串口上的设备发送信息,则填写串口号,如不需要指定则填写0,这时系统根据各个设备的忙闲情况自动分配使用。
545
546
547 **var** rcSMSFile=**SMSFile.doInsert**();
548
549
550 **if** (rcSMSFile!=RC_SUCCESS)
551
552 {
553
554 **print**("发给用户"+OperatorArray[i]+"的短信写入数据库失败。");
555
556 }
557
558 }
559
560 }
561
562 }
563
564
565
566 **function** **sendMsgToOperator**(operator,msg,module)
567
568 {
569
570 **var** SMSFile=**new** **SCFile**("OutBox");
571
572
573 SMSFile.ID=**generateOutBoxID**();
574
575 SMSFile.ExpressLevel=2; ~/~/可通过此字段控制发送信息的先后顺序.0为最高优先级;1较高优先级;2普通优先级.
576
577 SMSFile.Sender=
578
579 SMSFile.ReceiverMobileNo=**getOperatorMobile**(operator);
580
581 SMSFile.Msg=msg;
582
583 SMSFile.SendTime=**system.functions.tod**();
584
585 SMSFile.CommPort=0; ~/~/当系统有多个设备同时工作的时候,如需指定使用某串口上的设备发送信息,则填写串口号,如不需要指定则填写0,这时系统根据各个设备的忙闲情况自动分配使用。
586
587
588 **var** rcSMSFile=**SMSFile.doInsert**();
589
590
591 **if** (rcSMSFile!=RC_SUCCESS)
592
593 {
594
595 **print**("发给用户"+OperatorArray[i]+"的短信写入数据库失败。");
596
597 }
598
599 }
600
601
602 **function** **getOperatorMobile**(operator)
603
604 {
605
606 **var** OperatorFile=**new** **SCFile**("operator");
607
608 **var** rcOperator=**OperatorFile.doSelect**("name=\""+operator+"\"");
609
610 **if** (rcOperator==RC_SUCCESS)
611
612 {
613
614 **var** ContactFile=**new** **SCFile**("contacts");
615
616 **var** rcContact=**ContactFile.doSelect**("contact.name=\""+ContactFile.contact_name+"\"");
617
618 **if** (rcContact==RC_SUCCESS)
619
620 {
621
622 **return** ContactFile.portable_phone;
623
624 }
625
626 }
627
628 }
629
630
631 **function** **generateOutBoxID**()
632
633 {
634
635 **return** **system.functions.rtecall**("callrad",rteReturnValue,"getnumb","OutBox", "ID","string");
636
637 }
638
639
640 1. 为activityproblem表上创建触发器FireProblemNotification.aft.add
641
642 **if** (record.type=="已登记")
643
644 {
645
646 **var** ProblemFile=**new** **SCFile**("rootcause");
647
648 **if** (**ProblemFile.doSelect**("id=\""+ record.id+ "\"")==RC_SUCCESS)
649
650 {
651
652 **system.library.MS_EMail_Notification.sendEmail**(ProblemFile,"PM_Open");
653
654 **if** (ProblemFile.priority_code==1 || ProblemFile.priority_code==2)
655
656 {
657
658 **var** priority=(ProblemFile.priority_code==1)?"1 - 严重":"2 - 高";
659
660 **var** msg="新事件"+ProblemFile.id+ " 优先级"+priority+" "+ProblemFile.brief_description+"已登记。";
661
662
663 **if** (**system.functions.nullsub**(ProblemFile.assignee_name,"NULL")!="NULL")
664
665 {
666
667 **system.library.SMSnotification.sendMsgToOperator**(ProblemFile.assignee_name,msg);
668
669 }
670
671 **else**
672
673 {
674
675 **system.library.SMSnotification.sendMsgToGroup**(ProblemFile.assignment,msg);
676
677 }
678
679 }
680
681 }
682
683 }
684
685
686 == **4.4.角色及相关配置文件** ==
687
688 * 打开数据库管理器,进入文件rcenv,搜索出已有的配置文件。
689
690 以problem analyst为模板添加安全配置文件:问题处理专家;
691
692 以problem manager为模板添加安全配置文件:问题经理.
693
694
695 * 打开数据库管理器,进入文件userrole,搜索出已有的突发事件用户角色。
696
697 以problem analyst为模板添加角色“问题处理专家”,并问题配置文件文件为:“问题处理专家”。
698
699 以prolem manager为模板添加角色“问题经理”,并将突发事件配置文件替换为“问题经理”。
700
701
702 = =
703
704 = **5.人力评估** =
705
706 |**技能要求**|**人天数**|**说明**
707 |中级|17|(((
708 工作难点:
709
710 模块裁剪;
711
712 流程定制;
713
714 邮件短信定制。
715 )))
716
717 = =
718
719 = **6.主要测试计划** =
720
721 详见问题管理单元测试计划
722
723
724
深圳市艾拓先锋企业管理咨询有限公司