• 发文
  • 评论
  • 微博
  • 空间
  • 微信

构建自动化运维平台:PAS工具和方法

EAWorld 2023-03-08 11:45 发文

目    录

01 PAS运维基本介绍‍‍0

022PAS自动化运维的工具和方法‍‍‍‍‍‍

03自动化运维实施总结

尽管微服务平台逐渐成为互联网技术发展的主流,很多企业也已经转向微服务来构建自己的业务系统,但在金融、电信、政企、军工、制造等大多数大中型企事业单位中,以传统的应用服务器中间件支撑的IT信息系统,仍然维持着技术的主流,支撑着大部分业务系统。

随着业务的发展,业务量的扩大,单一的应用服务器单节点无法满足企业高并发、高可用的业务需求,大规模的中间件集群环境、多节点、多实例成为企业信息化技术架构的必然选择。而在其中,针对集群、多节点实例的环境的系统运维,在信息系统运维中占据了非常重要的地位。

PAS(Primeton Application Server),是普元应用服务器中间件的简称,是一款标准、安全、自主、高可用的面向未来架构的企业级应用服务器,完全符合Jakarta EE 国际标准规范,支持Web应用的开发、部署、监控、管理等能力,在高可用性、集群、综合监控、微服务、易用性等方面已成功经受重型生产环境的检验。

PAS支持标准Jakarta EE应用架构、SpringBoot微服务架构、云原生架构。满足信创要求,可以无缝替换国外商业中间件产品,以及开源中间件产品,如JBoss/Wildfly、Tomcat、Jetty等。广泛应用于政府、司法、运营商、金融、军工、教育、制造等各行业。

本文以PAS运维为出发点,重点介绍了PAS在自动化运维方面的工具和方法,并提出由此带来的成果和优势。

01

PAS运维基本介绍

PAS运维的主要范畴

PAS运维主要是PAS系统和应用的上线、上线后的系统管理、配置、监控等的运维工作。一般包括安装PAS软件,创建集群、节点、集群实例、独立实例、部署应用、修改配置、创建数据源等资源、实时监控系统运行状态等一系列运维操作。

PAS运维的两种方法PAS运维分两种方式,手工运维和自动化运维。    

传统运维方式的是手工运维,就是PAS系统安装后,通过启动域管理服务器(DAS,Domain Application Server),登录管理控制台,进行节点的管理、集群的管理和Server运行实例的管理,对数据源连接池、线程池、JMS等资源、JVM参数、日志级别、端口等配置进行管理,并可以打开审计开关,监控开关,通过审计日志和监控页面,对系统运行的实时情况进行审计和监控。

自动化运维就是利用PAS的提供的自动化运维工具和接口等,集成到用户或第三方建立的自动化运维平台上,通过运维平台程序执行PAS命令、或调用PAS的接口,从而实现对节点、集群、Server运行实例的自动化创建和销毁,也可以进行资源的配置,并可以实时监控系统运行状态,并根据系统运行的状态进行及时预警,保证系统运行的平稳,及时发现并预警系统的突发问题,让运维人员即时得到通知并即时处理系统故障或问题。

自动化运维的优势‍‍

虽然大家一开始都习惯于手工运维,但手工运维上线时间长、费时费力、难以实时监控系统的运行状态,无法及时对系统进行预警和告警,运维成本也比较高。

而自动化运维可以由人工点击按钮触发或程序自动触发运维程序的运行,而无需人工登录控制台进行运维操作,可以达到降低运维成本、提升运维效率的效果,提高运维监控的实时性,提高系统故障处理效率,增强系统的高可用性和可靠性。虽然搭建自动化运维的过程需要耗费一些精力和成本,但这个是一劳永逸的过程,一旦实施后,后续运维成本会极大降低,并持续产生良好的效益。

02

PAS自动化运维的工具和方法

PAS自动化运维的三种工具

PAS提供了三种自动化的运维工具,分别是命令行脚本工具、REST接口工具、JMX接口工具。命令行脚本工具,主要提供了对PAS系统进行的管理功能,而REST接口工具和JMX接口工具,更偏向提供对PAS实例(JVM实例)进行实时监控的功能。
PAS自动化运维方法

