As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Esta seção contém um conjunto de consultas predefinidas que executam casos de uso típicos, como análise de TCO e visualização de rede. Você pode usar essas consultas como estão ou adequá-las às suas necessidades.
Como usar uma consulta predefinida
-
No AWS Migration Hub console, escolha Servidores no painel de navegação.
-
Para abrir o console do Amazon Athena, escolha Explorar dados no Amazon Athena.
-
Na página Editor de consultas, no painel de navegação, em Banco de dados, verifique se application_discovery_service_database está selecionado.
-
Escolha o sinal de adição (+) no Editor de consultas para criar uma guia para uma nova consulta.
-
Copie uma das consultas de Consultas predefinidas.
-
Cole a consulta no painel de consultas da guia de nova consulta que você acabou de criar.
-
Escolha Run Query.
Consultas predefinidas
Escolha um título para ver informações sobre a consulta.
Essa função auxiliar de exibição recupera endereços IP e nomes de host para um determinado servidor. Você pode usar essa exibição em outras consultas. Para obter informações sobre como criar uma visualização, consulte CREATE VIEW no Guia do usuário do Amazon Athena.
CREATE OR REPLACE VIEW hostname_ip_helper AS
SELECT DISTINCT
"os"."host_name"
, "nic"."agent_id"
, "nic"."ip_address"
FROM
os_info_agent os
, network_interface_agent nic
WHERE ("os"."agent_id" = "nic"."agent_id");
Essa consulta pode ajudar você a realizar a validação de dados. Se você implantou agentes em uma série de servidores em sua rede, poderá usar essa consulta para saber se há outros servidores na sua rede sem agentes implantados neles. Nessa consulta, examinamos o tráfego de rede de entrada e de saída e filtramos o tráfego apenas para endereços IP privados. Ou seja, endereços IP que começam com 192
, 10
ou 172
.
SELECT DISTINCT "destination_ip" "IP Address" ,
(CASE
WHEN (
(SELECT "count"(*)
FROM network_interface_agent
WHERE ("ip_address" = "destination_ip") ) = 0) THEN
'no'
WHEN (
(SELECT "count"(*)
FROM network_interface_agent
WHERE ("ip_address" = "destination_ip") ) > 0) THEN
'yes' END) "agent_running"
FROM outbound_connection_agent
WHERE ((("destination_ip" LIKE '192.%')
OR ("destination_ip" LIKE '10.%'))
OR ("destination_ip" LIKE '172.%'))
UNION
SELECT DISTINCT "source_ip" "IP ADDRESS" ,
(CASE
WHEN (
(SELECT "count"(*)
FROM network_interface_agent
WHERE ("ip_address" = "source_ip") ) = 0) THEN
'no'
WHEN (
(SELECT "count"(*)
FROM network_interface_agent
WHERE ("ip_address" = "source_ip") ) > 0) THEN
'yes' END) "agent_running"
FROM inbound_connection_agent
WHERE ((("source_ip" LIKE '192.%')
OR ("source_ip" LIKE '10.%'))
OR ("source_ip" LIKE '172.%'));
É possível usar essa consulta para analisar o desempenho do sistema e o dados de padrão de utilização para seus servidores locais que têm agentes instalados. A consulta combina as tabelas system_performance_agent
e os_info_agent
para identificar o nome do host de cada servidor. Essa consulta retorna os dados de utilização de séries temporais (em intervalos de 15 minutos) para todos os servidores nos quais os agentes estão em execução.
SELECT "OS"."os_name" "OS Name" ,
"OS"."os_version" "OS Version" ,
"OS"."host_name" "Host Name" ,
"SP"."agent_id" ,
"SP"."total_num_cores" "Number of Cores" ,
"SP"."total_num_cpus" "Number of CPU" ,
"SP"."total_cpu_usage_pct" "CPU Percentage" ,
"SP"."total_disk_size_in_gb" "Total Storage (GB)" ,
"SP"."total_disk_free_size_in_gb" "Free Storage (GB)" ,
("SP"."total_disk_size_in_gb" - "SP"."total_disk_free_size_in_gb") "Used Storage" ,
"SP"."total_ram_in_mb" "Total RAM (MB)" ,
("SP"."total_ram_in_mb" - "SP"."free_ram_in_mb") "Used RAM (MB)" ,
"SP"."free_ram_in_mb" "Free RAM (MB)" ,
"SP"."total_disk_read_ops_per_sec" "Disk Read IOPS" ,
"SP"."total_disk_bytes_written_per_sec_in_kbps" "Disk Write IOPS" ,
"SP"."total_network_bytes_read_per_sec_in_kbps" "Network Reads (kbps)" ,
"SP"."total_network_bytes_written_per_sec_in_kbps" "Network Write (kbps)"
FROM "sys_performance_agent" "SP" , "OS_INFO_agent" "OS"
WHERE ("SP"."agent_id" = "OS"."agent_id") limit 10;
Esta consulta obtém os detalhes sobre o tráfego de saída para cada serviço, juntamente com o número da porta e os detalhes do processo.
Antes de executar a consulta, caso ainda não tenha feito isso, você deve criar a tabela iana_service_ports_import
que contém o banco de dados de registro de porta IANA baixado da IANA. Para obter informações sobre como criar essa tabela, consulte Criando a tabela de importação do registro de portas IANA.
Depois que a tabela iana_service_ports_import
for criada, crie duas funções auxiliares de visualização para rastrear o tráfego de saída. Para obter informações sobre como criar uma visualização, consulte CREATE VIEW no Guia do usuário do Amazon Athena.
Como criar funções auxiliares de controle de saída
Abra o console do Athena em https://console.aws.amazon.com/athena/
. -
Crie a
valid_outbound_ips_helper
exibição usando a seguinte função auxiliar que lista todos os endereços IP de destino de saída distintos.CREATE OR REPLACE VIEW valid_outbound_ips_helper AS SELECT DISTINCT "destination_ip" FROM outbound_connection_agent;
-
Crie a visualização
outbound_query_helper
usando a função auxiliar a seguir que determina a frequência de comunicação para o tráfego de saída.CREATE OR REPLACE VIEW outbound_query_helper AS SELECT "agent_id" , "source_ip" , "destination_ip" , "destination_port" , "agent_assigned_process_id" , "count"(*) "frequency" FROM outbound_connection_agent WHERE (("ip_version" = 'IPv4') AND ("destination_ip" IN (SELECT * FROM valid_outbound_ips_helper ))) GROUP BY "agent_id", "source_ip", "destination_ip", "destination_port", "agent_assigned_process_id";
-
Depois de criar a tabela
iana_service_ports_import
e suas duas funções auxiliares, você poderá executar a seguinte consulta para obter os detalhes do tráfego de saída de cada serviço, juntamente com o número da porta e os detalhes do processo.SELECT hip1.host_name "Source Host Name", outbound_connections_results0.source_ip "Source IP Address", hip2.host_name "Destination Host Name", outbound_connections_results0.destination_ip "Destination IP Address", outbound_connections_results0.frequency "Connection Frequency", outbound_connections_results0.destination_port "Destination Communication Port", outbound_connections_results0.servicename "Process Service Name", outbound_connections_results0.description "Process Service Description" FROM (SELECT DISTINCT o.source_ip, o.destination_ip, o.frequency, o.destination_port, ianap.servicename, ianap.description FROM outbound_query_helper o, iana_service_ports_import ianap WHERE o.destination_port = TRY_CAST(ianap.portnumber AS integer)) AS outbound_connections_results0 LEFT OUTER JOIN hostname_ip_helper hip1 ON outbound_connections_results0.source_ip = hip1.ip_address LEFT OUTER JOIN hostname_ip_helper hip2 ON outbound_connections_results0.destination_ip = hip2.ip_address
Esta consulta obtém informações sobre o tráfego de entrada para cada serviço, juntamente com o número da porta e os detalhes do processo.
Antes de executar esta consulta, caso ainda não tenha feito isso, você deve criar a tabela iana_service_ports_import
que contém o banco de dados de registro de porta IANA baixado da IANA. Para obter informações sobre como criar essa tabela, consulte Criando a tabela de importação do registro de portas IANA.
Depois que a tabela iana_service_ports_import
for criada, crie duas funções auxiliares de visualização para rastrear o tráfego de entrada. Para obter informações sobre como criar uma visualização, consulte CREATE VIEW no Guia do usuário do Amazon Athena.
Como criar funções auxiliares de controle de entrada
Abra o console do Athena em https://console.aws.amazon.com/athena/
. -
Crie a visualização
valid_inbound_ips_helper
usando a função auxiliar a seguir que lista todos os endereços IP de origem de entrada distintos.CREATE OR REPLACE VIEW valid_inbound_ips_helper AS SELECT DISTINCT "source_ip" FROM inbound_connection_agent;
-
Crie a visualização
inbound_query_helper
usando a função auxiliar a seguir que determina a frequência de comunicação do tráfego de entrada.CREATE OR REPLACE VIEW inbound_query_helper AS SELECT "agent_id" , "source_ip" , "destination_ip" , "destination_port" , "agent_assigned_process_id" , "count"(*) "frequency" FROM inbound_connection_agent WHERE (("ip_version" = 'IPv4') AND ("source_ip" IN (SELECT * FROM valid_inbound_ips_helper ))) GROUP BY "agent_id", "source_ip", "destination_ip", "destination_port", "agent_assigned_process_id";
-
Depois de criar a tabela
iana_service_ports_import
e suas duas funções auxiliares, você poderá executar a seguinte consulta para obter os detalhes do tráfego de entrada de cada serviço, juntamente com o número da porta e os detalhes do processo.SELECT hip1.host_name "Source Host Name", inbound_connections_results0.source_ip "Source IP Address", hip2.host_name "Destination Host Name", inbound_connections_results0.destination_ip "Destination IP Address", inbound_connections_results0.frequency "Connection Frequency", inbound_connections_results0.destination_port "Destination Communication Port", inbound_connections_results0.servicename "Process Service Name", inbound_connections_results0.description "Process Service Description" FROM (SELECT DISTINCT i.source_ip, i.destination_ip, i.frequency, i.destination_port, ianap.servicename, ianap.description FROM inbound_query_helper i, iana_service_ports_import ianap WHERE i.destination_port = TRY_CAST(ianap.portnumber AS integer)) AS inbound_connections_results0 LEFT OUTER JOIN hostname_ip_helper hip1 ON inbound_connections_results0.source_ip = hip1.ip_address LEFT OUTER JOIN hostname_ip_helper hip2 ON inbound_connections_results0.destination_ip = hip2.ip_address
Esta consulta identifica o software em execução com base nos números de porta.
Antes de executar esta consulta, caso ainda não tenha feito isso, você deve criar a tabela iana_service_ports_import
que contém o banco de dados de registro de porta IANA baixado da IANA. Para obter informações sobre como criar essa tabela, consulte Criando a tabela de importação do registro de portas IANA.
Execute a consulta a seguir para identificar o software em execução com base nos números de porta.
SELECT o.host_name "Host Name",
ianap.servicename "Service",
ianap.description "Description",
con.destination_port,
con.cnt_dest_port "Destination Port Count"
FROM (SELECT agent_id,
destination_ip,
destination_port,
Count(destination_port) cnt_dest_port
FROM inbound_connection_agent
GROUP BY agent_id,
destination_ip,
destination_port) con,
(SELECT agent_id,
host_name,
Max("timestamp")
FROM os_info_agent
GROUP BY agent_id,
host_name) o,
iana_service_ports_import ianap
WHERE ianap.transportprotocol = 'tcp'
AND con.destination_ip NOT LIKE '172%'
AND con.destination_port = ianap.portnumber
AND con.agent_id = o.agent_id
ORDER BY cnt_dest_port DESC;
Criando a tabela de importação do registro de portas IANA
Algumas das consultas predefinidas exigem uma tabela chamada iana_service_ports_import
que contém informações baixadas da IANA (Internet Assigned Numbers Authority).
Como criar a tabela iana_service_ports_import
-
Faça download do arquivo CSV do banco de dados de registro de porta IANA de Service Name and Transport Protocol Port Number Registry
em iana.org. -
Faça upload do arquivo no Amazon S3. Para obter mais informações, consulte Como faço upload de arquivos e pastas em um bucket do S3?
-
Crie uma nova tabela em Athena chamada.
iana_service_ports_import
Para obter instruções, consulte Criar uma tabela no Guia do usuário do Amazon Athena. No exemplo a seguir, você precisa substituirmy_bucket_name
pelo nome do bucket do S3 para o qual você fez upload do arquivo CSV na etapa anterior.CREATE EXTERNAL TABLE IF NOT EXISTS iana_service_ports_import ( ServiceName STRING, PortNumber INT, TransportProtocol STRING, Description STRING, Assignee STRING, Contact STRING, RegistrationDate STRING, ModificationDate STRING, Reference STRING, ServiceCode STRING, UnauthorizedUseReported STRING, AssignmentNotes STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = ',', 'quoteChar' = '"', 'field.delim' = ',' ) LOCATION 's3://
my_bucket_name
/' TBLPROPERTIES ('has_encrypted_data'='false',"skip.header.line.count"="1");