Monitorando Weblogic em DomainRuntime com Zabbix
Sempre monitorei Jboss com zabbix, mas recentemente recebi uma demanda e encontrei algumas dificuldades que gostaria de compartilhar com a comunidade. O cenário do artigo foi RHEL6, Weblogic 11g com jrockit 1.6, zabbix 2.4, porém entendendo o cenário, pode ser customizado para outras versões.
Parte 4: Modificação do Zabbix Java Gateway para DomainRuntime
Para que o zabbix-java-gateway comece a coletar utilizando o DomainRuntime, será necessário recompilar o jar do zabbix, alterando a url do jmx na class JMXItemChecker.java.
Vamos precisar colocar a lib wlfullclient.jar na pasta src para compilar o zabbix-java-gateway.
Não irei abordar a compilação do Zabbix, pois não é proposito deste post. Futuramente posso está criando um post específico.
Fiz alterações simples para atender minha demanda, mas pode ser melhorada, de uma olhada no seguinte link:
Class alterada: /opt/install/zabbix-2.4.1/src/zabbix_java/src/com/zabbix/gateway/JMXItemChecker.java
Agora sua imaginação não tem limites! Basta configurar seu Zabbix para fazer LLD no server Domainruntime do weblogic utilizando o jmx_discovery igualmente como é feito no jmxrmi.
1. Adicione o host na interface jmx com o ip do AdminConole na porta 7001
2. Adicione o template weblogic anexo no host
3. Adicione macro para o host
Segue em anexo arquivos utilizados:
O .RAR ficou um pouco grande por conta dos binários java, então tive que dividir em 3 partes para o github aceitar o upload.
*Recomendo realizar testes no seu em ambiente de homologação antes de entrar em produção.
Resultado: Referências:
Vamos precisar colocar a lib wlfullclient.jar na pasta src para compilar o zabbix-java-gateway.
Não irei abordar a compilação do Zabbix, pois não é proposito deste post. Futuramente posso está criando um post específico.
Fiz alterações simples para atender minha demanda, mas pode ser melhorada, de uma olhada no seguinte link:
Class alterada: /opt/install/zabbix-2.4.1/src/zabbix_java/src/com/zabbix/gateway/JMXItemChecker.java
public JMXItemChecker(JSONObject request) throws ZabbixException
{
super(request);
try
{
String conn = request.getString(JSON_TAG_CONN);
int port = request.getInt(JSON_TAG_PORT);
Integer remoting = new Integer("7777");
Integer weblogic = new Integer("7001");
int retvaljboss = remoting.compareTo(port);
int retvalweblogic = weblogic.compareTo(port);
if (retvaljboss == 0)
{
//suporta jboss7 na porta jmx 7777
url = new JMXServiceURL("service:jmx:remoting-jmx://" + conn + ":" + port);
}
if (retvalweblogic == 0)
{
url = new JMXServiceURL("service:jmx:rmi:///jndi/iiop://" + conn + ":" + port + "/weblogic.management.mbeanservers.domainruntime");
}
else
{url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + conn + ":" + port + "/jmxrmi");
}
Agora sua imaginação não tem limites! Basta configurar seu Zabbix para fazer LLD no server Domainruntime do weblogic utilizando o jmx_discovery igualmente como é feito no jmxrmi.
1. Adicione o host na interface jmx com o ip do AdminConole na porta 7001
2. Adicione o template weblogic anexo no host
3. Adicione macro para o host
{$ADMINSERVER} - ipadminserver:7001
{$DOMINIO} - nomedoseudominio
{$DOMINIO} - nomedoseudominio
Segue em anexo arquivos utilizados:
O .RAR ficou um pouco grande por conta dos binários java, então tive que dividir em 3 partes para o github aceitar o upload.
- Template Weblogic.xml LLD com 42 itens, 4 triggers, 16 gráficos criado para weblogic DomainRuntime (Não esqueça de configurar as macros)
- JMXDiscovery.jar com alteração da class JMXDiscovery.java do zabbix_jmxdiscovery, recopilação alterações para connect IIOP com inclusão da lib própria do weblogic para comunicação do server Domainruntime.
- Bash do jmx_discovery para se colocar junto com o JMX na pasta do externalscripts do Zabbix.
- zabbix-java-gateway-2.4.1.jar alteração da class JMXItemChecker.java do zabbix-java-gateway, compilação alterações para connect IIOP com inclusão da lib própria do weblogic comunicação do server Domainruntime.
- wlfullclient.jar (lib utilizada na compilação)
- org-json-2010-12-28.jar (lib utilizada na compilação)
*Recomendo realizar testes no seu em ambiente de homologação antes de entrar em produção.
Resultado: Referências:
- Accessing WebLogic Server MBeans with JMX
- Accessing JMX for Oracle WebLogic 11g (The Shorten Spot (@theshortenspot))
- GitHub - RiotGamesMinions/zabbix_jmxdiscovery
- 4 Installation from sources [Zabbix Documentation 2.4]
- [ZBXNEXT-1274] Configurable JMX Endpoint - ZABBIX SUPPORT
Você poderia me informar onde encontro template que monitore o datasource, managed servers, para WebLogic?
Grato!