转载自博客:
https://www.modb.pro/db/438202
摘要】国家战略、大势所趋,信创设备、软件将越来越多,其监控是全新课题,本文探讨、分享了相关方案设计及经验,供大家参考。
【作者】Jason
1、背景
当前趋势下,商业银行将逐步替代国外设备,采用信创服务器、信创操作系统、信创中间件、信创数据库进行替代,而信创服务器、信创操作系统、信创中间件、信创数据库的监控又是全新课题,本文将讨论如何将这些操作系统、数据库、中间件纳入监控。
2、需求分析
2021年10 月20 日,人民银行办公厅、中央网信办秘书局、工业和信息化部办公厅、银保监会办公厅、证监会办公厅联合发布《关于规范金融业开源技术应用与发展的意见》。《意见》指出:“探索自主开源生态,重点在操作系统、数据库、中间件等基础软件领域和云计算、大数据、人工智能、区块链等新兴技术领域加快生态建设,利用开源模式加速推动信息技术创新发展。
本次建设的服务器有海光、鲲鹏两种类型,海光使用的芯片架构为X86架构,鲲鹏使用的架构为ARM架构,操作系统均为银河麒麟V10,数据库使用了达梦数据库,Web中间件使用的是TongWeb,满足监管要求和保障系统安全稳定运行。
3、解决方案
3.1 总体思路及架构设计
1、目前我行大部分设备、软件、数据库均采用 IBM Tivoli 进行监控,但是信创设备、数据库IBM Tivoli不支持,我们将采用 Prometheus 作为信创设备监控系统,通过 AlertManager、SNMP_notifier 通过 SNMP Trap 协议跟集中监控平台实现告警集成。
2、操作系统采用 OS exporter 进行数据采集。
3、TongWeb 采用 MID exporter 进行数据采集。
4、达梦数据库采用 DB exporter 进行数据采集。
3.2 操作系统监控设计与实现
1、监控指标
CPU、内存、磁盘使用率、分区使用率、系统平均负载、网络流量、磁盘读写速率、温度
2、方案
1) 采用 Prometheus expoter 作为采集代理
AMD 架构使用的采集代理为 node_exporter-1.3.1.linux-amd64
ARM 架构使用的采集代理为 node_exporter-1.3.1.linux-arm64
2) 操作系统监控数据展现如下:
3) 告警rules
4) 跟集中监控平台集成
通过 alertmanager 与集中监控平台集成,alertmanager.yml 需要修改以下配置
alertmanager.yml
receivers:
– name: 'snmp_notifier'
webhook_configs:
– url: 'http://x.x.x.x:9464/alerts'
send_resolved: true
同时运行snmp_notifier,运行参数如下
./snmp_notifier –web.listen-address=:9464 –alert.severity-label=severity –alert.severities=5,4,3,2,1 –alert.default-severity=5 –snmp.destination=X.X.X.:162 –snmp.retries=3 –snmp.trap-oid-label=oid –snmp.trap-default-oid=1.3.6.1.4.1.1664.2 –snmp.trap-description-template=description-template.tpl –log.level=info –log.format=logger:stderr
3.3 数据库监控设计与实现
1、达梦数据库监控指标包括状态、内存使用情况、表空间、TPS、会话信息、DML信息等
A、数据库状态
select * from v$dsc_ep_info;
B、数据库内存使用情况
(select sum(n_pages * (page_size/1024))/1024 from v$bufferpool)+(select sum(total_size)/1024/1024 from v$mem_pool)||'MB' as TOTAL_SIZE,
((select sum(n_pages * (page_size/1024))/1024 from v$bufferpool)+(selectsum(total_size)/1024/1024 from v$mem_pool))/512000*100||'%' as USED_SIZE
from dual;
C、表空间
D、TPS (每秒事务数)
E、会话信息(active,inactive,maxsession,idle session)
F、DML 信息(select,insert,update,delete)
G、DB load信息(db time cpu time,io 响应时间)
2、通过定制开发达梦数据库的exporter进行监控
1) 定制开发达梦的exporter
2) 达梦数据库监控数据展现如下:
3) 告警rule
3、跟现有的集中监控平台集成
3.4 中间件监控设计与实现
1、监控指标
jvm_memory_pool_bytes_max{ pool=”Code Cache”}、jvm_memory_pool_bytes_max{ pool=”Compressed Class Space”}、jvm_memory_pool_bytes_max{ pool=”Metaspace”}、jvm_memory_pool_bytes_max{ pool=”PS Eden Space”}、jvm_memory_pool_bytes_max{ pool=”PS Old Gen”}、jvm_memory_pool_bytes_max{ pool=”PS Survivor Space”}、jvm_buffer_pool_used_bytes{ pool=”direct”} 、jvm_buffer_pool_used_bytes{ pool=”mapped”}、jvm_gc_collection_seconds_count{gc=”PS MarkSweep”}、jvm_gc_collection_seconds_count{gc=”PS Scavenge”}、jvm_gc_collection_seconds_sum{gc=”PS MarkSweep”} 、jvm_gc_collection_seconds_sum{gc=”PS Scavenge”}、进程、端口、日志、URL监控
2、方案
1) 采集
JVM监控采用JVM的exporter,进程、端口、日志、URL监控可以通过Python定制开发实现。
2) 展示
3) 告警rules编写
4) 跟现有的集中监控平台集成,修改alertmanager配置如下
4、总结及展望
信创的操作系统和中间件可以使用社区开源的exporter采集数据,在实施过程中比较顺利,但是达梦数据库的exporter需要自主研发,经过与我们的DBA以及厂商专家沟通,最后确定指标对应的SQL,起初因某些原因参数或者公式不正确,数据也不准确,经过多次沟通、测试、完善后最终展示了准确的数据。另外,达梦数据库V8不是很成熟,RAC模式下某个指标的两个实例采集的数据不一样,经过我们DBA和厂商的优化,终于采集到准确的数据,目前运行正常。
此外监控告警如何与现有的集中监控平台集成也是一个棘手问题,经过研究、分析发现alert manager提供SNMP_notifier组件,通过SNMP Trap协议与现有的集中监控平台集成。
信创是国家战略、大势所趋,信创设备、软件将越来越多,监控也是需要持续关注的课题,我们将持续学习、研究信创设备、软件,不断纳入新的信创设备、软件、持续优化监控,实现监控无盲区,保障生产安全、稳定运行。