首页> 自动化运维> 中创中间件

[文章]中创中间件

收藏
0 201 0

                                                                                             中创中间件

罗扬

【摘要】

本文简要介绍中创中间件,及其获取配置相关信息的方法。

【正文】

   简介

1.1         架构介绍

中创中间件的架构为:

a)       域:对于实例管理上的划分

b)       集群

c)        节点:类似于weblogicmachine(机器),即服务器,实例挂在节点上,组合成群集

d)       实例:

                     i.            管理实例(控制台)

                    ii.            受管实例

e)       应用:应用可以部署在集群上,也可部署到单个实例上

1.2         控制台介绍

中创管理台:

a)      域管理

b)     服务器(管理实例的信息)

c)      集群管理

d)     节点管理

e)      应用管理

f)       资源管理:JDBC连接池的管理

g)      配置管理:每个实例挂在一个配置文件上,配置文件上定义默认的端口,jvm等信息,实例可以继承这些配置,也可在继承后覆盖其配置。(一般的做法为:一个集群下的实例共用一个配置文件,修改端口配置)

h)     监控管理:可以监控jvm,应用,实例等信息,但是需要开启监控功能

i)       负载均衡

 

 

   配置获取

2.1         获取配置方式

a)       Asadmin工具:中创提供的管理工具,部分项无法采集。该工具采集的单元为实例,无法通过连接管理实例来获取其他实例

b)       Jmx:中创中间件默认开启jmx端口,使用jmx链接获取配置和性能信息

                     i.            每一个实例都有一个jmx端口

                    ii.            连接管理实例可以获取到大部分实例信息(同一个域),但是无法获取到其他实例的性能信息

                  iii.            连接受管实例只能获取到该实例本身的配置和性能信息

 

2.2         JMX开启方式

2.2.1       方法一

JVM添加: -Djava.rmi.server.hostname=IP IP:为远程服务器的IP地址)

        具体操作:登陆管理工具,【配置管理】→【JVM设置】→【JVM选项】→点击【添加JVM选项】添加-Djava.rmi.server.hostname=IP,点击【保存】,重启服务器。



2.2.2       方法二

JMX服务添加IP

具体操作:登陆管理工具,【配置管理】→【JMX服务】,地址一栏,填写远程服务器IP地址,如:127.0.0.1,点击【保存】,重启服务器。

 

2.3         获取配置脚本

脚本使用说明:

1 需要事先开启jmx端口(中创默认开启)

2 需要事先分发cmdline-jmxclient-0.10.3.jar

3 原理为用目标机器上的java运行cmdline-jmxclient-0.10.3.jar传入命令,即可获取对应结果,故脚本内的命令可以单独拆开来。(需要注意执行时java命令可用)

 

脚本与结果:

#!/bin/bash

