运维工作内容分类以及简略介绍

本文详细阐述了基础运维检查的工作内容、工作清单、具体检查项,以及从机器管理到安全管理、社区参与等多方面的运维管理策略,强调了定期排查、预案优化和持续改进的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


基础运维检查

工作内容

  1. 理解例行检查列表的内容、检查项的含义以及可能引发的问题。
  2. 按照例行检查表,定期检查系统状态,发现异常立即通报并推进解决。
  3. 定期检查线上服务模块,排除可疑进程,发现问题及时通报。
  4. 理解监控和统计报表的各项含义,每天定时检查报表,发现异常立即通报并推进解决。
  5. 制定服务例行检查要点和方法,部署执行并不断完善,避免检查的盲点。

工作清单参考

  • 在预期的时间内,根据执行手册,保质保量完成产品线既定的例行检查工作。
  • 通过技术方式提高例行检查的效率。
  • 有能力发现潜在问题,制定或者补充合理的检查清单和检查方式,保证基础运维有效进行。
  • 进行问题和追查,并解决可能的隐患。

具体检查项举例

  • 机器性能:idle(CPU空闲)>60%,memfree(内存空闲)>60%,io(磁盘读写)<30MB/s,nic<90MB/s,disk_used(磁盘已用)<80%
  • 模块日志:请求次数<800次/s ,耗时<300ms/次,日志fatal|error|warnning条数
  • 系统日志:查检内核日志是否有异常输出 (I/O error|EXT2-fs error|ERROR on|Medium Error|error recovery|disk error|Illegal block|Out of Memory|dead device|readonly)
  • 数据报表:前一天用户访问量报表,前一天用户提交量报表,各地域访问服务流量情况和耗时情况,非正常用户(网页抓取)访问量情况
  • 备份检查:检查夜间的数据备份是否正常。

排查问题流程

  • 问题通报
  • 跟进问题
  • 定位问题
  • 提出解决方案
  • 执行解决方案
  • 通报问题已解决

整理预案

工作内容

  1. 根据服务稳定性和部署现状,整理服务执行预案。
  2. 将服务分级别,分层次,整理不同重要性的应急预案。
  3. 定期进行预案演练,每季度进行一次大规模预案演练,如有重要级别的服务,每月演练一次。
  4. 记录预案执行情况,包括执行时间、人员、操作耗时、影响服务时间、服务恢复时间。
  5. 根据演练发现的问题,更新预案,添加监控。

优化预案执行

  • 预案执行自动化
  • 降低影响服务的时间

机器管理

  1. 熟悉服务器资源状况,机房分布情况,批量管理,自动化管理。
  2. 合理使用服务器资源,根据不同服务需求,安排不同配置的服务器。
  3. 保证服务器正常运行,对服务器硬件添加或变更来解决资源不足问题。
  4. 熟悉服务器上下架、上下线、搬迁相关流程。

数据备份

  1. 根据服务类型划分数据重要级别,确定备份类型和保留天数。
  2. 编写数据恢复预案,定期演练,更新备份方案。
  3. 根据服务变更及时更新备份方案。

服务管理

  • 管理服务间关联关系
  • 注意线上服务操作事项
  • 及时发现并处理服务问题
  • 记录运维文档,包括问题和服务特殊点

故障处理

  1. 熟悉故障处理方法和预案执行要点。
  2. 对已知故障进行通报并按预案执行。
  3. 及时处理并回复服务报警信息。
  4. 分析报警原因,并推动问题解决。
  5. 发现服务隐患,提出预案改进建议。

技术审核

  1. 编制或审核上线步骤、回滚方案。
  2. 高质量完成上线、操作,包括检查复核和回滚操作。
  3. 通过脚本和自动化改进上线/操作过程。

审核点

  • 评估变更对运维和业务的影响
  • 执行变更
  • 变更回顾
    • 回顾变更执行过程,包括执行方案、预案的有效性。
    • 总结执行过程中的问题和改进措施。
    • 提交变更执行报告,记录执行情况和结果。

安全管理

  1. 实施安全措施,包括网络安全、数据安全和系统安全。
  2. 定期对系统进行漏洞扫描和安全评估,及时修补漏洞。
  3. 加强对权限的管理,确保权限最小化原则。
  4. 建立安全事件响应机制,处理安全事件和威胁。

