System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及it运维,尤其是一种基于ipmi-sel命令、二分查找和迭代算法获取ipmi系统事件日志最新数据位置的方法。
技术介绍
1、it运维人员在运维过程中需要对主机的硬件状态、运行状况和网络连接等进行监控,通过分析ipmi带外主机系统事件日志数据及时知悉主机的运行状况,预知故障趋势,快速定位故障原因并解决问题,以便进行系统优化和预防性维护,保障应用业务正常运行。
2、传统在ipmi带外主机系统事件日志监控上,通常采用人工定期登录到带外管理界面查看各个带外设备最新的告警日志,分析定位问题,监控过程主要依靠人工来完成,因此监控效率较低。
3、后来逐步有了通过命令和脚本自动获取ipmi带外主机系统日志远程监控,系统通过impi-sel或impi-sel--tail=n命令从存储ipmi带外主机系统日志位置处一次性拿回全部或获取到大致最新n条数据,但由于运维监控需具有实时性,拿取历史日志并无用处且会造成采集速度慢等性能问题,同时因为ipmi带外主机自身存储日志特性,当日志存储量超过最大存储容量时,带外告警日志会自动删除历史告警日志,获取最新数据的结果并不准确。
技术实现思路
1、针对现有技术的不足,本专利技术提供一种获取ipmi系统事件日志最新数据位置的方法,本专利技术能够减少因历史无用日志或非实时告警日志造成的性能问题,并借助迭代算法获取、存储采集日起所有ipmi系统事件日志,解决了当ipmi系统事件日志达到最大容量时,新的事件将覆盖最旧的事件,导致数据缺
2、本专利技术的技术方案为:一种获取ipmi系统事件日志最新数据位置的方法,包括以下步骤:
3、s1)、确定ipmi带外主机本地存储容量最大边界y;
4、s2)、通过循环二分查找算法计算偏移值offset并获取最新ipmi系统事件日志id;
5、s3)、判断偏移值offset所属范围,根据偏移值offset所属范围采用相应的方式获取存储告警日志;设定每次采集周期最多获取存储x条日志,且y>x,则偏移值offset所属范围分别为:
6、1)offset<y-x;
7、2)y-x<=offset<y;
8、3)offset=y;
9、s4)、若offset<y-x,则从offset位置向后按采集周期每次获取存储x条告警日志,直至获取ipmi系统事件日志数不足x结束;
10、s5)、若y-x<=offset<y时,先获取offset到y的告警日志,再从y向前按采集周期每次获取x条告警日志直至最新日志id=上一次采集日志id结束;
11、s6)、若offset=y,从y向前按采集周期每次获取x条告警日志直至最新日志id=上一次采集日志id结束。
12、作为优选的,步骤s1)中,存储的ipmi系统事件日志id从1递增,当ipmi系统事件日志达到最大容量边界y时,新的日志将覆盖最旧的日志,同时ipmi系统事件日志id变为被覆盖日志id。
13、作为优选的,步骤s2)中,初次采集因避免获取历史事件日志故通过循环二分算法确定结果位置是否有日志数据来判断最新告警日志的位置,当确定最新数据位置,则认为该位置的算法结果为偏移值offset,并记录最新事件日志id。
14、作为优选的,步骤s2)中,通过所述的循环二分查找算法计算偏移值offset的具体步骤为:
15、步骤1:因存储容量为1-y,故先判断1和y位置是否有告警日志数据;
16、1)、位置1和y均有数据,设备存储容量已达到最大值则偏移量offset=y
17、2)、位置1无数据时,设备未产生告警日志,则偏移量=1
18、3)、位置1有数据,位置y处无数据时,需通过步骤2计算偏移量offset;
19、步骤2:设定存储开始位为startid、结束位为endid、中间位为midid=(startid+endid)/2,当startid<endid时,判断中间位置midid是否有数据,若有,则starid值变为midid值,查找范围变为midid-endid;
20、若无,则endid值变为midid值,查找范围变为startid-endid,根据以上规则循环直至startid=endid,该位置即为偏移量位置。
21、作为优选的,步骤s4)中,若offset<y-x时,则从offset位置向后获取x条告警日志,并判断获取告警日志数是否小于x;
22、若否,则存储获取的告警日志更新偏移值offset=offset+x,循环判断新的偏移值offset的所属范围;
23、若是,则结束循环存储获取的告警日志、记录告警日志最后一次获取的最新id和最新的偏移值offset。
24、作为优选的,步骤s5)中,当offset处于y-x和y之间时,先获取offset到y的告警日志,更新offset=y,再从y向前获取x条告警日志和最新事件日志id,判断当前最新日志id是否等于上一次采集日志id;
25、若否,则存储获取的告警日志更新偏移值offset=offset1-x,循环判断新的偏移值offset的所属范围;
26、若是,则结束循环存储获取的告警日志,记录告警日志最后一次获取的最新id和最新的偏移值offset。
27、作为优选的,步骤s6)中,若offset=y时,从y向前获取x条告警日志和最新事件日志id,判断当前最新日志id是否等于上一次采集日志id;
28、若否,则存储获取的告警日志更新偏移值offset=offset1-x,循环判断新的偏移值offset的所属范围;
29、若是,则结束循环存储获取的告警日志,记录告警日志最后一次获取的最新id和最新的偏移值offset。
30、本专利技术的有益效果为:
31、1、本专利技术减少因历史无用日志或非实时告警日志造成的性能问题,并借助迭代算法获取、存储采集日起所有ipmi系统事件日志,解决了当ipmi系统事件日志达到最大容量时,新的事件将覆盖最旧的事件,导致数据缺失的问题,保证了数据完整性。
本文档来自技高网...【技术保护点】
1.一种获取IPMI系统事件日志最新数据位置的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种获取IPMI系统事件日志最新数据位置的方法,其特征在于:步骤S1)中,存储的IPMI系统事件日志id从1递增,当IPMI系统事件日志达到最大容量边界Y时,新的日志将覆盖最旧的日志,同时IPMI系统事件日志id变为被覆盖日志id。
3.根据权利要求1所述的一种获取IPMI系统事件日志最新数据位置的方法,其特征在于:步骤S2)中,初次采集因避免获取历史事件日志故通过循环二分算法确定结果位置是否有日志数据来判断最新告警日志的位置,当确定最新数据位置,则认为该位置的算法结果为偏移值offset,并记录最新事件日志ID。
4.根据权利要求1所述的一种获取IPMI系统事件日志最新数据位置的方法,其特征在于:步骤S2)中,通过所述的循环二分查找算法计算偏移值offset的具体步骤为:
5.根据权利要求4所述的一种获取IPMI系统事件日志最新数据位置的方法,其特征在于:步骤1中,若位置1和Y均有数据,设备存储容量已达到最大值,则偏移量offs
6.根据权利要求4所述的一种获取IPMI系统事件日志最新数据位置的方法,其特征在于:步骤1中,若位置1无数据时,设备未产生告警日志,则偏移量=1。
7.根据权利要求1所述的一种获取IPMI系统事件日志最新数据位置的方法,其特征在于:步骤S4)中,若offset<Y-X时,则从offset位置向后获取X条告警日志,并判断获取告警日志数是否小于X;
8.根据权利要求1所述的一种获取IPMI系统事件日志最新数据位置的方法,其特征在于:步骤S5)中,当offset处于Y-X和Y之间时,先获取offset到Y的告警日志,更新offset=Y,再从Y向前获取X条告警日志和最新事件日志ID,判断当前最新日志id是否等于上一次采集日志id;
9.根据权利要求1所述的一种获取IPMI系统事件日志最新数据位置的方法,其特征在于:步骤S6)中,若offset=Y时,从Y向前获取X条告警日志和最新事件日志ID,判断当前最新日志id是否等于上一次采集日志id;
...【技术特征摘要】
1.一种获取ipmi系统事件日志最新数据位置的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种获取ipmi系统事件日志最新数据位置的方法,其特征在于:步骤s1)中,存储的ipmi系统事件日志id从1递增,当ipmi系统事件日志达到最大容量边界y时,新的日志将覆盖最旧的日志,同时ipmi系统事件日志id变为被覆盖日志id。
3.根据权利要求1所述的一种获取ipmi系统事件日志最新数据位置的方法,其特征在于:步骤s2)中,初次采集因避免获取历史事件日志故通过循环二分算法确定结果位置是否有日志数据来判断最新告警日志的位置,当确定最新数据位置,则认为该位置的算法结果为偏移值offset,并记录最新事件日志id。
4.根据权利要求1所述的一种获取ipmi系统事件日志最新数据位置的方法,其特征在于:步骤s2)中,通过所述的循环二分查找算法计算偏移值offset的具体步骤为:
5.根据权利要求4所述的一种获取ipmi系统事件日志最新数据位置的方法,其特征在于:步骤1中,若位置1和y均有数据,设...
【专利技术属性】
技术研发人员:陈思婉,
申请(专利权)人:广州市申迪计算机系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。