Edge for Private Cloud v. 4.16.05
Este documento descreve as técnicas de monitoramento de componentes com suporte a uma implantação local do Apigee Edge.
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. O JMX é ativado por padrão, e o acesso remoto ao JMX não exige uma 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, roteador de borda, 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>/platform
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 às solicitações da porta 8080.
Solução de problemas
- Faça login no servidor e execute o seguinte comando:
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server status - 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 vai mostrar o status "implantado" para todas as chamadas. Se eles falharem, faça o seguinte:
- Verifique se há erros nos registros do servidor de gerenciamento (em <inst_root>/apigee/var/log/edge-management-server).
- 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, 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 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 edge-router start - Se o serviço estiver em execução, teste se ele está funcionando. Monitore o status do cluster
verificando o memberCount em relação ao reachableCount e alertando todas as instâncias com
'memberCount != reachableCount'
curl -v -u <userEmail>:<password> http://localhost:port/v1/cluster
Onde a porta é 8081 para o roteador e 8082 para o processador de mensagens. A saída acima O comando CURL é mostrado abaixo:
{
"memberCount" : 12 e
"pod" : "rea1gw001",
"reachableCount" : 12 e
"região" : "us-east-1",
"tipos" : [ "management-server" ]
* A conexão 0 com o host ms05apigee permaneceu intacta
* Encerrando a conexão no 0
} - Se não estiver funcionando, execute o seguinte comando para examinar a falha ou encontrar o
membro ofensivo.
curl http://localhost:port/v1/cluster/members
Onde a porta é 8081 para o roteador e 8082 para o processador de mensagens. A saída acima O comando CURL ficará assim:
{
"lastChange" : 0,
"latência" : 0,
"estado" : "CONECTADO",
“uuid” : "9c4c8bde-0015-4dc5-82d2-59fb326c4074"
}, {
"endereço" : "/192.168.5.209:4526",
"clusterType" : "roteador,processador de mensagens",
"lastChange" : 1350658037228,
"latência" : 3 e
"pod" : "rea1gw001",
"região" : "us-east-1",
"serverType" : "processador de mensagens",
"estado" : "CONECTADO",
“uuid” : "f1c663a1-2bb8-469f-b5fd-69a5c5aa91c5"
}, {
"endereço" : "/192.168.5.29:4526",
"clusterType" : "roteador,processador de mensagens",
"lastChange" : 1350623005057 e
"latência" : 1,
"pod" : "rea1gw001",
"região" : "us-east-1",
"serverType" : "processador de mensagens",
"estado" : " DESCONECTADO",
“uuid” : "4cfe932b-f644-4581-b1ae-df338af9c7ce"
}, {
"endereço" : "/192.168.4.182:4526",
"clusterType" : "roteador,processador de mensagens",
"lastChange" : 1350657730535,
"latência" : 1,
"pod" : "rea1gw001",
"região" : "us-east-1",
"serverType" : "processador de mensagens",
"estado" : "CONECTADO",
“uuid” : "cba063d5-b8a4-409f-9e0b-f5d403e02091"
} - Observe que o endereço IP 192.168.5.29 está desconectado. Reinicie o servidor
/<inst_root>/apigee/apigee-service/bin/apigee-service reinicialização do roteador de borda
Observação: se um roteador estiver desconectado, remova-o do ELB e e depois reinicie-o. - Depois de reiniciar, verifique se ele está funcionando
curl -v http://localhost:port/v1/cluster
Onde 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 verificações da API do Edge Application
Siga o mesmo descrito acima para o roteador.
Observação: use a porta 8082.
Como usar 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 é compatível com o 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 verificações da API do aplicativo Edge
Siga as mesmas etapas descritas acima para o servidor de gerenciamento.
Observação: use a porta 8084. O comando CURL a seguir também é compatível com o Postgres Server:
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 mostra o nome da organização e do ambiente.
Como usar a verificação de axstatus do aplicativo Edge
É 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 nó do Postgres.
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 integrados em um nó do Postgres:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result from pg_tables where schemaname='analytics' and tablename like '%fact'" --warning='80' --critical='90' --valtype=integer
Observação: consulte http://bucardo.org/check_postgres/check_postgres.pl.html caso 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. Faça login no banco de dados do PostgreSQL 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 processo postgres 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 - Verifique se os arquivos são de "apigee" e se o modo do arquivo é 400:
> chown apigee:apigee /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
> chmod 400 /<inst_root>/apigee/data/apigee-cassandra/jmxremote.* - Execute configure no
Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - 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
MBeans do JMX |
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 exibe o status "running". - Status das operações de streaming de dados: observe o tráfego do Cassandra.
nodes
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> 2181
Resultados:
Versão do Zookeeper: 3.4.5-1392090, criada em 09/30/2012 17:52 GMT
Clientes:
/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)
Tempo de resposta mínimo/médio/máximo: 0/0/128
Recebido: 26144
Enviado: 26160
Conexões: 4
Pendente: 0
Zxid: 0x2000002c2
Modo: seguidor
Número de nós: 283
Observação: às vezes, é importante saber 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 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@apigee.com - Verifique se o servidor de gerenciamento ainda está conectado ao problema LDAP:
curl -u <userEMail>:<password> 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.