Tutorial Módulo 10 Monitoração de Ambientes

Tamanho: px
Começar a partir da página:

Download "Tutorial Módulo 10 Monitoração de Ambientes"

Transcrição

1 LABORATÓRIO 10 Monitoração de Este laboratório tem por objetivo exercitar o uso das ferramentas especializadas para a monitoração de aplicações Java através dos servidores SNMP (genérico) e Zabbix (específico) disponibilizadas pelo componente Demoiselle Monitoring. Objetivos: Monitoração do tipo polling via SNMP e uso de cliente SNMP; Monitoração do tipo trapping via SNMP, uso de servidor SNMP e criação de checkers; Monitoração do tipo polling via Zabbix; Monitoração do tipo trapping via Zabbix e criação de checkers; Utilização de trapping padrão e appenders Log4j para SNMP e Zabbix; Pré-requisitos: Conhecimento da ferramenta de gerenciamento de pacotes Apache Maven; Instalação de cliente e servidor SNMP, tal como Net-SNMP; Conhecimento básico de utilização da interface Web do Zabbix. Referências: Net-SNMP: Zabbix: 1

2 Preâmbulo Preparação da aplicação de exemplo Obs.: Caso você já possua uma aplicação do tipo Java Web, pode ignorar esta seção. 1. No Eclipse, crie um novo projeto utilizando o menu File > New > Other > Maven Project tal como ilustrado a seguir: 2. Na tela seguinte, escolha o arquétipo demoiselle-archetype-webapp para o projeto: 2

3 3. Na próxima tela, informe o grupo br.gov.sample.demoiselle e o artefato escola conforme tela abaixo, clicando em seguida no botão Finish: 4. Substitua o conteúdo do arquivo WEB-INF/web.xml da aplicação com as seguintes linhas: <?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemalocation="http://java.sun.com/xml/ns/javaee version="2.5"> </web-app> <display-name>escola</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> 5. Lance o servidor Tomcat do Eclipse, associe a aplicação escola e teste a sua execução. 3