PAS要实施自动化运维,需要建立一个用户或第三方的运维平台,集成PAS的自动化运维工具。目前,随着IT信息技术发展,自动化运维技术日趋成熟,许多大中型企事业单位都有了自己的自动化运维平台,这为PAS的自动化运维提供了基础平台。

PAS自动化运维方法就是,将PAS提供的自动化运维的工具,如命令行脚本工具、REST接口、JMX接口,集成到运维平台中,供运维平台使用。运维平台要通过程序对PAS命令,PAS的接口进行调用,从而对PAS系统的域、集群、节点、实例、应用、配置、监控项等的自动化管控,从而摆脱繁琐的手工运维方式,从而达到高效运维的效果。

运维平台调用命令行,可以使用Runtime.getRuntime().exec(command)方法进行调用。REST接口是HTTP协议调用接口,用户可以使用httpClient、netty等类似开源软件进行调用。而JMX接口则是JDK提供的标准基于JMX over RMI协议的MBean的调用方式,通过JMX客户端API,先获取MBeanServerConnection连接,然后通过ObjectName查找MBean,然后调用MBean的方法。命令行工具

PAS提供了强大的命令行执行工具,asadmin(windows为pas6insadmin.bat, Linux为 pas6/bin/asadmin)命令工具。实际运维过程中,linux版本的命令工具功能更为完善。

asadmin命令通过输入不同的参数,可以进行非常广泛的PAS系统的基本运维操作(具体的命令可以参考PAS命令行参考手册,或asadmin --help命令帮助)。

最常用的功能如下:

1.  启动、停止和重启DAS管理控制台,其他的asadmin的管理命令要基于DAS启动后才可以运行。

2.  新建和删除域。一个域包含了PAS系统的多个子系统或模块,比如节点、集群、实例、应用、资源等。

3.  节点的创建、销毁和查询,节点包含本地节点和远程节点。节点是一个虚拟概念,节点上可以包含多个服务器实例,一个主机可以包含多个节点。

4.  应用服务器实例的创建和删除、启动和停止。应用服务器实例运行多个WAR/EAR应用的JVM进程。实例分为本地实例和远程实例。

5.  集群的创建和删除、集群的启动、停止。集群也是一个虚拟的概念,一个集群可以包含多个节点的相同实例,使用集群是将多个节点的含相同应用的实例当成一个实例来使用,从而保证实例和应用的高可用性,如失效转移等。集群的启停会启停集群内的所有实例。还可以创建、删除、启动、停止集群实例。

6.  应用的部署和卸载、重启部署。

7.  创建、删除JDBC连接池、线程池、监听器程序(每个监听器程序对应一个监听端口,是http/https的访问端口)等资源。

8.  修改配置信息,如新建和删除JVM的选项,修改日志级别,新建和删除审计模块,启用和禁用监控开关,启动和禁用安全管理、添加和删除系统属性等。

自动化运维平台,通过调用命令工具,在结合对系统资源的实施监控,能够实现对PAS系统的横向扩展和动态伸缩,在系统峰值压力时候增加实例,提高系统的高可用性,同时在系统低峰值压力时候减少实例,节约系统资源。

REST接口工具PAS提供了REST接口,可以对PAS系统的实例的运行状态进行实时监控。REST的接口也可以进行一些管理工作,但更侧重对系统的监控。

REST接口可以通过类似http://127.0.0.1:6888/monitoring/domain/server/查看(要先打开监控开关才可以),管理的REST接口可以通过http://127.0.0.1:6888/management/domain查看。

对于独立实例,需要将URL的IP换成实例的真实IP地址,端口换成实例实际的http管理端口。下图是监控REST接口的页面:

REST接口调用方式是http请求后面加上.json,比如查看CPU使用率,可以用http://127.0.0.1:6888/monitoring/domain/server/jvm/operating-system/cpu-usage.json  进行调用,返回json数据。

自动化运维平台可以通过每个PAS实例的管理端口,调用实例提供的REST服务,进行对实例的运行状态的监控(前提是监控信息相关的PAS监控开关要打开)。

PAS提供的监控服务可以对JVM、HTTP线程池、实例状态、JDBC、应用程序的监控。

