Есть ли способ перечислить все состояние сервера Websphere с разных хостов? - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь создать скрипт, который будет отображать весь статус JVM.

На данный момент я создал скрипт, который в основном вызывает serverStatus.sh, а затем запускается с разных хостов, чтобы получить статускаждая JVM с разных машин.затем скрипт помещает его в текстовый файл в общей файловой системе.что я знаю, действительно отстой.мне просто интересно, есть ли способ, как wlst.sh выполняет проверку.

Пример вывода:

  • Server1 machine1: RUNNING
  • Server2 machine1: RUNNING
  • Сервер3 машина2: РАБОТАЕТ
  • Сервер4 машина2: РАБОТАЕТ
  • Сервер5 машина5: ОСТАНОВЛЕН

1 Ответ

1 голос
/ 16 апреля 2019

Если вы находитесь в среде ND, вы можете использовать сценарий wsadmin для проверки состояния Server MBean (см. Server MBean - Javadoc ).

Вот фрагмент кода, который может оказаться полезным.

nodes=AdminConfig.getid('/Node:/').splitlines()
nodenames=[ AdminConfig.showAttribute(node,'name') for node in nodes ]
j2eeServerTuples=[]
for nodename in nodenames:
    serversString="/Node:%s/Server:/" % (nodename)
    servers=AdminConfig.getid(serversString).splitlines()
    for server in servers:
        if AdminConfig.showAttribute(server,'serverType') in ['APPLICATION_SERVER','DEPLOYMENT_MANAGER','NODE_AGENT'] :
            j2eeServerTuples.append( (nodename, AdminConfig.showAttribute(server,'name')) )

for (nodename,servername) in j2eeServerTuples:
    mBeanString = 'WebSphere:*,name=%s,type=Server,j2eeType=J2EEServer,node=%s' % (servername, nodename)
    serverMBean = AdminControl.queryNames(mBeanString)
    if (len(serverMBean) == 0):
        (state, pid) = ("UNREACHABLE", "-----")
    else:
        (state, pid) = (AdminControl.getAttribute(serverMBean,'state'), AdminControl.getAttribute(serverMBean,'pid'))

    print "%20s: %-30s => %15s : %s" % ( nodename, servername, state, pid)

Некоторые советы из приведенного выше сценария.

  1. Сценарий обращается к dmgr, поэтому он должен быть запущен.
  2. У wsadmin есть свои издержки, поэтому лучше запустить это в длительном цикле, чем многократный вызов wsadmin.
...