4 Exercício 10.1 Polling SNMP: Criação e utilização do agente 1. Inclua a seguinte dependência no arquivo pom.xml da aplicação: <dependency> <groupid>br.gov.component.demoiselle</groupid> <artifactid>demoiselle-monitoring</artifactid> <version>1.0.0</version> </dependency> 2. Crie a interface EscolaMonitoringMBean estendendo a interface IMBean e com o seguinte conteúdo: package br.gov.sample.demoiselle.escola.monitoring.mbean; import br.gov.component.demoiselle.monitoring.jmx.imbean; public interface EscolaMonitoringMBean extends IMBean { long getqtdalunosmatriculados(); int getqtdturmasincluidas(); String getversaoaplicacao(); String getultimousuariologado(); int getnivellog(); void setnivellog(int nivellog); 3. Crie a classe EscolaMonitoring implementando a interface EscolaMonitoringMBean desenvolvida anteriormente, incluindo todos os métodos nela existentes: package br.gov.sample.demoiselle.escola.monitoring.mbean; public class EscolaMonitoring implements EscolaMonitoringMBean { 4. Inclua as (para identificar o Managed Bean no servidor JMX) (para registrar a Managed Information Base MIB no agente SNMP) na classe EscolaMonitoring conforme ilustrado no código a = = " ") public class EscolaMonitoring implements EscolaMonitoringMBean { 4

5 5. Inclua a (para registrar cada um dos OIDs a serem disponibilizados na MIB via SNMP) e implemente a classe EscolaMonitoring por completo utilizando o conteúdo a seguir (modificações necessárias em destaque): package br.gov.sample.demoiselle.escola.monitoring.mbean; import org.snmp4j.smi.counter32; import org.snmp4j.smi.gauge32; import org.snmp4j.smi.integer32; import org.snmp4j.smi.octetstring; import br.gov.component.demoiselle.monitoring.jmx.mbean; import br.gov.component.demoiselle.monitoring.snmp.accessmode; import br.gov.component.demoiselle.monitoring.snmp.managedobject; import = = " ") public class EscolaMonitoring implements EscolaMonitoringMBean { private long qtdalunos = = ".1", type = Gauge32.class) public long getqtdalunosmatriculados() { this.qtdalunos = (int) (Math.random() * 100) + 100; return this.qtdalunos; private int qtdturmas = = ".2", type = Counter32.class) public int getqtdturmasincluidas() { this.qtdturmas += (int) (Math.random() * 10); return this.qtdturmas; private static final String[] USUARIOS = { "Fulano", "Sicrano", "Beltrano" = ".3", type = OctetString.class) public String getultimousuariologado() { int pos = (int) (Math.random() * USUARIOS.length); return USUARIOS[pos]; private static final String VERSAO = = ".4") public String getversaoaplicacao() { return = ".5", access = AccessMode.READ_WRITE, type = Integer32.class, allowedvalues = { 1, 2, 3, 4 ) private int nivellog = 1; public int getnivellog() { return this.nivellog; public void setnivellog(final int nivellog) { this.nivellog = nivellog; 5

6 6. Adicione as seguintes linhas ao arquivo de configurações demoiselle.properties: # JMX MBeans to be loaded on application startup component.demoiselle.monitoring.jmx.mbeans = \ br.gov.sample.demoiselle.escola.monitoring.mbean.escolamonitoring 7. Crie o arquivo de configurações snmp.properties específico para serviços SNMP contendo as linhas a seguir: # SNMP Configuration # 1) polling / active check # enable a SNMP agent that provides a given MIB tree monitoring.snmp.agent.enabled = true # the network protocol to be used (udp or tcp) monitoring.snmp.agent.protocol = udp # the port that the agent listens on (default 1161) monitoring.snmp.agent.port = 1161 # the address to listen on, or '*' to listen on any available address monitoring.snmp.agent.address = * # the MIB root to be considered monitoring.snmp.agent.mib.root = # MBeans to be exported as MIB trees monitoring.snmp.agent.mibs = \ br.gov.sample.demoiselle.escola.monitoring.mbean.escolamonitoring # security settings (particularly for SNMPv3) monitoring.snmp.agent.security = snmp-security.xml 6

7 8. Crie o arquivo snmp-security.xml contendo as definições de segurança (i.e. SNMPv3) para o serviço SNMP de acordo com as linhas a seguir: <?xml version="1.0" encoding="utf-8"?> <snmp-security> <security> <user name="escola"> <auth protocol="sha" pass="senha123" /> <priv protocol="aes" pass="senha456" /> </user> <user name="zabbix"> <auth protocol="md5" pass="senha321" /> <priv protocol="des" pass="senha654" /> </user> </security> <access-control> <views> <view name="fullreadview"> <include subtree="1.3" mask="" /> </view> <view name="fullwriteview"> <include subtree="1.3" /> </view> <view name="fullnotifyview"> <include subtree="1.3" /> </view> <view name="escolareadview"> <include subtree=" " /> </view> <view name="escolawriteview"> <include subtree=" " /> </view> <view name="escolanotifyview"> <include subtree=" " /> </view> </views> <groups> <group name="v1v2group"> <security name="public" model="snmpv1"/> <security name="public" model="snmpv2c"/> <access context="" model="any" auth="false" priv="false" exact="true"> <read view="fullreadview" /> <write view="fullwriteview" /> <notify view="fullnotifyview" /> </access> </group> <group name="v3escola"> <security name="escola" model="usm" /> <security name="zabbix" model="usm" /> <access model="usm" auth="true" priv="true" exact="true"> <read view="escolareadview" /> <write view="escolawriteview" /> <notify view="escolanotifyview" /> </access> </group> </groups> </access-control> </snmp-security> 7

8 9. Associe o listener de SNMP na aplicação Web incluindo as seguintes linhas no arquivo WEB- INF/web.xml: <!-- Demoiselle Monitoring Configuration (SNMP) --> <listener> <listener-class> br.gov.component.demoiselle.monitoring.web.snmp.snmplistener </listener-class> </listener> 10. Crie o arquivo log4j.properties de configurações do Log4j com as linhas a seguir: log4j.rootcategory=info, stdout log4j.logger.br.gov.component=debug log4j.appender.stdout=org.apache.log4j.consoleappender log4j.appender.stdout.layout=org.apache.log4j.patternlayout log4j.appender.stdout.layout.conversionpattern=%-5p [%c{1] %m%n 11. Publique a aplicação Web no contêiner Apache Tomcat e observe as linhas inseridas no console do Eclipse (vide imagem a seguir): 12. Tendo o serviço SNMP levantado pelo agente, podemos usar ferramentas tais como um cliente SNMP qualquer para efetuar operações. Eis um exemplo de utilização do comando snmpwalk para listar todos os OIDs disponíveis a partir de um determinado nó da árvore - utilizando SNMPv1, comunidade public no servidor local (localhost) e porta 1161: $ snmpwalk -v 1 -c public localhost:1161. SNMPv2-SMI::enterprises = Gauge32: 146 SNMPv2-SMI::enterprises = Counter32: 73 SNMPv2-SMI::enterprises = STRING: "Fulano" SNMPv2-SMI::enterprises = STRING: "2.4.1-RC2" SNMPv2-SMI::enterprises = INTEGER: 1 End of MIB Observe que o tipo de dados de cada objeto é disponibilizado de acordo com o que fora definido na implementação em Java. Cada OID é montado através da concatenação da raiz da MIB (definido no arquivo snmp.properties), do prefixo da MIB (definido da classe) e da do método ou atributo. 8

9 13. Ainda no terminal, execute a instrução snmpget conforme exemplo a seguir, com o objetivo de testar requisições SNMP do tipo GET, desta vez utilizando a versão 2c do protocolo desta forma podemos obter o valor de um único objeto especificando o seu OID completo: $ snmpget -v 2c -c public : SNMPv2-SMI::enterprises = Counter32: Um outro comando, o snmpgetnext, recupera o primeiro objeto disponível na árvore especificada parcialmente. Teste a execução de requisições SNMP do tipo GETNEXT utilizando a instrução abaixo: $ snmpgetnext -v 1 -c public localhost: SNMPv2-SMI::enterprises = Gauge32: Existe ainda a possibilidade de se alterar o valor de um objeto pelo cliente, sendo que neste caso usamos a instrução snmpset especificando o OID completo, o tipo de dados e o valor para o qual se deseja mudar. Teste a execução de uma instrução SNMP do tipo SET invocando a seguinte instrução: $ snmpset -v 1 -c public localhost: i 2 SNMPv2-SMI::enterprises = INTEGER: É possível ainda utilizar outros clientes SNMP para os testes anterios. Por exemplo, eis o mbrowse: 9

10 17. Considerando a configuração de segurança contida no arquivo snmp-security.xml, ao utilizar os comandos das ferramentas clientes com o protocolo SNMPv3, é preciso passar argumentos adicionais, tais como o nome do usuário, a forma escolhida para autenticação e privacidade e as respectivas senhas e algoritmos de criptografia. A instrução snmpget fica assim para o usuário escola usando SHA na autenticação e DES na privacidade: $ snmpget -v 3 -l authpriv -u escola -a SHA -A senha123 -x AES -X senha456 \ : SNMPv2-SMI::enterprises = Gauge32: Para testar o controle de acesso (VACM) do SNMPv3, ao requisitar um objeto pertencente a uma visão não permitida ao grupo do usuário, o resultado é exibido abaixo: $ snmpget -v 3 -l authpriv -u escola -a SHA -A senha123 -x AES -X senha456 \ : SNMPv2-SMI::enterprises = No Such Object available on this agent at this OID 19. Além disso, ao executar o comando snmpwalk, apenas os ramos da árvore disponíveis para o grupo do usuário são exibidos: $ snmpwalk -v 3 -l authpriv -u escola -a SHA -A senha123 -x AES -X senha456 \ : SNMPv2-SMI::enterprises = Gauge32: 102 SNMPv2-SMI::enterprises = Counter32: 86 SNMPv2-SMI::enterprises = STRING: "Sicrano" SNMPv2-SMI::enterprises = STRING: "2.4.1-RC2" SNMPv2-SMI::enterprises = INTEGER: 2 SNMPv2-SMI::enterprises = No more variables left in this MIB View (It is past the end of the MIB tree) 20. De maneira semelhante, ao utilizar o usuário zabbix com os protocolos MD5 para autenticação e DES para privacidade, além das respectivas senhas, a instrução para o snmpget é a seguinte: $ snmpget -v 3 -l authpriv -u zabbix -a MD5 -A senha321 -x DES -X senha654 \ : SNMPv2-SMI::enterprises = Gauge32: Se caso a senha de autenticação estiver incorreta, o resultado é o seguinte: $ snmpget -v 3 -l authpriv -u zabbix -a MD5 -A senha_errada -x DES -X senha654 \ : snmpget: Authentication failure (incorrect password, community or key) 22. Entretanto, se a senha de privacidade for inválida, ocorre um timeout na requisição: $ snmpget -v 3 -l authpriv -u zabbix -a MD5 -A senha321 -x DES -X senha_errada \ : Timeout: No Response from : E por fim, caso as formas de autenticação e privacidade especificadas no cliente forem diferentes das configuradas no agente, a resposta é a seguinte: $ snmpget -v 3 -l authnopriv -u zabbix -a MD5 -A senha321 \ : Error in packet Reason: authorizationerror (access denied to that object) Failed object: SNMPv2-SMI::enterprises

11 Exercício 10.2 Trapping SNMP: Criação e utilização do trapper 1. Crie a interface IEscolaTrapper estendendo a interface ITrapper e com o seguinte conteúdo: package br.gov.sample.demoiselle.escola.monitoring.trapper; import br.gov.component.demoiselle.monitoring.trapper.itrapper; public interface IEscolaTrapper extends ITrapper { void enviarfalha(string mensagem); void enviarinfobd(string base, int conexoes); void enviarmemoriaheapusada(); void enviarmensagem(string mensagem, int nivel, int valor); void enviarversaoaplicacao(); 2. Crie a classe EscolaSNMPTrapper herdando da superclasse SNMPTrapper e implementando a interface IEscolaTrapper desenvolvida anteriormente, incluindo todos os métodos nela existentes: package br.gov.sample.demoiselle.escola.monitoring.trapper; import br.gov.component.demoiselle.monitoring.trapper.snmp.snmptrapper; public class EscolaSNMPTrapper extends SNMPTrapper implements IEscolaTrapper { 3. Inclua a para configurar o envio de traps SNMP na classe EscolaSNMPTrapper conforme destacado no código a = " ", generictype = TrapType.ENTERPRISE_SPECIFIC) public class EscolaSNMPTrapper extends SNMPTrapper implements IEscolaTrapper { 4. Na mesma classe, crie uma variável estática e privada para armazenar uma única instância do objeto e um método getinstance() para sempre referenciá-la (i.e. aplicação do padrão singleton): private static EscolaSNMPTrapper instance; public static synchronized EscolaSNMPTrapper getinstance() { if (instance == null) { instance = new EscolaSNMPTrapper(); return instance; 11

12 5. Inclua a (para registrar cada um dos traps a serem disparados via SNMP) e implemente a classe EscolaSNMPTrapper por completo utilizando o conteúdo a seguir (modificações necessárias em destaque): package br.gov.sample.demoiselle.escola.monitoring.trapper; import org.snmp4j.smi.counter32; import org.snmp4j.smi.gauge32; import org.snmp4j.smi.integer32; import org.snmp4j.smi.octetstring; import br.gov.component.demoiselle.monitoring.snmp.managedobject; import br.gov.component.demoiselle.monitoring.snmp.managedtrap; import br.gov.component.demoiselle.monitoring.snmp.traptype; import br.gov.component.demoiselle.monitoring.trapper.snmp.snmptrapper; public class EscolaSNMPTrapper extends SNMPTrapper implements IEscolaTrapper { private static EscolaSNMPTrapper instance; public static synchronized EscolaSNMPTrapper getinstance() { if (instance == null) { instance = new EscolaSNMPTrapper(); return = 5, variablebindings = ".1", type = OctetString.class)) public void enviarfalha(final String message) = 15, variablebindings = = ".1", type = = ".2", type = Gauge32.class)) public void enviarinfobd(final String datasource, final int connections) = TrapType.ENTERPRISE_SPECIFIC, specifictype = 12345, variablebindings = = ".1", type = = ".2", type = = ".3", type = Counter32.class)) public void enviarmensagem(final String message, final int level, final int value) = 2, variablebindings = ".1", type = Gauge32.class), mbeanname = "java.lang:type=memory", mbeanattribute = "HeapMemoryUsage.used") public void enviarmemoriaheapusada() = ".1", type = OctetString.class), mbeanname = "br.gov.demoiselle:name=escola", mbeanattribute = "VersaoAplicacao") public void enviarversaoaplicacao() { 12

13 6. Adicione ao arquivo de configurações snmp.properties existente as linhas a seguir: # 2) trapping / passive check # enable a SNMP trapper that sends data to the server monitoring.snmp.trapper.enabled = true # the network protocol to be used (udp or tcp) monitoring.snmp.trapper.protocol = udp # name or IP address of the machine that SNMP server runs on monitoring.snmp.trapper.server = # the port of SNMP on its server (default 162) monitoring.snmp.trapper.port = 162 # name of the community to be considered monitoring.snmp.trapper.community = public # SNMP version (v1, v2c or v3) monitoring.snmp.trapper.version = v1 # enterprise OID for sending traps monitoring.snmp.trapper.enterprise_oid = # default generic trap type monitoring.snmp.trapper.generic_type = 6 # default specific trap type monitoring.snmp.trapper.specific_type = 1 # default application trap OID for sending traps monitoring.snmp.trapper.application_trap_oid = No arquivo pom.xml da aplicação inclua a referência à compilação por aspectos para artefatos que façam uso do componente Demoiselle Monitoring, tal como indicado a seguir: <plugin> <groupid>org.codehaus.mojo</groupid> <artifactid>aspectj-maven-plugin</artifactid> <version>1.3</version> <configuration> <source>1.5</source> <target>1.5</target> <aspectlibraries> <aspectlibrary> <groupid>br.gov.component.demoiselle</groupid> <artifactid>demoiselle-monitoring</artifactid> </aspectlibrary> </aspectlibraries> </configuration> <executions> <execution> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> </plugin> 13

14 8. Crie a classe ExemploUsoTrappers conforme código fonte exibido a seguir: package br.gov.sample.demoiselle.escola.business; import br.gov.sample.demoiselle.escola.monitoring.trapper.escolasnmptrapper; import br.gov.sample.demoiselle.escola.monitoring.trapper.iescolatrapper; public class ExemploUsoTrappers { public static void main(final String[] args) { // iniciar trappers EscolaSNMPTrapper.getInstance().start(); // invocar regras de negócio com envio de traps ExemploUsoTrappers exemplo = new ExemploUsoTrappers(); exemplo.executarinformativo(); exemplo.executarcomfalha(); // finalizar trappers EscolaSNMPTrapper.getInstance().stop(); public void executarcomfalha() { try { throw new Exception("Um erro ocorreu intencionalmente"); catch (Exception e) { EscolaSNMPTrapper.getInstance().enviarFalha(e.getMessage()); public void executarinformativo() { IEscolaTrapper trapper1 = EscolaSNMPTrapper.getInstance(); trapper1.enviarmemoriaheapusada(); trapper1.enviarinfobd("db1", 500); 9. Execute a classe ExemploUsoTrappers e observe as linhas inseridas no console do Eclipse (vide imagem a seguir): 14

15 10. Abra um terminal como superusuário (i.e. root ) e inicie o servidor SNMP para captura de traps (i.e. snmptrapd) utilizando a instrução a seguir. Execute novamente a classe Java de exemplo e acompanhe a chegada das notificações e mensagens: # snmptrapd -f -Le NET-SNMP version :53: (via UDP: [ ]:55019) TRAP, SNMP v1, community public SNMPv2-SMI::enterprises Enterprise Specific Trap (2) Uptime: 0:00:00.36 SNMPv2-SMI::enterprises = Gauge32: :53: (via UDP: [ ]:38062) TRAP, SNMP v1, community public SNMPv2-SMI::enterprises Enterprise Specific Trap (15) Uptime: 0:00:00.72 SNMPv2-SMI::enterprises = STRING: "db1" SNMPv2-SMI::enterprises = Gauge32: :53: (via UDP: [ ]:46024) TRAP, SNMP v1, community public SNMPv2-SMI::enterprises Enterprise Specific Trap (5) Uptime: 0:00:00.72 SNMPv2-SMI::enterprises = STRING: "Um erro ocorreu intencionalmente" Obs: Lembre-se de configurar o arquivo /etc/snmp/snmptrapd.conf incluindo a seguinte linha que define a comunidade public para o recebimento de traps. authcommunity log,execute,net public 11. Para que o envio destes traps ocorra de forma periódica em intervalos regulares e automaticamente, é preciso de classes do tipo checker. Crie a classe EscolaChecker estendendo a superclasse GenericChecker e utilize as tal como no código a seguir: package br.gov.sample.demoiselle.escola.monitoring.checker; import java.util.concurrent.timeunit; import br.gov.component.demoiselle.monitoring.checker.genericchecker; import br.gov.component.demoiselle.monitoring.checker.scheduledcheck; import br.gov.component.demoiselle.monitoring.trapper.trapper; import br.gov.sample.demoiselle.escola.monitoring.trapper.escolasnmptrapper; public class EscolaChecker extends GenericChecker private EscolaSNMPTrapper = 30, unit = TimeUnit.SECONDS) public void checkdatabases() { int conn1 = (int) (Math.random() * 1000); int conn3 = (int) (Math.random() * 1000); this.snmptrapper.enviarinfobd("db1", conn1); this.snmptrapper.enviarinfobd("db3", = 1, unit = TimeUnit.MINUTES) public void checkusedmemory() { this.snmptrapper.enviarmemoriaheapusada(); 15

16 12. Altere o arquivo de configurações demoiselle.properties incluindo as linhas a seguir: # Custom trapper classes to be loaded on application startup component.demoiselle.monitoring.trappers = \ br.gov.sample.demoiselle.escola.monitoring.trapper.escolasnmptrapper # Custom checker classes to be loaded on application startup component.demoiselle.monitoring.checkers = \ br.gov.sample.demoiselle.escola.monitoring.checker.escolachecker 13. Publique novamente a aplicação Web no contêiner Apache Tomcat e observe o envio periódico de traps no console do Eclipse (vide imagem a seguir) e no terminal com o serviço SNMP: 16

17 Exercício 10.3 Polling Zabbix: Criação e utilização do agente 1. Para a abordagem específica utilizando Zabbix é preciso também criar uma interface inicial estendendo IMBean. Como já criamos a EscolaMonitoringMBean, podemos reutilizá-la nesta seção: package br.gov.sample.demoiselle.escola.monitoring.mbean; import br.gov.component.demoiselle.monitoring.jmx.imbean; public interface EscolaMonitoringMBean extends IMBean { long getqtdalunosmatriculados(); int getqtdturmasincluidas(); String getversaoaplicacao(); String getultimousuariologado(); int getnivellog(); void setnivellog(int nivellog); 2. Tal como na abordagem genérica com SNMP, para Zabbix também precisamos criar uma classe que implemente a interface EscolaMonitoringMBean, porém desta vez apenas a precisará ser utilizada. Ela servirá para identificar o Managed Bean no servidor JMX. O código final da classe EscolaMonitoring deve ficar assim: package br.gov.sample.demoiselle.escola.monitoring.mbean; import = "br.gov.demoiselle:name=escola") public class EscolaMonitoring implements EscolaMonitoringMBean { private long qtdalunos = 0; public long getqtdalunosmatriculados() { this.qtdalunos = (int) (Math.random() * 100) + 100; return this.qtdalunos; private int qtdturmas = 0; public int getqtdturmasincluidas() { this.qtdturmas += (int) (Math.random() * 10); return this.qtdturmas; private static final String[] USUARIOS = { "Fulano", "Sicrano", "Beltrano" ; public String getultimousuariologado() { int pos = (int) (Math.random() * USUARIOS.length); return USUARIOS[pos]; private static final String VERSAO = "2.4.1-RC2"; public String getversaoaplicacao() { return VERSAO; 17

18 private int nivellog = 1; public int getnivellog() { return this.nivellog; public void setnivellog(final int nivellog) { this.nivellog = nivellog; 3. Crie o arquivo de configurações zabbix.properties específico para serviços Zabbix contendo as linhas a seguir: # Zabbix Configuration # 1) polling / active check # enable a Zabbix agent that handles JMX queries monitoring.zabbix.agent.enabled = true # the port that the agent listens on (default 10052) monitoring.zabbix.agent.port = # the address to listen on, or '*' to listen on any available address monitoring.zabbix.agent.address = * # protocol version to use (default 1.4) monitoring.zabbix.agent.protocol = Associe o listener de Zabbix na aplicação Web incluindo as seguintes linhas no arquivo WEB- INF/web.xml: <!-- Demoiselle Monitoring Configuration (Zabbix) --> <listener> <listener-class> br.gov.component.demoiselle.monitoring.web.zabbix.zabbixlistener </listener-class> </listener> 5. Publique a aplicação Web no contêiner Apache Tomcat e observe as linhas inseridas no console do Eclipse (vide imagem a seguir): Com isso o agente Zabbix está pronto para receber requisições TCP na porta

19 6. Para conferir se o serviço está funcionando devidamente, abra um terminal e execute o comando telnet passando o servidor (localhost) e a porta (10052). Assim que a conexão TCP tiver sido estabelecida, envie a requisição no protocolo 1.4 do Zabbix digitando um texto no seguinte formato: jmx[nome-do-mbean][nome-do-atributo]. Por exemplo, para invocar o método getultimousuariologado() exposto pela interface EscolaMonitoringMBean, execute as instruções destacadas conforme exemplo: $ telnet localhost Trying Connected to localhost. Escape character is '^]'. jmx[br.gov.demoiselle:name=escola][ultimousuariologado] ZBXD#SicranoConnection closed by foreign host. 7. A string ZBXD faz parte do protocolo, observe que a resposta de cada requisição aparece a seguir (no exemplo: Sicrano ). Teste a execução com os demais atributos exportados pelo MBean. É possível ainda enviar múltiplas consultas de atributos em uma única requisição, tal como no exemplo a seguir: $ telnet localhost Trying Connected to localhost. Escape character is '^]'. jmx[br.gov.demoiselle:name=escola][qtdalunosmatriculados] jmx[br.gov.demoiselle:name=escola][qtdturmasincluidas] jmx[br.gov.demoiselle:name=escola][versaoaplicacao] jmx[br.gov.demoiselle:name=escola][ultimousuariologado] jmx[br.gov.demoiselle:name=escola][nivellog] ZBXD##116ZBXD##0ZBXD# Connection closed by foreign host RC2ZBXDBeltranoZBXD##1 19

20 Exercício 10.4 Trapping Zabbix: Criação e utilização do trapper 1. O desenvolvimento de trappers utilizando a abordagem específica com o Zabbix começa da mesma forma que com SNMP. É preciso criar a interface IEscolaTrapper estendendo a interface ITrapper e com o seguinte conteúdo: package br.gov.sample.demoiselle.escola.monitoring.trapper; import br.gov.component.demoiselle.monitoring.trapper.itrapper; public interface IEscolaTrapper extends ITrapper { void enviarfalha(string mensagem); void enviarinfobd(string base, int conexoes); void enviarmemoriaheapusada(); void enviarmensagem(string mensagem, int nivel, int valor); void enviarversaoaplicacao(); 2. Crie a classe EscolaZabbixTrapper herdando da superclasse ZabbixTrapper e implementando a interface IEscolaTrapper desenvolvida anteriormente, incluindo todos os métodos nela existentes: package br.gov.sample.demoiselle.escola.monitoring.trapper; import br.gov.component.demoiselle.monitoring.trapper.zabbix.zabbixtrapper; public class EscolaZabbixTrapper extends ZabbixTrapper implements IEscolaTrapper { 3. Inclua as para configurar o envio de traps Zabbix na classe EscolaZabbixTrapper conforme destacado no código a seguir: package br.gov.sample.demoiselle.escola.monitoring.trapper; import br.gov.component.demoiselle.monitoring.trapper.zabbix.zabbixhost; import br.gov.component.demoiselle.monitoring.trapper.zabbix.zabbixitem; import public class EscolaZabbixTrapper extends ZabbixTrapper implements IEscolaTrapper = "escola.message") public void enviarfalha(final String mensagem) = "escola.database[*]") public void enviarinfobd(final String base, final int conexoes) = "escola.memory[used]", mbeanname = "java.lang:type=memory", mbeanattribute = "HeapMemoryUsage.used") public void enviarmemoriaheapusada() { 20

21 @ZabbixItem(key = "escola.versao", mbeanname = "br.gov.demoiselle:name=escola", mbeanattribute = "VersaoAplicacao") public void enviarversaoaplicacao() { public void enviarmensagem(final String mensagem, final int nivel, final int valor) { 4. Na mesma classe, crie uma variável estática e privada para armazenar uma única instância do objeto e um método getinstance() para sempre referenciá-la (i.e. aplicação do padrão singleton): private static EscolaZabbixTrapper instance; public static synchronized EscolaZabbixTrapper getinstance() { if (instance == null) { instance = new EscolaZabbixTrapper(); return instance; 5. Adicione ao arquivo de configurações zabbix.properties existente as linhas a seguir: # 2) trapping / passive check # enable a Zabbix trapper that sends data to the server monitoring.zabbix.trapper.enabled = true # name or IP address of the machine that Zabbix runs on monitoring.zabbix.trapper.server = # the port of Zabbix on its server (default 10051) monitoring.zabbix.trapper.port = # name of the host as defined in the hosts section in Zabbix monitoring.zabbix.trapper.host = Armenia Zabbix # schedule automatic trapping of active checks monitoring.zabbix.trapper.active_checks = false # default item key to be used when sending traps monitoring.zabbix.trapper.default_key = escola.message 6. Modifique a classe ExemploUsoTrappers conforme destacado no código fonte exibido a seguir: package br.gov.sample.demoiselle.escola.business; import br.gov.sample.demoiselle.escola.monitoring.trapper.escolazabbixtrapper; import br.gov.sample.demoiselle.escola.monitoring.trapper.iescolatrapper; public class ExemploUsoTrappers { /** args */ public static void main(final String[] args) { // iniciar trappers EscolaZabbixTrapper.getInstance().start(); 21

22 // invocar regras de negócio com envio de traps ExemploUsoTrappers exemplo = new ExemploUsoTrappers(); exemplo.executarinformativo(); exemplo.executarcomfalha(); // finalizar trappers EscolaZabbixTrapper.getInstance().stop(); public void executarcomfalha() { try { throw new Exception("Um erro ocorreu intencionalmente"); catch (Exception e) { EscolaZabbixTrapper.getInstance().enviarFalha(e.getMessage()); public void executarinformativo() { IEscolaTrapper trapper2 = EscolaZabbixTrapper.getInstance(); trapper2.enviarmemoriaheapusada(); trapper2.enviarinfobd("db1", 500); 7. Execute a classe ExemploUsoTrappers e observe as linhas inseridas no console do Eclipse (vide imagem a seguir): Por enquanto ignore a exceção ConnectException levantada durante a tentativa de conexão. Para que o teste seja completamente validado é preciso ter à disposição um servidor Zabbix configurado com o host e indicadores definidos. Eis o resultado de uma execução com sucesso: 22

Desenvolvimento Web com Framework Demoiselle versão 1.1

Desenvolvimento Web com Framework Demoiselle versão 1.1 Desenvolvimento Web com Framework Demoiselle versão 1.1 Módulo 10: Monitoração de Ambientes Autor: Rodrigo Hjort SERPRO / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br

Leia mais

LOGGING DE EVENTOS COM LOG4J

LOGGING DE EVENTOS COM LOG4J LOGGING DE EVENTOS COM LOG4J por Luiz Gustavo Stábile de Souza O que é logging? Fazer o logging de uma aplicação é uma das possíveis maneiras de debugá-la, registrando em algum meio (arquivo, enviando

Leia mais

Para iniciar um agente SNMP, usamos o comando snmpd. Por padrão, aceita requisições na porta 161 (UDP).

Para iniciar um agente SNMP, usamos o comando snmpd. Por padrão, aceita requisições na porta 161 (UDP). EN3610 Gerenciamento e interoperabilidade de redes Prof. João Henrique Kleinschmidt Prática SNMP Net-SNMP (http://www.net-snmp.org) é um conjunto de aplicações usado para implementar SNMPv1, SNMPv2 e SNMPv3.

Leia mais

Para iniciar um agente SNMP, usamos o comando snmpd. Por padrão, aceita requisições na porta 161 (UDP).

Para iniciar um agente SNMP, usamos o comando snmpd. Por padrão, aceita requisições na porta 161 (UDP). EN3610 Gerenciamento e interoperabilidade de redes Prof. João Henrique Kleinschmidt Prática SNMP 1 MIBs RMON No Linux os arquivos MIB são armazenados no diretório /usr/share/snmp/mibs. Cada arquivo MIB

Leia mais

GESTÃO DE SISTEMAS E REDES SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

GESTÃO DE SISTEMAS E REDES SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP) GESTÃO DE SISTEMAS E REDES SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP) OUTLINE SIMPLE NETWORK MANAGEMENT PROTOCOL ESTRUTURA DA INFORMAÇÃO DE GESTÃO PROTOCOLO SNMPV1 SNMPV2 SNMPV3 SNMP NO IOS SNMP NO PACKET

Leia mais

Application Notes: SNMP. Configuração do protocolo SNMP

Application Notes: SNMP. Configuração do protocolo SNMP Application Notes: SNMP Configuração do protocolo SNMP Application Notes: SNMP Configuração do protocolo SNMP. Data 10/05/2010, Revisão 1.1 Introdução Desenvolvimento Configurando o Protocolo SNMP Traps

Leia mais

Universidade Federal do Rio Grande do Norte

Universidade Federal do Rio Grande do Norte Universidade Federal do Rio Grande do Norte Redes de Computadores - Camada de Aplicação Curso de Engenharia de Software Prof. Marcos Cesar Madruga/Thiago P. da Silva Material basedado em [Kurose&Ross 2009]

Leia mais

3. O protocolo SNMP 1

3. O protocolo SNMP 1 3. O protocolo SNMP 1 Veicula informações de gerência transporte de valores das MIBs Interações sem conexão Mensagens em UDP/IP portas 161 e 162 pacotes de tamanho variável Mensagens auto-contidas formato

Leia mais

Nesta sessão introduziremos os conceitos básicos do Cacti, e como fazer para instalá-lo em seu computador.

Nesta sessão introduziremos os conceitos básicos do Cacti, e como fazer para instalá-lo em seu computador. Cacti é uma ferramenta gráfica de gerenciamento de dados de rede que disponibiliza a seus usuários uma interface intuitiva e bem agradável de se usar, sendo acessível a qualquer tipo de usuários. Este

Leia mais

Hoje em dia é muito comum utilizar uma API de logging de mensagens como o Log4j para indicar os comportamentos de uma aplicação.

Hoje em dia é muito comum utilizar uma API de logging de mensagens como o Log4j para indicar os comportamentos de uma aplicação. Introdução Hoje em dia é muito comum utilizar uma API de logging de mensagens como o Log4j para indicar os comportamentos de uma aplicação. O Log4j é um é um projeto open source distribuído pela Apache

Leia mais

3. O protocolo SNMP. Managed system. Management system. resources. management application. MIB objects. SNMP manager UDP IP. IP link.

3. O protocolo SNMP. Managed system. Management system. resources. management application. MIB objects. SNMP manager UDP IP. IP link. 3. O protocolo SNMP Veicula informações de gerência transporte de valores das MIBs Interações sem conexão Mensagens em UDP/IP portas e 162 pacotes de tamanho variável Mensagens auto-contidas formato Type

Leia mais

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado ARQUITETURA SISGRAD Manual de Utilização Versão: 2.0 Criação: 05 de julho de 2007 Autor: André Penteado Última Revisão: 09 de outubro de 2009 Autor: Alessandro Moraes Controle Acadêmico - Arquitetura SISGRAD

Leia mais

Lidando de Forma Eficiente com Validações Locais de Objetos

Lidando de Forma Eficiente com Validações Locais de Objetos Lidando de Forma Eficiente com Validações Locais de Objetos Aprenda a construir um mini-framework para validar objetos locais sem afetar a complexidade do código. Autor Paulo César M. N. A. Coutinho (pcmnac@gmail.com):

Leia mais

Tutorial Módulo 06 - Segurança

Tutorial Módulo 06 - Segurança LABORATÓRIO 06 Segurança Este laboratório tem por objetivo exercitar o uso do componente de segurança do Framework e uso da especificação JAAS. Objetivos: Uso do Login Module do Componente de Segurança

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II Slide 1 Gerenciamento de Redes Gerenciamento de redes inclui o fornecimento, a integração e a coordenação de hardware, software e elementos humanos para monitorar, testar, configurar,

Leia mais

MA001. 01 de 28. Responsável. Revisão Q de 26/06/2015. Cantú & Stange Software. Página

MA001. 01 de 28. Responsável. Revisão Q de 26/06/2015. Cantú & Stange Software. Página Manual de instalação do Zada 5 MA001 Responsável Revisão Q de 26/06/2015 FL Página 01 de 28 Página 1 de 33 Revisão Q de 26/06/2015 MA001 Responsável: FL Manual de instalação do Zada 5 Este manual consiste

Leia mais

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler Desenvolvimento para Android Prá3ca 3 Prof. Markus Endler Exercício 3.1 Solicitando permissão para abrir uma página Web ü Criaremos uma Ac.vity com um EditText (para entrada de uma URL), um Bu?on e uma

Leia mais

Universidade Católica do Salvador CURSO DE BACHARELADO EM INFORMÁTICA

Universidade Católica do Salvador CURSO DE BACHARELADO EM INFORMÁTICA Universidade Católica do Salvador CURSO DE BACHARELADO EM INFORMÁTICA O Protocolo SNMP Por Lécia de Souza Oliveira Índice Página 2... O que é SNMP? Histórico Página 3 e 4... Estrutura Geral do Sistema

Leia mais

Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri

Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri OBJETIVOS DA AULA: Criação de uma base de dados em MS SQL Server e acesso com VB 6. Fazer uma breve introdução a respeito do MS SQL Server 7.0; Criar uma pequena base de dados no MS SQL Server 7.0; Elaborar

Leia mais

Manual de Instalação e Configuração MySQL

Manual de Instalação e Configuração MySQL Manual de Instalação e Configuração MySQL Data alteração: 19/07/11 Pré Requisitos: 1. Baixar os seguintes arquivos no através do link http://ip.sysfar.com.br/install/ mysql-essential-5.1.46-win32.msi mysql-gui-tools-5.0-r17-win32.msi

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Gestão de redes. Protocolo SNMP. Maio de 2010 1 Gestão de redes Gestão de redes refere-se neste contexto às actividades relacionadas com a manutenção do bom funcionamento de um conjunto

Leia mais

Desenvolvimento Web com Framework Demoiselle versão 1.0

Desenvolvimento Web com Framework Demoiselle versão 1.0 Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado

Leia mais

INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008

INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008 INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008 Objetivo Esse artigo tem como objetivo demonstrar como instalar e configurar o Active Directory no Windows Server 2008. Será também apresentado

Leia mais

The Simple Network Management Protocol, version 1

The Simple Network Management Protocol, version 1 SNMPv1 The Simple Network Management Protocol, version 1, 2007 1 O Protocolo A versão original do SNMP derivou do Simple Gateway Monitoring Protocol (SGMP) em 1988 RFC1157, STD0015 A Simple Network Management

Leia mais

MANUAL DO USUÁRIO DE REDE

MANUAL DO USUÁRIO DE REDE MANUAL DO USUÁRIO DE REDE Armazenar registro de impressão na rede Versão 0 BRA-POR Definições de observações Utilizamos o seguinte ícone neste Manual do Usuário: Observações indicam como você deve reagir

Leia mais

Segurança de Acesso a Banco de Dados no MS SQL Server

Segurança de Acesso a Banco de Dados no MS SQL Server Segurança de Acesso a Banco de Dados no MS SQL Server Para efetuar com sucesso os exemplos que serão mostrados a seguir é necessário que exista no SQL Server uma pessoa que se conecte como Administrador,

Leia mais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Tutorial RMI (Remote Method Invocation) por Alabê Duarte Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos

Leia mais

Integrando Eclipse e Websphere Application Server Community Edition

Integrando Eclipse e Websphere Application Server Community Edition 1 Integrando Eclipse e Websphere Application Server Community Edition Sobre o Autor Carlos Eduardo G. Tosin (carlos@tosin.com.br) é formado em Ciência da Computação pela PUC-PR, pós-graduado em Desenvolvimento

Leia mais

Monitorização da Rede. Simple Network Management Protocol (SNMP).

Monitorização da Rede. Simple Network Management Protocol (SNMP). Capítulo 15 Monitorização da Rede. Simple Network Management Protocol (SNMP). Uma das mais importantes tarefas de um administrador de uma rede informática é monitorizar o tráfego na rede, Detectar perdas

Leia mais

Plataforma para Agentes

Plataforma para Agentes Plataforma para es JATLite - Java Template, Lite O que é o JATLite? http://java.stanford.edu/ http://www.fe.up.pt/~eol/aiad/jatlite/doc/index.html Pacote de programas em Java permitindo: rápida criação

Leia mais

Introdução ao BPEL utilizando o Oracle SOA Suíte 10g

Introdução ao BPEL utilizando o Oracle SOA Suíte 10g Introdução ao BPEL utilizando o Oracle SOA Suíte 10g 1. Introdução Neste artigo serão apresentados alguns conceitos inerentes a SOA Service Oriented Architecture e um exemplo prático de construção de processo

Leia mais

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments Criação de Servlets 1. Crie um novo projeto através do Menu File New Project. 2. Acesse o Menu File New. 3. Na janela Object Gallery que surgirá, selecione a guia Web. 4. Escolha o ícone que corresponde

Leia mais

LABORATÓRIO IX. SNMP Parte II Autenticação e Traps Documento versão 0.1. Aluno: Paulo Henrique Moreira Gurgel #5634135

LABORATÓRIO IX. SNMP Parte II Autenticação e Traps Documento versão 0.1. Aluno: Paulo Henrique Moreira Gurgel #5634135 LABORATÓRIO IX SNMP Parte II Autenticação e Traps Documento versão 0.1 Aluno: Paulo Henrique Moreira Gurgel #5634135 Orientado pela Professora Kalinka Regina Lucas Jaquie Castelo Branco Agosto / 2010 Laboratório

Leia mais

PROTOCOLOS DE COMUNICAÇÃO

PROTOCOLOS DE COMUNICAÇÃO PROTOCOLOS DE COMUNICAÇÃO 3º ANO / 2º SEMESTRE 2014 INFORMÁTICA avumo@up.ac.mz Ambrósio Patricio Vumo Computer Networks & Distribution System Group Descrição do File Transfer Protocol - FTP FTP significa

Leia mais

FACULDADE DE TECNOLOGIA SENAC GOIÁS CONTROLE DE ACESSO USANDO O FRAMEWORK RICHFACES. 5º PERÍODO Gestão da Tecnologia da Informação

FACULDADE DE TECNOLOGIA SENAC GOIÁS CONTROLE DE ACESSO USANDO O FRAMEWORK RICHFACES. 5º PERÍODO Gestão da Tecnologia da Informação FACULDADE DE TECNOLOGIA SENAC GOIÁS CONTROLE DE ACESSO USANDO O FRAMEWORK RICHFACES 5º PERÍODO Gestão da Tecnologia da Informação Alunos: Alessandro Aparecido André Alexandre Bruno Santiago Thiago Castilho

Leia mais

JDBC Acessando Banco de Dados

JDBC Acessando Banco de Dados Acessando Banco de Dados Objetivos Entender o que são Drivers. Diferenciar ODBC, JDBC e DRIVERMANAGER. Desenvolver uma aplicação Java para conexão com Banco de Dados. Criar um objeto a partir da classe

Leia mais

Cacti 4 de fevereiro de 2010

Cacti 4 de fevereiro de 2010 4 de fevereiro de 2010 Sumário 1 Introdução 2 2 Pré-requisitos 2 3 Instalação 2 3.1 Instalando os pacotes necessários................ 3 4 Configuração 3 4.1 Configurando o MySQL..................... 3

Leia mais

Laboratório Configuração do SNMP

Laboratório Configuração do SNMP Topologia Tabela de Endereçamento Objetivos Dispositivo Interface Endereço IP Máscara de Sub-Rede Gateway padrão R1 G0/1 192.168.1.1 255.255.255.0 N/A S0/0/0 192.168.2.1 255.255.255.252 N/A R2 S0/0/0 192.168.2.2

Leia mais

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS FUNDAMENTOS DE Visão geral sobre o Active Directory Um diretório é uma estrutura hierárquica que armazena informações sobre objetos na rede. Um serviço de diretório,

Leia mais

Criação de um novo projeto no Eclipse utilizando Maven

Criação de um novo projeto no Eclipse utilizando Maven 1. Faça o download da versão mais atual do Eclipse IDE for Java EE Developers em https://www.eclipse.org/downloads/. 2. No Eclipse, crie um novo projeto Maven, em File >> New >> Maven Project 3. Marque

Leia mais

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing.

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing. 15/11/2009 Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing. Crie um novo projeto clicando em arquivo e em novo projeto. Escolha a opção java, aplicativo java

Leia mais

INTERCONEXÃO DE REDES DE COMPUTADORES

INTERCONEXÃO DE REDES DE COMPUTADORES 1 Resumo 2 INTERCONEXÃO DE REDES DE COMPUTADORES Parte 7 Introdução à Gerência de Redes Introdução Segurança SNMPv1, SNMPv2 Segurança SNMPv3 Prof. Pedro S. Nicolletti (Peter), 2013 Introdução 3 4 Com o

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e

Leia mais

J550. Model View Controller

J550. Model View Controller J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras

Leia mais

TUTORIAL JAVA AS - HTTP CLIENT COMPOSITION ENVIROMENT 7.1

TUTORIAL JAVA AS - HTTP CLIENT COMPOSITION ENVIROMENT 7.1 TUTORIAL JAVA AS - HTTP CLIENT COMPOSITION ENVIROMENT 7.1 FABIO HAIDER 2008 C O N T E Ú D O : 1 HTTP Client...3 1.1 Arquitetura...3 1.2 Usando HTTP Client...3 1.2.1 Usuário...3 1.2.2 Implementação HTTP

Leia mais

Manual de Instalação PIMSConnector em Windows

Manual de Instalação PIMSConnector em Windows Manual de Instalação PIMSConnector em Windows Julho/2015 Sumário 1. Contexto de negócio (Introdução)... 3 2. Pré-requisitos instalação/implantação/utilização... 4 3. JBOSS... 6 3.1. Instalação... 6 3.2.

Leia mais

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:

Leia mais

INSTALANDO SQL SERVER 2008

INSTALANDO SQL SERVER 2008 VERSÃO 2 INSTALANDO SQL SERVER 2008 Pré-requisitos para instalação do SQL SERVER 2008 Antes de iniciar o instalador do SQL SERVER 2008 é necessário instalar os seguintes componentes: Microsoft Windows

Leia mais

Manual de Integração SMS

Manual de Integração SMS NG Sistemas Manual de Integração SMS Integração SMS TI 2015 w w w. n g s i s t e m a s. c o m. b r Índice Sumário executivo... 2 Integrações... 3 Desenho da solução.... 6 NG Sistemas 1 Sumário executivo

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

Manual de configurações do Conectividade Social Empregador

Manual de configurações do Conectividade Social Empregador Manual de configurações do Conectividade Social Empregador Índice 1. Condições para acesso 2 2. Requisitos para conexão 2 3. Pré-requisitos para utilização do Applet Java com Internet Explorer versão 5.01

Leia mais

MÓDULO Programação para Web 2

MÓDULO Programação para Web 2 MÓDULO Programação para Web 2 USANDO O JSF Continuação Interdependência e Injeção Instâncias de Managed Beans podem conversar entre si para dividir o processamento das requisições dos usuários de acordo

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

Manual de instalação Servidor Orion Phoenix

Manual de instalação Servidor Orion Phoenix Manual de instalação Servidor Orion Phoenix Fevereiro/2011 Este documento se destina a instalação do Orion Phoenix na sua rede Versão 1.01 C ONTE ÚDO 1. INTRODUÇÃO... 3 2. VISÃO GERAL... 3 3. PROCEDIMENTOS

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Kit de Demonstração MatchPort Início Rápido

Kit de Demonstração MatchPort Início Rápido Kit de Demonstração MatchPort Início Rápido Número de peça 900-486 Revisão F Maio 2010 Índice Introdução...3 Conteúdo do kit de demonstração...3 O que você precisa saber...3 Endereço de hardware... 3 Endereço

Leia mais

Seguindo o modelo descrito nas Tabelas 1 e 2, crie os arquivos utilizando a versão doo Excel que você tiver disponível.

Seguindo o modelo descrito nas Tabelas 1 e 2, crie os arquivos utilizando a versão doo Excel que você tiver disponível. Atividade 4 2013 SSIS Atenção! A atividade 4 será apresentada para toda a turma. Cada aluno terá 10 minutos para apresentação. O dia da apresentação será posteriormente marcado. Montando o cenário Para

Leia mais

Manual de Instalação PIMSConnector em Linux

Manual de Instalação PIMSConnector em Linux Manual de Instalação PIMSConnector em Linux Julho/2015 Sumário 1. Contexto de negócio (Introdução)... 3 2. Pré-requisitos instalação/implantação/utilização... 4 3. JBOSS... 6 3.1. Instalação... 6 3.2.

Leia mais

Desenvolvimento de aplicações Web. Java Server Pages

Desenvolvimento de aplicações Web. Java Server Pages Desenvolvimento de aplicações Web Java Server Pages Hamilton Lima - athanazio@pobox.com 2003 Como funciona? Servidor web 2 Internet 1 Browser 3 Arquivo jsp 4 JSP Compilado 2 Passo a passo 1 browser envia

Leia mais

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC Módulo 5 No módulo anterior adaptamos nosso projeto para persistir as informações no banco de dados utilizando as facilidades da extensão demoiselle-jpa. Experimentamos o controle transacional do Framework

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II Prof. Celio Trois portal.redes.ufsm.br/~trois/redes2 Roteamento Dinâmico Os protocolos de roteamento utilizados em redes pertencem a duas categorias: IGP (Interior Gateway Protocol)

Leia mais

Acesso a banco de dados

Acesso a banco de dados Acesso a banco de dados 1. Crie uma pasta chamada AcessoBD com as seguintes subpastas: Aplicativos, Drivers, AcessoMSACCESS, AcessoMySQL e AcessoSQLSERVER Exemplo 1: MS ACCESS 1. Crie um banco de dados

Leia mais

Procedimentos para configuração em modo WDS

Procedimentos para configuração em modo WDS Procedimentos para configuração em modo WDS 1- WDS (Wireless Distribution System) permite o acesso de um DAP-1353 com o outro DAP-1353 de um modo padronizado. Dessa forma pode simplificar a infraestrutura

Leia mais

INTERCONEXÃO DE REDES DE COMPUTADORES

INTERCONEXÃO DE REDES DE COMPUTADORES 1 INTERCONEXÃO DE REDES DE COMPUTADORES Parte 7 Introdução à Gerência de Redes Prof. Pedro S. Nicolletti (Peter), 2013 Resumo 2 Conceitos Básicos de SNMP Introdução Arquitetura MIB Segurança SNMPv1, SNMPv2

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br WebWork 2 João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 0.5 Última Atualização: Agosto/2005 1 Agenda Introdução WebWork 2 & XWork Actions Views Interceptadores Validação Inversão de Controle (IoC)

Leia mais

PROTÓTIPO TIPO DE UM SOFTWARE AGENTE SNMP PARA REDE WINDOWS

PROTÓTIPO TIPO DE UM SOFTWARE AGENTE SNMP PARA REDE WINDOWS UNIVERSIDADE REGIONAL DE BLUMENAU BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO PROTÓTIPO TIPO DE UM SOFTWARE AGENTE SNMP PARA REDE WINDOWS Acadêmico: Luciano Waltrick Goeten Orientador: Prof. Sérgio Stringari

Leia mais

MANUAL DE INSTRUÇÕES

MANUAL DE INSTRUÇÕES MANUAL DE INSTRUÇÕES 1 Conteúdo 1. LogWeb... 3 2. Instalação... 4 3. Início... 6 3.1 Painel Geral... 6 3.2 Salvar e Restaurar... 7 3.3 Manuais... 8 3.4 Sobre... 8 4. Monitoração... 9 4.1 Painel Sinóptico...

Leia mais

Instrução para Exportação de Certificados Digitais de Servidor Web IIS 6 e IIS 7

Instrução para Exportação de Certificados Digitais de Servidor Web IIS 6 e IIS 7 Instrução para Exportação de Certificados Digitais de Servidor Web IIS 6 e IIS 7 Proibida a reprodução total ou parcial. Todos os direitos reservados 1 Sumário Introdução... 3 Pré-Requisitos:... 3 Utilizando

Leia mais

Criando documentação com javadoc

Criando documentação com javadoc H Criando documentação com javadoc H.1 Introdução Neste apêndice, fornecemos uma introdução a javadoc ferramenta utilizada para criar arquivos HTML que documentam o código Java. Essa ferramenta é usada

Leia mais

Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes

Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes Resumo Neste tutorial serão apresentados conceitos relacionados a Servlets. Ele inicial como uma breve introdução do funcionamento

Leia mais

Documentação de Integração ao Human Gateway

Documentação de Integração ao Human Gateway Documentação de Integração ao Human Gateway Documentação de Integração v1.20 10 de Agosto de 2009 Índice 1 Sobre este documento... 3 2 Uso Geral da Interface... 4 3 Dicas Gerais Sobre a Integração... 5

Leia mais

Iniciando a configuração do BOT

Iniciando a configuração do BOT Iniciando a configuração do BOT Traduzido por: Antonio Edivaldo de O. Gaspar, edivaldo.gaspar(at)gmail(dot)com Texto original: http://www.blockouttraffic.de/gettingstarted.php Revisado em: 25/07/06 09:00

Leia mais

CONEXÃ O NFS-E SISTEMÃ ISS-INTEL UTILIZÃNDO JÃVÃ E SSL

CONEXÃ O NFS-E SISTEMÃ ISS-INTEL UTILIZÃNDO JÃVÃ E SSL CONEXÃ O NFS-E SISTEMÃ ISS-INTEL UTILIZÃNDO JÃVÃ E SSL Autor : Julio P. Leiser House Company Data : 17/08/2011 16:00 ETAPA 1 IMPORTAR CERTIFICADO A1 DO CLIENTE COM EXTENSÃO.PFX NO INTERNET EXPLORER A partir

Leia mais

Aplicabilidade: visão geral

Aplicabilidade: visão geral CURSO BÁSICO SAXES 2 Aplicabilidade: visão geral BI Comércio Indústria nf-e Serviços Software house Enterprise Business Bus Banco financeiro Instituição Sindicato ERP html Casos 3 6 Customização: importação

Leia mais

Instruções de Instalação do Agente RMON2

Instruções de Instalação do Agente RMON2 Instruções de Instalação do Agente RMON2 Débora Pandolfi Alves deborapa@terra.com.br Ricardo Nabinger Sanchez rnsanchez@cscience.org Lúcio Braga luciobraga@yahoo.com.br Luciano Paschoal Gaspary paschoal@exatas.unisinos.br

Leia mais

CONFIGURAÇÃO DO SOFTFONE EYEBEAM INSTALAÇÃO CONFIGURANDO A LICENÇA TESTE DE REPRODUÇÃO E GRAVAÇÃO CONFIGURAÇÃO DO SIP SETTINGS

CONFIGURAÇÃO DO SOFTFONE EYEBEAM INSTALAÇÃO CONFIGURANDO A LICENÇA TESTE DE REPRODUÇÃO E GRAVAÇÃO CONFIGURAÇÃO DO SIP SETTINGS CONFIGURAÇÃO DO SOFTFONE EYEBEAM INSTALAÇÃO CONFIGURANDO A LICENÇA TESTE DE REPRODUÇÃO E GRAVAÇÃO CONFIGURAÇÃO DO SIP SETTINGS CONFIGURAÇÃO DE CODEC G729 AJUSTE DE VOLUME ONDE CONSEGUIR O SOFTFONE 1 INSTALAÇÃO

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Invocação de Objetos

Leia mais

Drive MySql de conexão para Eclipse

Drive MySql de conexão para Eclipse Drive MySql de conexão para Eclipse de Setembro de 0 Olá, neste artigo iremos focar em como utilizar o drive de conexão do Mysql na IDE eclipse. Veremos passo-a-passo como instalar, o que é uma coisa muito

Leia mais

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Descrição Implemente nesta atividade de laboratório um programa em Java utilizando threads

Leia mais

Kemp LoadMaster Guia Prático

Kemp LoadMaster Guia Prático Kemp LoadMaster Guia Prático 2014 v1.1 Renato Pesca renato.pesca@alog.com.br 1. Topologias One Armed Balancer Figura 1: Topologia single-armed. Esta topologia mostra que as máquinas reais fazem parte da

Leia mais

Parte I. Demoiselle Mail

Parte I. Demoiselle Mail Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework

Leia mais

Invocação de Métodos Remotos

Invocação de Métodos Remotos Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso

Leia mais

TUTORIAL PARA CONFIGURAÇÃO MIKROTIK UTILIZANDO ROTEAMENTO DINÂMICO COM OSPF E AUTENTIÇÃO RADIUS EM NOSSO SISTEMA IXCPROVEDOR.

TUTORIAL PARA CONFIGURAÇÃO MIKROTIK UTILIZANDO ROTEAMENTO DINÂMICO COM OSPF E AUTENTIÇÃO RADIUS EM NOSSO SISTEMA IXCPROVEDOR. TUTORIAL PARA CONFIGURAÇÃO MIKROTIK UTILIZANDO ROTEAMENTO DINÂMICO COM OSPF E AUTENTIÇÃO RADIUS EM NOSSO SISTEMA IXCPROVEDOR. Neste senário temos um roteador de internet que vai ser nosso gateway do MK1,

Leia mais

Software de gerenciamento do sistema Intel. Guia do usuário do Pacote de gerenciamento do servidor modular Intel

Software de gerenciamento do sistema Intel. Guia do usuário do Pacote de gerenciamento do servidor modular Intel Software de gerenciamento do sistema Intel do servidor modular Intel Declarações de Caráter Legal AS INFORMAÇÕES CONTIDAS NESTE DOCUMENTO SÃO RELACIONADAS AOS PRODUTOS INTEL, PARA FINS DE SUPORTE ÀS PLACAS

Leia mais

C.P.M. PROGRAMA DE CONTROLE PARA MICRO TERMINAL

C.P.M. PROGRAMA DE CONTROLE PARA MICRO TERMINAL C.P.M. PROGRAMA DE CONTROLE PARA MICRO TERMINAL xcpml Guia do Programador Versão.0. Agosto/0 Introdução Representado por um arquivo XML devidamente validado, um script de programação CPM cuida de toda

Leia mais

Prática em Laboratório N.02 Criando um serviço Web via NetBeans

Prática em Laboratório N.02 Criando um serviço Web via NetBeans Prática em Laboratório N.02 Criando um serviço Web via NetBeans O objetivo deste exercício é criar um projeto apropriado para desenvolver um contêiner que você resolva utilizar. Uma vez criado o projeto,

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services (continuação) WSDL - Web Service Definition Language WSDL permite descrever o serviço que será oferecido

Leia mais

Segurança em Java. João Carlos Pinheiro. jcpinheiro@cefet-ma.br. Versão: 1.1 Última Atualização: Agosto/2005

Segurança em Java. João Carlos Pinheiro. jcpinheiro@cefet-ma.br. Versão: 1.1 Última Atualização: Agosto/2005 Segurança em Java João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 1.1 Última Atualização: Agosto/2005 1 Objetivos Apresentar uma introdução ao suporte fornecido pela API Java para a criptografia Utilizar

Leia mais

EN3611 Segurança de Redes Prof. João Henrique Kleinschmidt Prática Wireshark Sniffer de rede

EN3611 Segurança de Redes Prof. João Henrique Kleinschmidt Prática Wireshark Sniffer de rede EN3611 Segurança de Redes Prof. João Henrique Kleinschmidt Prática Wireshark Sniffer de rede Entregar um relatório contendo introdução, desenvolvimento e conclusão. A seção desenvolvimento pode conter

Leia mais

O essencial do comando mysqladmin, através de 18 exemplos

O essencial do comando mysqladmin, através de 18 exemplos O essencial do comando mysqladmin, através de 18 exemplos Elias Praciano O mysqladmin é uma ferramenta de linha de comando que vem junto com a instalação do servidor MySQL e é usada por administradores

Leia mais

CONFIGURAÇÃO DO SOFTFONE EYEBEAM INSTALAÇÃO CONFIGURANDO A LICENÇA TESTE DE REPRODUÇÃO E GRAVAÇÃO CONFIGURAÇÃO DO SIP SETTINGS

CONFIGURAÇÃO DO SOFTFONE EYEBEAM INSTALAÇÃO CONFIGURANDO A LICENÇA TESTE DE REPRODUÇÃO E GRAVAÇÃO CONFIGURAÇÃO DO SIP SETTINGS Voip do Brasil Telefone: 0800 889 9050 CONFIGURAÇÃO DO SOFTFONE EYEBEAM INSTALAÇÃO CONFIGURANDO A LICENÇA TESTE DE REPRODUÇÃO E GRAVAÇÃO CONFIGURAÇÃO DO SIP SETTINGS CONFIGURAÇÃO DE CODEC G729 AJUSTE DE

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

#apt-get install make flex gcc gpp apache2 php5 php5-pgsql postgresql-8.4 libapache2-mod-php5 php5-gd php-net-socket postgres

#apt-get install make flex gcc gpp apache2 php5 php5-pgsql postgresql-8.4 libapache2-mod-php5 php5-gd php-net-socket postgres no Debian 6.0 Instalação do Zabbix (Sistema de Gerenciamento de Rede) Utilizando o terminal do linux digite o comando abaixo: #apt-get install make flex gcc gpp apache2 php5 php5-pgsql postgresql-8.4 libapache2-mod-php5

Leia mais

Demoiselle Tutorial Módulo 1 Arquitetura

Demoiselle Tutorial Módulo 1 Arquitetura Demoiselle Tutorial Módulo 1 Arquitetura Vanderson Botelho da Silva (SERPRO/SUPST/STCTA) Emerson Sachio Saito (SERPRO/CETEC/CTCTA) Flávio Gomes da Silva Lisboa (SERPRO/CETEC/CTCTA) Serge Normando Rehem

Leia mais