Re: jboss module controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2008-03-10 at 16:52 +0100, Luca Foppiano wrote:

> thanks a lot. I will post here. Now I need to finish and clean useless
> parts.

Finally (thanks to M. DeHaan for his suggestions), I finish to write
simple script to get jboss istances information.

With this script, is possibile to get, for each systems, ports, pid,
istance name and bind address. 

With this informations is also possibile to add some checks (for example
when an istance is up but doesn't listen any ports).

Here there's a sample output information:

-bash-3.2$ python testJbossIstances.py 
 == JBoss istances monitor == 
 * host:rh5i386_local.byte-code.lan
 * host:fc8-b.byte-code.lan
  - (1687, 'default', '192.168.33.148', [3873, 8009, 1098, 1099, 8080,
8083, 4444, 8093, 4445, 4446])
 * host:fc8-a.byte-code.lan
  - (1617, 'default', '192.168.33.141', [3873, 8009, 1098, 1099, 8080,
8083, 4444, 8093, 4445, 4446])
  - (1790, 'test', '127.0.0.1', [3873, 8009, 1098, 1099, 8080, 8083,
4444, 8093, 4445, 4446])
-bash-3.2$ 

The main goal is to integrate into funcweb (I haven't see yet)..
what do you think?

bye
Luca

-- 
Today is Sweetmorn, the 3rd day of Discord in the YOLD 3174

#!/usr/bin/python
# find jboss istances and got information
# about them
# written by Luca Foppiano <lfoppiano@xxxxxxxxxxxxx>
# Modified starting by Michael DeHaan <mdehaan@xxxxxxxxxx> 
# driver checker script
# ===============================================

import func.overlord.client as fc

info = fc.Client("*").process.info("ax")

print " == JBoss istances monitor == "

# Retrieve information about program (ps ax)
data1 = {}
for (host,details) in info.iteritems():
    temp_host_data = []
    for items in details:
        if "java" in items and "-Dprogram.name=run.sh" in items:
            if items.__contains__("-c"):
                istance = items[items.index("-c")+1]
            else:
                istance = None

            if items.__contains__("-b"):
                address = items[items.index("-b")+1]
            else:
                address = None

            temp_host_data.append((int(items[0]),istance,address,[]))

    data1[host] = temp_host_data

# Retrieve information about network (netstat -tupln)
info = fc.Client("*").command.run("netstat -tupln")
data2 = {}
for (host,details) in info.iteritems():
    netstat_list=details[1].split("\n")
    temp_host_data = []
    for string in netstat_list:

        address = None
        port = None
        pid = None

        try:
            address_port = string.split()[3]
            pid_name = string.split()[6]
        except:
            address_port = None
            pid_name = None

        if address_port != None:
            try:
                address = string.split()[3].split(":")[0]
                port =  int(string.split()[3].split(":")[1])
            except:
                address = None
                port = None

        if pid_name != None:
            try:
                pid = int(pid_name.split("/")[0])
            except:
                pid = None
        
        if pid != None:
            for data in data1[host]:
                if data[0] == pid:
                    #verify address
                    if address != None:
                        if data[2] == address:
                            data[3].append(port)


# Display
# * host: hostname
#  - (pid, istance, address, ports)  

for key in data1.keys():
    print " * host:" +str(key)
    for item in data1[key]:
        print "  - "+str(item)
_______________________________________________
Func-list mailing list
Func-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/func-list

[Index of Archives]     [Fedora Users]     [Linux Networking]     [Fedora Legacy List]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux