一文了解区块链运维监控平台
区块链运维监控平台的建立旨在将各个地区不同节点通过监控的方式将数据进行可视化展现,便于为运维人员提供各节点基础监控和业务监控服务,并通过监控告警将节点故障的发生到响应处理的过程时间最小化,提高运维人员对节点的运维管理效率。
区块链运维监控平台提醒大家注意!在币圈和链圈也存在诈骗的情况:现在区块链方面的项目太火了,国内外各类传销、资金盘都打着“金融创新”“区块链”的旗号,通过发行所谓“虚拟货币”“虚拟资产”“数字资产”等方式吸收资金,侵害公众合法权益。此类活动并非真正基于区块链技术,而是炒作区块链概念行非法集资、传销、诈骗之实。请大家务必要警惕!还要警惕各类交易所小平台,必须选择全球知名的品牌。
监控,是互联网工业链上非常重要的一环,监控的目的就是防患于未然以及事后复盘。
区块链技术的核心优势本就是去中心化、集体维护、时序数据等,搭建区块链运维监控平台的主要目的是为了实时监控自有节点健康状态,及时响应节点故障,保障节点的持续稳定运行,以减少因节点故障而造成的经济损失。
区块链运维监控平台提供了方便的批量部署主机监控的方式,可以自动化安装Zabbix-agent,大大缩减了部署的时间,通过自定义监控项,完成对应用的监控的不同的数据的采集,利用Grafana友好的显示效果图,展示节点主机的CPU、内存、网络、磁盘、以及业务相关的监控信息,通过ElasticSearch来存储历史数据,延长了历史数据的保留时长。
区块链运维监控平台是通过Ansible、Zabbix、Grafana、MySQL、ElasticSearch来实现:
基于Ansible编写Role角色,来实现批量部署和自动化,自动区分Centos和Ubuntu系统,并安装Zabbix-agent、添加磁盘监控脚本。
通过Ansible的Playbook来分发不同业务上的应用的脚本,通过脚本来获取监控数据。
通过编写Zabbix的自定义模板来获取数据并设置告警,将主机、监控项、触发器等信息存储在MySQL,将历史数据存储在ElasticSearch。
利用Grafana调用Zabbix-api来获取主机数据,并展示不同的监控数据。
区块链运维监控平台基础架构图,如图1所示。
图1:区块链运维监控平台基础架构图
现区块链运维监控平台,监控约100个节点,MySQL存放了约4000可用监控项,1500个触发项。如有需求的话,Zabbix每秒钟可处理上万条数据。ElasticSearch中储存的历史数据,如不考虑成本问题的话,数据可长期存放。
作为一套完整的区块链运维监控平台,不仅仅是对主机的基础项的监控,还有区块链节点相关业务的监控项。区块链运维监控平台节点监控项分为两种:一种是节点基础监控项,一种是区块链业务监控项。通过对这些监控项使得运维人员可以更加直观的了解各节点状态,也方便了开发和测试人员对项目的测试和调优。
3.1 区块链基础监控项
首先关于监控平台的节点主机基础监控项。关于这些节点主机基础监控项运维人员需要知道:节点主机的CPU是如何工作的其使用率、需要占用多少的Memory、磁盘的使用比例、网络流量的消耗、磁盘的IOPS、每秒上下文切换。确认了这些节点主机基础的监控项后还需要明确对其报警的阈值是多少后,需要设定达到了这个值就通过邮件或者电话的报警方式通知运维人员,引起注意。
具体区块链基础监控项展示图,如图2所示。
图2:区块链基础监控项展示图
3.2 区块链业务监控项
除了节点主机的基础监控之外,还有节点业务相关的监控项。比如:节点主机Peers的连接数、节点主机的块高同步数、节点主机RPC端口的响应时间、PlatON进程的状态、单个节点在验证节点中的排位数、句柄数、区块链交易Pending数量信息、NTP服务状态;周边应用等状态信息。
具体区块链业务监控项展示图,如图3所示。
图3:区块链业务监控项展示图
根据需求将各个节点的某些单个指标整合集合至各自的单个节点指标版块,这样便于对比查看状态,这样对用户的观看更加友好,不用点进节点监控项里一个一个查看。
比如像节点的块高趋势、节点的排名、节点的进程状态这些监控项。在同一版块展示能够实时、直观的了解和对比这些指标。
举例对于区块链块高的集成单个指标版块展示图,如图4所示。
图4:区块链单个指标版块展示图
区块链运维监控平台告警方式分为邮件告警和电话告警:
一般告警--只通过邮件告警,将告警邮件发送到告警邮箱。
严重告警--将告警邮件发送到告警邮箱,并告警到二级运维人员邮箱,通过电话告警通知值班人员,当电话告警并没有引起值班人员注意时,则电话通知备岗值班人员。
具体区块链运维监控平台告警设计图,如图5所示。
图5:区块链运维监控平台告警设计图
区块链运维监控平台,其监控数据重要性不言而喻,提供安全可靠的数据保障是运维部门的职责所在。
如果区块链运维监控平台数据库只有一台服务器那么很容易就产生单点故障的问题,比如说这台服务器访问压力过大而没有响应或者崩溃,那么服务就不可用,再比如这台服务器出现意外情况,导致整个数据库的数据全部丢失,就会造成重大的安全事故。
为了避免服务的不可用性以及保障数据的安全可靠性,至少需要部署两台或两台以上的服务器来存储数据库数据,也就是需要将数据复制多份部署在多台不同的服务器上,即使有一台服务器出现故障了,其他服务器依然可以继续提供服务。
区块链运维监控平台通过MySQL主从、ElasticSearch集群的方式,来实现了区块链运维监控平台的高可用。大大提高了区块链运维监控平台的稳定性。