REST接口监控的常用内容主要有实例的运行状态(是否启动)、实例运行时长、内存使用状况、CPU使用率、JVM的线程池使用情况、JVM的所有线程信息、操作系统基本情况(操作系统名称和版本、架构、核数等)、类加载情况、应用程序的信息(最长请求时间、会话数、请求数等)等。

JMX接口工具JMX是一个通用的为应用植入管理功能的框架,应用服务器基本上都实现了JMX的框架并提供管理服务。

PAS也提供了JMX接口,让运维平台对远程实例进行基于JMX协议的管理和监控。要查看JMX发布的可供调用的MBean信息,可以使用java原生的JConsole程序,连接PAS实例。

打开JConsole,输入类似 “service:jmx:rmi:///jndi/rmi://127.0.0.1:8686/jmxrmi”的URL,然后输入管理控制台的用户和密码,就可以连接到远程实例。

运维平台通过标准的JMX客户端(需要传入JMX URL和JMX安全的认证用户和密码),和PAS的JMX Connection建立起连接,从而调用PAS实例中的内置MBean Server的MBean的方法,来实现对PAS实例的管控,其重点是监控功能。

JMX接口提供了大量的方法,可用于对PAS实例进行实时监控,主要有线程监控(所有线程信息查询、当前活动线程数、已创建线程总数、线程峰值数等)、线程池监控(请求处理线程数、最大线程数、线程池执行任务总数)、会话监控(活动会话数、钝化会话数、过期会话数、拒绝会话数、创建会话总数等)、Servlet监控(每个应用加载的servlet总数,servlet处理总时间,以及每个servlet处理总数、平均响应时间、最大响应时间等)、响应监控(不同类别状态码的响应数)、JSP监控(jsp调用触发错误数、已加载jsp总数,重新加载jsp总数)、类加载数量监控、垃圾回收情况监控、内存使用情况监控、CPU使用情况监控、JMS队列和主题监控、Web请求信息监控(平均请求处理时间、最大响应时间、错误响应总数等)、事务监控(当前活动事务数、活动事务ID、已提交事务数、已回归事务数等)等,并可以获取内存dump和线程dump,供系统峰值告警时分析使用。

通过以上三种工具,结合运维平台自动化程序,可以对PAS系统进行远程管理、监控,当然,如果再结合Filebeat/logstash、ElasticSearch和Kibana,可以对大型分布式集群环境,构建日志实时收集和分析框架,做到更完善的系统监控是实时预警,从而构建更完美的偏智能化的运维平台。

03‍

自动化运维实施总结

通过实施自动化运维,可以达到下面效果:

1、提升系统的运维效率:程序自动化执行可以极大地提高系统的运维效率

2、降低系统的运维成本:自动化运维可以明显降低系统的运维成本。

3、实现系统的横向扩展、动态伸缩:通过对系统实时状态的监控,可以在系统到达的压力峰值之前,提前动态扩充节点、实例,并启动实例分担系统负载。在压力减小的时候也可以将新增实例停止,减少系统消耗,节约系统资源。

4、增强系统的高可用性:通过对系统的实时监控,并跟随系统压力变化对系统进行动态伸缩,保证了系统的高可用性。

关于作者:光耀,15年中间件研发经验,曾参与或主导过普元业务中间件EOS、BPS、BTP,PAS等产品的研发,并参与过上海移动OpenAPI、交通银行CRM、军工某所国产化、浦发银行新一代流程平台等项目,精通Java底层技术、需求管理和架构设计和系统开发,对Java底层原理、中间件、数据库有深入了解,也有较丰富的系统运维经验,擅长分析解决生产环境疑难问题。

声明:本文为OFweek维科号作者发布,不代表OFweek维科号立场。如有侵权或其他问题,请及时联系我们举报。
2
评论

评论

    相关阅读

    暂无数据

    EAWorld

    微服务,DevOps,数据治理,...

    举报文章问题

    ×
    • 营销广告
    • 重复、旧闻
    • 格式问题
    • 低俗
    • 标题夸张
    • 与事实不符
    • 疑似抄袭
    • 我有话要说
    确定 取消

    举报评论问题

    ×
    • 淫秽色情
    • 营销广告
    • 恶意攻击谩骂
    • 我要吐槽
    确定 取消

    用户登录×

    请输入用户名/手机/邮箱

    请输入密码