AWS Application Discovery Service non è più aperto a nuovi clienti. In alternativa, utilizza AWS Transform che offre funzionalità simili. Per ulteriori informazioni, vedere Modifica della disponibilità di AWS Application Discovery Service.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di query predefinite in Amazon Athena
Questa sezione contiene un insieme di query predefinite che eseguono casi d'uso tipici, ad esempio l'analisi TCO e la visualizzazione di rete. È possibile utilizzare queste query così come sono o modificarle in base alle esigenze.
Per utilizzare una query predefinita
-
Nella AWS Migration Hub console, scegli Server nel riquadro di navigazione.
-
Per aprire la console Amazon Athena, scegli Esplora dati in Amazon Athena.
-
Nella pagina Editor di query, nel riquadro di navigazione in Database, assicurarsi che sia selezionato application_discovery_service_database.
-
Scegliere il segno più (+) nell'editor delle query per creare una scheda per una nuova query.
-
Copiare una delle query da Query predefinite.
-
Incollare la query nel riquadro delle query della nuova scheda di query appena creata.
-
Scegliere Run Query (Esegui query).
Query predefinite
Scegliere un titolo per visualizzare le informazioni sulla query.
Questa funzione helper di visualizzazione consente di recuperare gli indirizzi IP e i nomi host per un determinato server. È possibile utilizzare questa visualizzazione in altre query. Per informazioni su come creare una vista, consulta CREATE VIEW nella Guida per l'utente di 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");
Questa query consente di eseguire la convalida dei dati. Se hai distribuito agenti su una serie di server nella rete, puoi usare questa query per capire se ci sono altri server nella rete su cui non sono stati distribuiti agenti. In questa query, viene esaminato il traffico di rete in entrata e in uscita e viene filtrato solo il traffico per gli indirizzi IP privati. Si tratta quindi degli indirizzi IP che iniziano con 192, 10 o 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.%'));
È possibile usare questa query per analizzare i dati delle prestazioni del sistema e dei modelli di utilizzo per i server locali su cui sono installati agenti. La query combina la tabella system_performance_agent con la tabella os_info_agent per identificare il nome host per ogni server. Questa query restituisce i dati di utilizzo delle serie temporali (in intervalli di 15 minuti) per tutti i server su cui sono eseguiti agenti.
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;
Questa query ottiene i dettagli sul traffico in uscita per ogni servizio, insieme al numero di porta e ai dettagli del processo.
Prima di eseguire la query, se non è già stata eseguita questa operazione, è necessario creare la tabella iana_service_ports_import contenente il database del registro delle porte IANA scaricato da IANA. Per informazioni su come creare questa tabella, consulta Creazione della tabella di importazione del registro delle porte IANA.
Dopo aver creato la tabella iana_service_ports_import, creare due funzioni helper di visualizzazione per il monitoraggio del traffico in uscita. Per informazioni su come creare una vista, consulta CREATE VIEW nella Guida per l'utente di Amazon Athena.
Per creare funzioni helper per il monitoraggio in uscita
Apri la console Athena all'indirizzo https://console.aws.amazon.com/athena/
. -
Crea la
valid_outbound_ips_helpervista utilizzando la seguente funzione di supporto che elenca tutti gli indirizzi IP di destinazione in uscita distinti.CREATE OR REPLACE VIEW valid_outbound_ips_helper AS SELECT DISTINCT "destination_ip" FROM outbound_connection_agent; -
Creare la vista
outbound_query_helperutilizzando la seguente funzione helper che determina la frequenza di comunicazione per il traffico in uscita.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"; -
Dopo aver creato la tabella
iana_service_ports_importe le due funzioni helper, è possibile eseguire la seguente query per ottenere i dettagli sul traffico in uscita per ciascun servizio, insieme al numero di porta e ai dettagli del 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
Questa query ottiene le informazioni sul traffico in ingresso per ogni servizio, insieme al numero di porta e ai dettagli del processo.
Prima di eseguire questa query, se non è già stato fatto, è necessario creare la tabella iana_service_ports_import contenente il database del registro delle porte IANA scaricato da IANA. Per informazioni su come creare questa tabella, consulta Creazione della tabella di importazione del registro delle porte IANA.
Dopo aver creato la tabella iana_service_ports_import, creare due funzioni helper di visualizzazione per il monitoraggio del traffico in entrata. Per informazioni su come creare una vista, consulta CREATE VIEW nella Guida per l'utente di Amazon Athena.
Per creare funzioni helper che consentano di importare il monitoraggio
Apri la console Athena all'indirizzo https://console.aws.amazon.com/athena/
. -
Creare la vista
valid_inbound_ips_helperutilizzando la seguente funzione helper che elenca tutti i distinti indirizzi IP di origine in entrata.CREATE OR REPLACE VIEW valid_inbound_ips_helper AS SELECT DISTINCT "source_ip" FROM inbound_connection_agent; -
Creare la vista
inbound_query_helperutilizzando la seguente funzione helper che determina la frequenza di comunicazione per il traffico in entrata.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"; -
Dopo aver creato la tabella
iana_service_ports_importe le due funzioni helper, è possibile eseguire la seguente query per ottenere i dettagli sul traffico in entrata per ciascun servizio, insieme al numero di porta e ai dettagli del 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
Questa query identificherà il software in esecuzione in base ai numeri di porta.
Prima di eseguire questa query, se non è già stato fatto, è necessario creare la tabella iana_service_ports_import contenente il database del registro delle porte IANA scaricato da IANA. Per informazioni su come creare questa tabella, consulta Creazione della tabella di importazione del registro delle porte IANA.
La seguente query può essere utilizzata per identificare il software in esecuzione in base ai numeri di 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;
Creazione della tabella di importazione del registro delle porte IANA
Alcune delle query predefinite richiedono una tabella denominata iana_service_ports_import contenente informazioni scaricate da Internet Assigned Numbers Authority (IANA).
Per creare la tabella iana_service_ports_import
-
Scarica il file CSV del database del registro delle porte IANA da Service Name and Transport Protocol Port Number Registry
su iana.org. -
Carica il file su Amazon S3. Per ulteriori informazioni, consulta Come caricare file e cartelle in un bucket S3.
-
Crea una nuova tabella in Athena denominata.
iana_service_ports_importPer istruzioni, consulta Crea una tabella nella Guida per l'utente di Amazon Athena. Nell'esempio seguente, è necessario sostituiremy_bucket_namecon il nome del bucket S3 in cui è stato caricato il file CSV nella fase precedente.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");