Edge for Private Cloud v. 4.17.05
Este documento descreve as técnicas de monitoramento de componentes compatíveis com uma infraestrutura implantação do Apigee Edge.
Como ativar o JMX
O JMX é ativado por padrão para o Cassandra e desativado por padrão para todos os outros componentes de solução. Portanto, você deve ativar o JMX individualmente para cada componente.
Cada componente aceita JMX em uma porta diferente. A tabela a seguir lista a porta JMX e o arquivo que você modifica para ativar o JMX nessa porta:
Componente | Porta JMX | Arquivo |
---|---|---|
Servidor de gerenciamento | 1099 | /opt/apigee/edge-management-server/bin/start |
processador de mensagens | 1101 | /opt/apigee/edge-mesage-processor/bin/start |
Qpid | 1102 | /opt/apigee/edge-qpid-server/bin/start |
Postgres | 1103 | /opt/apigee/edge-postgres-server/bin/start |
Por exemplo, para ativar o JMX no servidor de gerenciamento, abra /opt/apigee/edge-management-server/bin/start em um editor. A linha a seguir será usada para iniciar o servidor de gerenciamento:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel
Edite essa linha para adicionar o seguinte:
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
Observe que essa linha especifica o número da porta JMX como 1099 para o servidor de gerenciamento. Defina o o número da porta de cada componente, conforme definido na tabela acima. Exemplo:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel
Salve o arquivo e reinicie o componente. Por exemplo, para reiniciar o aplicativo Servidor:
> /opt/apigee/apigee-service/bin/ apigee-service edge-management-server restart
Ativar a autenticação JMX e definindo a senha do JMX
O processo de monitoramento do servidor de gerenciamento, do processador de mensagens, do Qpid e do Postgres usam JMX. Por padrão, o acesso remoto ao JMX não exige senha.
Para ativar a autenticação JMX, cada componente tem uma ação change_jmx_auth que você usa para ativar/desativar a autenticação e definir as credenciais do JMX.
Para ativar a autenticação JMX, use o seguinte comando:
> /<inst_root>/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile
em que:
- comp pode ser edge-management-server, Edge-message-processor, Edge-qpid-server ou edge-postgres-server.
- As opções são:
- -u: nome de usuário
- -p: senha
- -e: y (ativar) ou n (dsiable)
- O arquivo de configuração inclui:
- JMX_USERNAME=nome de usuário
- JMX_enabled=y/n
- JMX_PASSWORD=password Se não for definido ou não for transmitido com -p, você receberá uma solicitação.
Por exemplo, para usar opções na linha de comando:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
Se você tiver um arquivo de configuração:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile
Se você estiver executando o Edge em vários nós, execute este comando em todos os nós, especificando os mesmos nome de usuário e senha.
Para desativar a autenticação JMX posteriormente, use o comando:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
Servidor de gerenciamento
Usando JConsole para monitorar a verificação de integridade do sistema e processar informações
Use o JConsole (uma ferramenta compatível com JMX) para gerenciar e monitorar verificações de integridade e processar estatísticas. Com o JConsole, você pode consumir as estatísticas do JMX expostas pelo Management Server (ou qualquer servidor) e exibi-los em uma interface gráfica. Para mais informações sobre o uso do JConsole, consulte http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html.
Use o JConsole e o seguinte URL de serviço para monitorar os atributos do JMX (MBeans) oferecido via JMX.
service:jmx:rmi:///jndi/rmi://<ip address>:<port>/jmxrmi
em que <ip address> é o endereço IP do Management Server (ou respectivo servidor). Por padrão, a porta do servidor de gerenciamento é a 1099.
A tabela a seguir mostra as estatísticas genéricas do JMX:
JMX MBeans (link em inglês) |
Atributos JMX |
---|---|
Memória |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
Uso |
|
Observação:os valores dos atributos serão mostrados em quatro valores: commit, "init", "max" e "used". |
Como usar a API Edge Application verifica
Você pode executar a verificação de API no servidor de gerenciamento (ou em qualquer servidor) invocando o seguinte Comando CURL:
curl http://<host>:8080/v1/servers/self/up
Em que <host> é o endereço IP do Serviço de gerenciamento Servidor.
Essa chamada retorna o valor "true" e "false". Se verdadeiro, isso significa que o nó está ativo e o serviço Java está em execução.
Se você não receber uma resposta HTTP 200 (OK), o Edge não poderá responder à porta 8080 solicitações.
Solução de problemas
- Faça login no servidor e execute o seguinte comando:
/<inst_root>/apigee/apigee-service/bin/apigee-service o status do Edge-management-server - Se o serviço não estiver em execução, inicie-o:
/<inst_root>/apigee/apigee-service/bin/apigee-service início do servidor de gerenciamento de borda
Como usar o Edge Aplicativo: verificações de usuários, organização e implantação
O servidor de gerenciamento desempenha um papel vital na manutenção de todos os outros lotes em cada local no local e instalação. Você pode verificar o status do usuário, da organização e da implantação no servidor de gerenciamento executando os seguintes comandos:
curl -u userEmail:password http://localhost:8080/v1/users curl -u userEmail:password http://localhost:8080/v1/organizations curl -u userEmail:password http://localhost:8080/v1/organizations/orgname/deployments
O sistema deve exibir "implantado" o status de todas as chamadas. Se eles falharem, faça o seguinte:
- Verifique os registros do Management Server em <inst_root>/apigee/var/log/edge-management-server. se há erros.
- Fazer uma chamada no Management Server para verificar se ele está funcionando corretamente.
- Remova o servidor do ELB e reinicie o servidor de gerenciamento.
/<inst_root>/apigee/apigee-service/bin/apigee-service reinicialização do Edge-management-server
Roteador
Você pode executar a verificação de API no roteador (ou em qualquer servidor) invocando o seguinte CURL: comando:
curl http://<host>:8081/v1/servers/self/up
Em que host é o endereço IP do roteador.
Essa chamada retorna o valor "true" e "false". Se verdadeiro, significa que o nó está ativo e o Router quando um serviço está em execução.
Se você não receber uma resposta HTTP 200 (OK), o Edge não poderá responder à porta 8081 solicitações.
Solução de problemas
- Faça login no servidor e execute os seguintes comandos:
/<inst_root>/apigee/apigee-service/bin/apigee-service status do roteador de borda - Se o serviço não estiver em execução, inicie-o
/<inst_root>/apigee/apigee-service/bin/apigee-service início do roteador de borda - Após a reinicialização, verifique se ele está funcionando
curl -v http://localhost:port/v1/servers/self/up
Em que port é 8081 para o Roteador e 8082 para o Processador de mensagens.
processador de mensagens
Usando JConsole para monitorar a verificação de integridade do sistema e processar informações
Siga o mesmo procedimento descrito acima para o servidor de gerenciamento.
Observação: use a porta 1101.
Como usar a API Edge Application verifica
Siga o mesmo descrito acima para o roteador.
Observação: use a porta 8082.
Como usar as verificações de fluxo de mensagens JMX
Siga o mesmo procedimento descrito acima para o servidor de gerenciamento.
Observação: use a porta 1101.
Servidor Qpid
Como usar o JConsole para monitorar a verificação de integridade do sistema e processar informações
Siga o mesmo procedimento descrito acima para o servidor de gerenciamento.
Observação: use a porta 1102.
Como usar as verificações da API Edge Application
Siga o mesmo procedimento descrito acima para o servidor de gerenciamento.
Observação: use a porta 8083. O comando CURL a seguir também suportados para Qpid Server:
curl http://<qpid_IP>:8083/v1/servers/self
Servidor Postgres
Usando JConsole para monitorar a verificação de integridade do sistema e processar informações
Siga o mesmo procedimento descrito acima para o servidor de gerenciamento.
Observação: use a porta 1103.
Como usar as verificações da API Edge Application
Siga o mesmo procedimento descrito acima para o servidor de gerenciamento.
Observação: use a porta 8084. O comando CURL a seguir também compatível com o servidor Postgres:
curl http://<postgres_IP>:8084/v1/servers/self
Como usar o Edge Organização do aplicativo e verificações do ambiente
É possível verificar o nome da organização e do ambiente integrados ao servidor Postgres emitindo os seguintes comandos CURL:
curl http:// <postgres_IP>:8084/v1/servers/self/organizations
Observação: use a porta 8084.
O sistema vai mostrar o nome da organização e do ambiente.
Como usar o axstatus do aplicativo de borda checava
É possível verificar o status dos servidores de análise emitindo o seguinte CURL: kubectl.
curl -u userEmail:password http://<host>:<port>/v1/organizations/<orgname>/environments/<envname>/provisioning/axstatus
O sistema vai mostrar o status "CONCLUÍDO" para todos os servidores de análise. A saída do CURL acima é mostrado abaixo:
{ "environments" : [ { "components" : [ { "message" : "success at Thu Feb 28 10:27:38 CET 2013", "name" : "pg", "status" : "SUCCESS", "uuid" : "[c678d16c-7990-4a5a-ae19-a99f925fcb93]" }, { "message" : "success at Thu Feb 28 10:29:03 CET 2013", "name" : "qs", "status" : "SUCCESS", "uuid" : "[ee9f0db7-a9d3-4d21-96c5-1a15b0bf0adf]" } ], "message" : "", "name" : "prod" } ], "organization" : "acme", "status" : "SUCCESS" }
Banco de dados PostgreSQL
Como usar o check_postgres.pl script
Para monitorar o banco de dados PostgreSQL, você pode usar um script de monitoramento padrão, check_postgres.pl, disponível em http://bucardo.org/wiki/Check_postgres.
Observação: o script check_postgres.pl precisa ser instalado em cada Postgres. nó.
Antes de executar o script:
- Verifique se você instalou o perl-Time-HiRes.x86_64, um módulo Perl que
implementa timers de alarme, suspensão, gettimeofday e intervalo de alta resolução. Por exemplo,
pode instalá-lo usando o seguinte comando:
instalação de yum perl-Time-HiRes.x86_64
A saída padrão das chamadas de API que usam o script check_postgres.pl é compatível com Nagios. Depois instalar o script, faça as seguintes verificações:
- Tamanho do banco de dados: verifique o tamanho do banco de dados:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critic='900 GB' - Conexão de entrada com o banco de dados: verifica o número de conexões de entrada para
banco de dados e compara com o máximo de conexões permitidas:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action back-ends - Disponibilidade e desempenho do banco de dados: verifica se o banco de dados está em execução e
disponível:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action conexão - Espaço em disco: verifica o espaço em disco:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action Disk_space --warning='80%' --critic='90%' - Organizações/ambientes integrados: verifica o número de organizações e ambientes
ambiente integrado a um nó do Postgres:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) como resultado de pg_tables onde schemaname='analytics' e tablename como '%fact'" --warning='80' --critic='90' --valtype=integer
Observação: consulte o http://bucardo.org/check_postgres/check_postgres.pl.html caso você precise de ajuda para usar os comandos acima.
Verificações de banco de dados
Você pode verificar se as tabelas corretas foram criadas no banco de dados PostgreSQL. Fazer login no PostgreSQL no banco de dados usando:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
e, em seguida, execute:
\d analytics."<org>.<env>.fact"
Verificar o status de integridade do postgres processo
Execute a verificação de API na máquina postgres invocando o seguinte comando CURL:
http://<postgres_IP>:8084/v1/servers/self/health/
Observação: use a porta 8084.
Ele retorna o status "ACTIVE" quando o processo postgres está ativo. Se o arquivo postgres processo não estiver em execução, ele retornará o status INACTIVE.
Recursos do Postgres
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
Como usar o JConsole – monitorar tarefa estatística
Use o JConsole e o seguinte URL de serviço para monitorar os atributos do JMX (MBeans) oferecido via JMX.
service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi
em que <ip address> é o IP do Cassandra. servidor.
O JMX é ativado por padrão para o Cassandra e o acesso remoto do JMX ao Cassandra não requer uma senha.
Para ativar a autenticação JMX e adicionar uma senha:
- Edite /<inst_root>/apigee/customer/application/cassandra.properties. Crie o arquivo se ele não existir.
- Adicione o seguinte ao arquivo:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Salve o arquivo.
- Copie os seguintes arquivos do seu diretório $JAVA_HOME para
/<inst_root>/apigee/data/apigee-cassandra/:
cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access - Edite jmxremote.password e
adicione nome de usuário e senha ao arquivo:
cassandra senha
em que password é a senha do JMX. - Edite jmxremote.access e
adicione o seguinte papel:
cassandra leitura e gravação - Confira se os arquivos são de propriedade da "apigee" e se o modo de arquivo é 400:
> chown apigee:apigee /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
> chmod 400 /<inst_root>/apigee/data/apigee-cassandra/jmxremote.* - Execute configure em
Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configurar - Reinicie o Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra reiniciar
Para desativar a autenticação posteriormente:
- Edite /<inst_root>/apigee/customer/application/cassandra.properties.
- Remova a seguinte linha do arquivo:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Execute a configuração no Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configurar - Reinicie o Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra reiniciar
Estatísticas do Cassandra JMX
JMX MBeans (link em inglês) |
Atributos JMX |
---|---|
ColumnFamilies/apprepo/environments ColumnFamilies/apprepo/organizations ColumnFamilies/apprepo/apiproxy_revisions ColumnFamilies/apprepo/apiproxies ColumnFamilies/audit/audits ColumnFamilies/audit/audits_ref |
PendingTasks |
MemtableColumnsCount |
|
MemtableDataSize |
|
ReadCount |
|
RecentReadLatencyMicros |
|
TotalReadLatencyMicros |
|
WriteCount |
|
RecentWriteLatencyMicros |
|
TotalWriteLatencyMicros |
|
TotalDiskSpaceUsed |
|
LiveDiskSpaceUsed |
|
LiveSSTableCount |
|
BloomFilterFalsePositives |
|
RecentBloomFilterFalseRatio |
|
BloomFilterFalseRatio |
Usar o utilitário nodetool para gerenciar nós do cluster
O utilitário nodetool, que é uma interface de linha de comando do Cassandra, é usado para gerenciar nós do cluster. O utilitário pode ser encontrado em <inst_root>/apigee/apigee-cassandra/bin.
Para mais informações sobre o utilitário nodetool, consulte http://www.datastax.com/docs/1.0/references/nodetool.
As seguintes chamadas podem ser feitas em todos os nós de cluster do Cassandra:
- Informações gerais do toque (também possíveis para um único nó do Cassandra): procure o
"Para cima" e "Normal" para todos os nós.
[host]# nodetool -h localhost toque
A saída do comando acima tem a seguinte aparência:
DC de endereço Propriedades de carregamento do estado do status do rack Token
192.168.124.201 dc1 ra1 Normal 1,67 MB 33,33% 0
192.168.124.202 dc1 ra1 Normal 1,68 MB 33,33% 56713727820156410577229101238628035242
192.168.124.203 dc1 ra1 Normal 1,67 MB 33.33% 113427455640312821154458202477256070484 - Informações gerais sobre nós (chamada por nó)
nodetool -h informações do localhost
A saída do comando acima vai ficar assim:
Token : 0
Fofoca ativa : verdadeiro
Carregamento : 1,67 MB
Geração No : 1361968765
Tempo de atividade (segundos) : 78108
Memória de heap (MB) : 46,80 / 772.00
Data center : dc1
Rack : ra1
Exceções : 0 - Status do servidor thrift (disponibilização da API do cliente)
host]# nodetool -h localhost statusthrift
A saída do comando acima mostra o status "running". - Status das operações de streaming de dados: observe o tráfego do Cassandra.
nós
nodetool -h localhost netstats 192.168.124.203
A saída do comando acima vai ficar assim:
Modo: NORMAL
Não há streaming para /192.168.124.203
Não há streaming de /192.168.124.203
Nome do pool ativo pendente concluído
Comandos n/a 0 1.688
Respostas n/d 0 292277
Monitoramento do Cassandra (interface)
Acesse o URL do opscenter do Datatax: http://www.datastax.com/products/opscenter.
Recurso do Cassandra
Acesse o seguinte URL: http://www.datastax.com/docs/1.0/operations/monitoring.
Apache ZooKeeper
Verificando status do ZooKeeper
- Verifique se o processo do ZooKeeper está em execução. O ZooKeeper grava um arquivo PID em <inst_root>/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
- Teste as portas do ZooKeeper para garantir que você possa estabelecer uma conexão TCP com as portas 2181 e 3888 em todos os servidores do ZooKeeper.
- Verifique se é possível ler valores do banco de dados do ZooKeeper. Conectar-se usando um ZooKeeper biblioteca de cliente (ou /<inst_root>/apigee/apigee-zookeeper/bin/zkCli.sh) e ler um valor do banco de dados.
- Verifique o status:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
Como usar palavras de quatro letras do ZooKeeper
O ZooKeeper pode ser monitorado por meio de um pequeno conjunto de comandos (palavras de quatro letras) que são enviados a porta 2181 usando netcat (nc) ou telnet.
Para mais informações sobre os comandos do ZooKeeper, consulte: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.
Exemplo:
- srvr: lista os detalhes completos para o servidor.
- stat: lista detalhes breves para o servidor e os clientes conectados.
Os seguintes comandos podem ser emitidos para a porta do ZooKeeper:
- Execute o comando de quatro letras ruok para testar se o servidor está sendo executado em um estado sem erro. Um
bem-sucedida, retornará "imok".
echo ruok | nc <host> 2.181
Retorna:
imok (em inglês) - Execute o comando de quatro letras, "stat" para listar o desempenho do servidor e os clientes conectados
estatísticas.
echo stat | nc <host> 2.181
Retorna:
Versão do Zookeeper: 3.4.5-1392090, criado em 30/09/2012 17:52 GMT
Clientes:
/0:0:0:0:0:0:0:1:33467[0](queued=0,recved=1,sent=0)
/192.168.124.201:42388[1](queued=0,recved=8433,sent=8433)
/192.168.124.202:42185[1](queued=0,recved=1339,sent=1347)
/192.168.124.204:39296[1](queued=0,recved=7688,sent=7692)
Latência mínima/média/máx.: 0/0/128
Recebido: 26144
Enviado: 26160
Conexões: 4
Excepcional: 0
Zxid: 0x2000002c2
Modo: seguidor
Contagem de nós: 283
Observação: às vezes, é importante ver se um ZooKeeper está no Modo: líder, seguidor ou observador. - Se o netcat (nc) não estiver disponível, use o Python como alternativa. Criar um arquivo
chamado zookeeper.py, que
contém o seguinte:
importar horário, soquete,
sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
c.connect((sys.argv[1], 2181))
c.send(sys.argv[2])
time.sleep(0.1)
imprimir c.recv(512)
Agora execute estas linhas Python:
python Zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
OpenLDAP
Teste de nível do LDAP
Você pode monitorar o OpenLDAP para ver se as solicitações específicas são exibidas corretamente. Em outras palavras, procure uma pesquisa específica que retorne o resultado correto.
- Usar ldapsearch
(yum install openldap-clients)
para consultar a entrada do administrador do sistema. Essa entrada é usada para autenticar todas as chamadas de API.
ldapsearch -b "uid=admin,ou=users,ou=global,dc=apigee,dc=com" -x -W -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -LLL
Em seguida, você precisará digitar a senha do administrador do LDAP:
Digite a senha do LDAP:
Depois de inserir a senha, você verá uma resposta no formulário:
dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com
objetoClass: organizacionalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
UID: admin
cn: administrador
sn: admin
userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ=
=
e-mail: opdk@google.com - Verifique se o servidor de gerenciamento ainda está conectado ao problema LDAP:
curl -u <userEMail>:<senha> http://localhost:8080/v1/users/<ADMIN>
Retorna:
{
"emailId" : <ADMIN>,
"nome" : "administrador",
"sobrenome" : "administrador"
}
Também é possível monitorar os caches do OpenLDAP, o que reduz o número de acessos ao disco e, assim, melhorar o desempenho do sistema. O monitoramento e o ajuste do tamanho do cache na O servidor OpenLDAP pode afetar muito o desempenho do servidor de diretório. Para consultar o registro (<inst_root>/apigee/var/log) para conseguir informações sobre o cache.