性能优化

  1. 监控系统性能指标,包括响应时间、吞吐量和并发连接数等。
  2. 分析系统瓶颈,优化系统架构和代码,提高系统性能。
  3. 使用缓存技术、负载均衡和分布式架构,提升系统的稳定性和性能。
  4. 定期进行性能测试和调优,确保系统的高可用性和高性能。

文档管理

  1. 维护运维文档和操作手册,包括系统架构、配置信息和操作流程等。
  2. 更新文档内容,及时记录系统变更和问题处理过程。
  3. 提供培训和知识分享,确保团队成员都能熟练掌握文档内容。

沟通协调

  1. 与开发团队和产品团队保持密切沟通,及时了解系统需求和变更计划。
  2. 及时向上级汇报工作进展和问题情况,寻求支持和协助解决问题。
  3. 协调各方资源,确保问题能够及时解决和落地实施。

持续改进

  1. 定期组织技术交流和经验分享会议,总结工作经验和教训,推动团队学习和成长。
  2. 收集用户反馈和需求,不断改进和优化系统功能和性能。
  3. 定期评估运维流程和工作效率,提出改进建议,持续优化运维管理工作。

资源管理

  1. 管理服务器、网络设备等硬件资源,包括采购、配置和维护。
  2. 进行资源规划和预测,确保资源供应满足业务需求。
  3. 实施资源调度和负载均衡,优化资源利用率和系统性能。

容灾备份

  1. 制定容灾备份策略,包括数据备份、系统镜像和应用程序备份等。
  2. 定期进行容灾演练,测试备份数据和系统恢复能力。
  3. 配置冗余设备和备用网络,提高系统的容错性和可用性。

供应商管理

  1. 选择合适的供应商和合作伙伴,评估其技术能力和服务水平。
  2. 签订合同和协议,明确服务内容和责任义务。
  3. 定期评估供应商绩效,及时调整合作关系,确保服务质量和稳定性。

质量管理

  1. 建立质量管理体系,包括制定标准和流程、执行检查和评估。
  2. 定期进行质量检查和评估,发现问题及时纠正和改进。
  3. 加强团队培训和技能提升,提高工作质量和效率。

风险管理

  1. 分析和评估运维风险,制定风险应对计划和措施。
  2. 加强安全防护和监控,减少安全事件和风险发生的可能性。
  3. 建立应急响应机制,及时应对突发事件和紧急情况。

社区参与

  1. 参与技术社区和行业组织,获取行业动态和最佳实践。
  2. 分享经验和成果,建立良好的行业口碑和社会形象。
  3. 积极参与开源项目和技术标准制定,推动行业发展和进步。

环境管理

  1. 确保运维环境安全和稳定,包括机房设备和网络环境。
  2. 定期进行环境监测和评估,发现问题及时处理和改善。
  3. 实施节能和资源回收措施,减少能源消耗和环境污染。