getlastkey(){

       OLD_IFS="$IFS"

       IFS=":"

       arr=($*)

       IFS="$OLD_IFS"

       count=${#arr[@]}

       echo ${arr[$count-1]}

}

ip="192.168.1.1"

username="admin"

password="12345678"

portlist="7018"

for port in ${portlist[@]}

do

       path_url="java -jar /bea/CVICSE/zhongchuang/AppServer/as/bin/cmdline-jmxclient-0.10.3.jar $username:$password $ip:$port"

       around(){

              echo "====Name===="

              echo "Name:"$(getlastkey `$path_url amx:pp=/domain/servers,type=server,name=$1 Name 2>&1` 2>&1)

              configs=$(getlastkey `$path_url amx:pp=/domain/servers,type=server,name=$1 ConfigRef 2>&1` 2>&1)

              config=${configs//_/_*}

              listener=`$path_url amx:pp=/domain/configs/config[$config]/network-config/network-listeners,type=network-listener,name=* Port 2>&1`

              len=`echo "$listener" | wc -l`

              echo "=====port===="

              if [[ "$len" != "1" ]]

                     then

                            applist=($listener)

                            for x in ${applist[@]}

                            do

                                   port=$(getlastkey `$path_url $x Port 2>&1` 2>&1)

                                   res=$(echo $port | grep '${')

                                   if [[ "$res" != "" ]]

                                   then

                                          mport=${port//\$\{/}

                                          mport=${mport//\}/}

                                          echo $(getlastkey `$path_url $x Name 2>&1` 2>&1)":"$(getlastkey `$path_url amx:pp=/domain/servers/server[$1],type=system-property,name=$mport Value 2>&1` 2>&1)

                                   else

                                          echo $(getlastkey `$path_url $x Name 2>&1` 2>&1)":"$(getlastkey `$path_url $x Port 2>&1` 2>&1)

                                   fi

                                  

                            done

                     else

                            echo $(getlastkey `$path_url amx:pp=/domain/configs/config[$config]/network-config/network-listeners,type=network-listener,name=* Name 2>&1` 2>&1)":"$(getlastkey `$path_url amx:pp=/domain/configs/config[$config]/network-config/network-listeners,type=network-listener,name=* Port 2>&1` 2>&1)

              fi

              pool=`$path_url amx:pp=/domain/configs/config[$config]/thread-pools,type=thread-pool,name=* MaxThreadPoolSize 2>&1`

              len=`echo "$pool" | wc -l`

              echo "=====pool===="

              if [[ "$len" != "1" ]]

                     then

                            poollist=($pool)

                            for x in ${poollist[@]}

                            do

                                   echo $(getlastkey `$path_url $x Name 2>&1` 2>&1)":"$(getlastkey `$path_url $x MaxThreadPoolSize 2>&1` 2>&1)

                            done

                     else

                            echo $(getlastkey `$path_url amx:pp=/domain/configs/config[$config]/thread-pools,type=thread-pool,name=* Name 2>&1` 2>&1)":"$(getlastkey `$path_url amx:pp=/domain/configs/config[$config]/thread-pools,type=thread-pool,name=* MaxThreadPoolSize 2>&1` 2>&1)

              fi

       }

       echo "--------------"

       echo "TotalPhysicalMemorySize:"$(getlastkey `$path_url java.lang:type=OperatingSystem TotalPhysicalMemorySize 2>&1` 2>&1)

       echo "TotalSwapSpaceSize:"$(getlastkey `$path_url java.lang:type=OperatingSystem TotalSwapSpaceSize 2>&1` 2>&1)

       echo "FullVersion:"`$path_url amx:pp=,type=domain-root ApplicationServerFullVersion 2>&1`

       servers=$(getlastkey `$path_url amx:pp=/mon,type=server-mon,name=* Name 2>&1` 2>&1)

       around $servers

done

 

 

 

输出:

 

TotalPhysicalMemorySize:7996641280  总物理内存大小

TotalSwapSpaceSize:4160745472   总交换区大小

FullVersion:03/19/2019 16:26:22 +0800 org.archive.jmx.Client ApplicationServerFullVersion: InforSuite APP Server 9.1 (build B050000 2018-08-30 09:30:33)   版本信息,注意切割,后面 InforSuite APP Server 9.1 (build B050000 2018-08-30 09:30:33) 才是有用的

Name:server  服务名称

=====port====

http-listener-2:8181    名字:端口

admin-listener:8060

http-listener-1:8080

=====pool====           线程池名称:最大连接数

thread-pool-1:200

admin-thread-pool:15

http-thread-pool:128

 

 

真实输出:

TotalPhysicalMemorySize:33567064064

TotalSwapSpaceSize:17175670784

FullVersion:03/25/2019 19:13:53 +0800 org.archive.jmx.Client ApplicationServerFullVersion: InforSuite APP Server 9.1 (build B030010 2016-10-12 15:22:51)

====Name====

Name:server

=====port====

http-listener-1:7011

http-listener-2:7012

admin-listener:7010

=====pool====

thread-pool-1:200

admin-thread-pool:50

http-thread-pool:128

自动化运维
最近热帖
{{item.Title}} {{item.ViewCount}}
近期热议
{{item.Title}} {{item.PostCount}}