``` # 读取组信息(新增代码) df_group = pd.read_csv('项目-组.csv') df_group = df_group.drop_duplicates(subset='PMNameMsg', keep='first') # 合并数据(新增代码) merged_data = pd.merge( merged_data, df_group[['PMNameMsg', '组名', '组长']], on='PMNameMsg', how='left' ) # 处理工期列中的"协商"文本(替换为0) merged_data['工期'] = pd.to_numeric(merged_data['工期'].replace('协商', -999), errors='coerce').fillna(-999) # # 处理空值 # merged_data['GongQiHuanBan'] = merged_data['GongQiHuanBan'].fillna(0) # 新增日期列转换 merged_data['HuanBanDate'] = pd.to_datetime(merged_data['HuanBanDate'], errors='coerce') merged_data['HuanBanReDate'] = pd.to_datetime(merged_data['HuanBanReDate'], errors='coerce') # 日期格式转换 merged_data['SADate'] = pd.to_datetime(merged_data['SADate']) merged_data['UpdateTime'] = pd.to_datetime(merged_data['UpdateTime']) holidays = [ # 元旦(不调休) '2025-01-01', # 周三 # 春节(调休2天) '2025-01-28', '2025-01-29', '2025-01-30', '2025-01-31', '2025-02-01', '2025-02-02', '2025-02-03', '2025-02-04', # 1.28(除夕)-2.4 # 清明节(不调休) '2025-04-04', '2025-04-05', '2025-04-06', # 周五-周日 # 劳动节(调休1天) '2025-05-01', '2025-05-02', '2025-05-03', '2025-05-04', '2025-05-05', # 周四-周一 # 端午节(不调休) '2025-05-31', '2025-06-01', '2025-06-02', # 周六-周一 # 中秋节+国庆节(调休2天) '2025-10-01', '2025-10-02', '2025-10-03', '2025-10-04', '2025-10-05', '2025-10-06', '2025-10-07', '2025-10-08' # 周三-下周三 ] holiday_dates = pd.to_datetime(holidays) # 新增调休工作日列表(转换为日期格式) workdays_adjustment = [ '2025-01-26', # 周日补春节 '2025-02-08', # 周六补春节 '2025-04-27', # 周日补劳动节 '2025-09-28', # 周日补国庆 '2025-10-11' # 周六补国庆 ] adjustment_dates = pd.to_datetime(workdays_adjustment) # 转换日期格式 def calculate_workdays(start_date, end_date): # 处理未结案情况 end_date = end_date if pd.notnull(end_date) else pd.Timestamp.now() # 生成日期序列 date_range = pd.date_range(start=start_date.normalize(), end=end_date.normalize(), freq='D') # 修改过滤条件(增加调休判断) workdays = [date for date in date_range if ( (date.weekday() < 5) or # 常规工作日 (date in adjustment_dates) # 调休补班日 ) and (date not in holiday_dates) # 排除法定假日 ] return len(workdays) def compute_huanban_days(row): start = row['HuanBanDate'] if pd.isnull(start): return 0 end = row['HuanBanReDate'] if pd.notnull(row['HuanBanReDate']) else pd.Timestamp.now() if start > end: return 0 return calculate_workdays(start, end) merged_data['GongQiHuanBan'] = merged_data.apply(compute_huanban_days, axis=1) # 计算总工期 merged_data['总工期'] = merged_data['工期'] + merged_data['GongQiHuanBan'] # 计算实际工作日 merged_data['实际工作日'] = merged_data.apply( lambda x: calculate_workdays(x['SADate'], x['UpdateTime']), axis=1 ) # 判断超时 merged_data['是否超时'] = '否' merged_data['超时天数'] = 0 mask = merged_data['实际工作日'] > merged_data['总工期'] merged_data.loc[mask, '是否超时'] = '是' merged_data.loc[mask, '超时天数'] = merged_data['实际工作日'] - merged_data['总工期']```getchaoshi()函数可以返回一个merged_data。merged_data中的StatusName为案件状态,当状态=办结或者=发件时,案件为已完成;等于其他情况,案件为正在办件。组名用来分组。是否超时列,存储了是和否。以程序查询时间开始,往前获取5个工作日,统计SADate在这个时间范围内的案件个数,为本周案件总数以组统计;并根据案件状态,分别统计本周已完成和正在处理的案件数量;根据是否超时,为是的,分组本周统计各组超时案件数量
最新发布
03-21
<think>好的,我需要帮助用户理解他们提供的Python代码,并实现一个名为`getchaoshi()`的函数,该函数返回处理后的`merged_data`数据框。然后,用户需要基于这个数据框进行特定的统计分析,包括本周案件总数、已完成和正在处理的案件数量,以及各组的超时案件数量。以下是我的思考过程: 首先,我需要仔细阅读用户提供的代码,理解每个部分的功能。代码的主要步骤包括读取组信息、合并数据、处理工期列、日期转换、节假日处理、计算工作日、判断超时等。这些步骤都是为了准备数据,以便后续分析。 接下来,用户提到`getchaoshi()`函数应该返回`merged_data`。从代码结构来看,现有的代码可能是在一个函数内部,但用户没有明确显示函数定义。因此,我需要假设这些代码被封装在`getchaoshi()`函数中,并且最后返回处理后的`merged_data`。 然后,用户的需求是进行统计分析。需要统计本周的案件总数,以组名分组,同时根据案件状态(已完成或正在处理)和是否超时来分别计数。具体来说: 1. **确定时间范围**:以程序查询时间(假设为当前时间)往前推5个工作日。这里需要注意的是,工作日计算需要排除节假日和周末,但可能要考虑调休。用户提供的`calculate_workdays`函数已经处理了这一点,但需要反向计算开始日期,使得从当前时间往回推5个工作日的日期作为起始点。 2. **筛选本周案件**:`SADate`必须在这个时间范围内。需要先确定这个时间范围的起始日期和结束日期。由于是往前推5个工作日,结束日期是当前日期,而起始日期需要计算。 3. **分组统计**: - 按组名分组。 - 统计总案件数。 - 根据`StatusName`(办结或发件为已完成,其他为正在处理)分别计数。 - 统计超时案件数(是否超时列为“是”)。 可能的挑战在于正确计算5个工作日的起始日期。由于现有的`calculate_workdays`函数是从开始日期到结束日期计算工作日数,但这里需要反向操作:给定结束日期和所需的工作日数,找到起始日期。这可能需要编写一个辅助函数来逆推起始日期。 例如,从当前日期开始,逐天往前检查,直到累计5个有效工作日。这需要考虑节假日和调休的情况,确保准确跳过非工作日。 另外,需要注意时区问题,所有日期应转换为相同的时区,并确保`pd.Timestamp.now()`与数据中的日期一致。 在实现过程中,还需要处理可能存在的空值或无效日期,比如`SADate`是否为NaT,需要排除这些情况。 最后,将统计结果按组名汇总,可能需要使用Pandas的`groupby`和聚合函数,结合条件筛选来得到各组的计数。 总结步骤: 1. 定义`getchaoshi()`函数,包含现有代码并返回`merged_data`。 2. 计算5个工作日的起始日期。 3. 筛选`SADate`在该时间范围内的数据。 4. 按组名分组,进行各项统计。 5. 输出结果,可能需要返回一个数据框或字典。 需要验证的部分包括:是否正确计算了5个工作日,是否准确处理了节假日和调休,分组统计是否正确,以及边界条件(如无数据时)的处理。</think>以下是分步解决方案: 一、函数封装与数据准备 ```python def getchaoshi(): # 原有数据处理代码(此处简略呈现核心逻辑) # ...读取csv、合并数据、日期处理等代码... # 返回处理后的数据集 return merged_data ``` 二、时间范围计算函数(关键步骤) ```python def get_5_workdays_back(end_date=None): """计算从结束日期倒推5个工作日的起始日期""" end_date = pd.Timestamp.now().normalize() if end_date is None else end_date count = 0 current_date = end_date # 复用原有节假日配置 holiday_dates = pd.to_datetime([...]) # 原有节假日列表 adjustment_dates = pd.to_datetime([...]) # 原有调休列表 while count < 5: current_date -= pd.Timedelta(days=1) # 判断是否为有效工作日 is_workday = ( (current_date.weekday() < 5 or current_date in adjustment_dates) and current_date not in holiday_dates ) if is_workday: count += 1 return current_date, end_date ``` 三、统计逻辑实现 ```python # 获取处理后的数据 df = getchaoshi() # 计算时间范围 start_date, end_date = get_5_workdays_back() date_mask = (df['SADate'] >= start_date) & (df['SADate'] <= end_date) weekly_cases = df[date_mask].copy() # 添加状态分类列 weekly_cases['状态分类'] = weekly_cases['StatusName'].apply( lambda x: '已完成' if x in ['办结', '发件'] else '正在处理' ) # 分组统计 result = weekly_cases.groupby('组名').agg( 总案件数=('StatusName', 'count'), 已完成=('状态分类', lambda x: (x == '已完成').sum()), 处理中=('状态分类', lambda x: (x == '正在处理').sum()), 超时案件数=('是否超时', lambda x: (x == '是').sum()) ).reset_index() # 结果展示样例 print(result.to_markdown(index=False)) ``` 四、输出结果示例: | 组名 | 总案件数 | 已完成 | 处理中 | 超时案件数 | |--------|----------|--------|--------|------------| | 研发组 | 12 | 8 | 4 | 2 | | 运维组 | 9 | 5 | 4 | 1 | 五、代码特性说明: 1. 节假日智能处理:复用原有节假日配置,准确识别调休 2. 动态时间计算:`get_5_workdays_back()`可自动适应不同查询时间 3. 高效分组统计:利用Pandas向量化操作提升性能 4. 状态智能分类:通过lambda函数实现灵活状态判断 六、验证建议: 1. 检查`HuanBanDate`与`SADate`的时区一致性 2. 验证节假日列表是否完整覆盖业务周期 3. 测试边缘情况:如查询时间在节假日当天时是否正常回溯 4. 检查空值处理:确保关键字段无缺失值 该方案通过复用原有数据清洗逻辑,结合动态工作日计算,能准确反映各组的实时工作状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XMYX-0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值