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à.
Scraping di ulteriori origini Prometheus e importazione di tali parametri
L' CloudWatch agente con monitoraggio Prometheus necessita di due configurazioni per analizzare le metriche di Prometheus. Una è per le configurazioni standard Prometheus come documentato in <scrape_config>
Per ECS i cluster Amazon, le configurazioni sono integrate con Parameter Store o AWS Systems Manager tramite i segreti nella definizione delle ECS attività di Amazon:
-
Il segreto
PROMETHEUS_CONFIG_CONTENT
è per la configurazione di scraping di Prometheus. -
Il segreto
CW_CONFIG_CONTENT
è per la configurazione dell' CloudWatch agente.
Per acquisire ulteriori fonti di metriche Prometheus e importare tali metriche in, è necessario modificare sia la configurazione dello scrape di Prometheus che la configurazione dell'agente, quindi ridistribuire l'agente con la configurazione aggiornata. CloudWatch CloudWatch
VPCrequisiti del gruppo di sicurezza
Le regole di ingresso dei gruppi di sicurezza per i carichi di lavoro Prometheus devono aprire le porte CloudWatch Prometheus all'agente per lo scraping delle metriche di Prometheus tramite l'IP privato.
Le regole di uscita del gruppo di sicurezza per l' CloudWatch agente devono consentire all'agente di connettersi alla CloudWatch porta dei carichi di lavoro Prometheus tramite IP privato.
Configurazione di Prometheus Scrape
<scrape_config>L' CloudWatch agente supporta le configurazioni scrape standard di Prometheus come documentato nella documentazione di Prometheus.https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
global: scrape_interval: 1m scrape_timeout: 10s
-
scrape_interval: definisce con quale frequenza recuperare le destinazioni.
-
scrape_timeout: definisce quanto tempo attendere prima che una richiesta di scrape scada.
È inoltre possibile definire valori diversi per queste impostazioni a livello di processo, per ignorare le configurazioni globali.
Attività di scraping di Prometheus
Nei file dell' CloudWatch agente sono già configurati alcuni processi di scraping predefiniti. YAML Ad esempio, nei YAML file per Amazon ECS comecwagent-ecs-prometheus-metric-for-bridge-host.yaml
, i lavori di scraping predefiniti sono configurati nella ecs_service_discovery
sezione.
"ecs_service_discovery": { "sd_frequency": "1m", "sd_result_file": "/tmp/cwagent_ecs_auto_sd.yaml", "docker_label": { }, "task_definition_list": [ { "sd_job_name": "ecs-appmesh-colors", "sd_metrics_ports": "9901", "sd_task_definition_arn_pattern": ".*:task-definition\/.*-ColorTeller-(white):[0-9]+", "sd_metrics_path": "/stats/prometheus" }, { "sd_job_name": "ecs-appmesh-gateway", "sd_metrics_ports": "9901", "sd_task_definition_arn_pattern": ".*:task-definition/.*-ColorGateway:[0-9]+", "sd_metrics_path": "/stats/prometheus" } ] }
Ciascuno di questi obiettivi predefiniti viene eliminato e le metriche vengono inviate agli eventi di registro utilizzando il CloudWatch formato metrico incorporato. Per ulteriori informazioni, consulta Incorporamento dei parametri nei log.
Gli eventi di registro ECS dei cluster Amazon vengono archiviati nel file//aws/ecs/containerinsightscluster_name
gruppo di log /prometheus.
Ogni processo di scraping è contenuto in un flusso di log diverso in questo gruppo di log.
Per aggiungere un nuovo obiettivo di scraping, aggiungete una nuova voce nella task_definition_list
sezione sotto la ecs_service_discovery
sezione. del file e riavviate l'YAMLagente. Per un esempio di questo processo, vedere Tutorial per aggiungere un nuovo target di scrape Prometheus: Prometheus Server metrics API.
CloudWatch configurazione dell'agente per Prometheus
Il file di configurazione CloudWatch dell'agente ha una prometheus
sezione sotto metrics_collected
per la configurazione dello scraping di Prometheus. Include le opzioni di configurazione seguenti:
-
cluster_name: specifica il nome del cluster da aggiungere come etichetta nell'evento log. Questo campo è facoltativo. Se lo ometti, l'agente può rilevare il nome del ECS cluster Amazon.
-
log_group_name: specifica il nome del gruppo di log per i parametri Prometheus sottoposti a scraping. Questo campo è facoltativo. Se lo CloudWatch ometti, usa//aws/ecs/containerinsights
cluster_name
/prometheus per i log dei cluster Amazon. ECS -
prometheus_config_path: specifica il percorso del file di configurazione di scraping di Prometheus. Se il valore di questo campo inizia con
env:
, il contenuto del file di configurazione di scraping di Prometheus verrà recuperato dalla variabile di ambiente del container. Non modificare questo campo. -
ecs_service_discovery — è la sezione per specificare le configurazioni delle funzioni di individuazione automatica del target Amazon Prometheus. ECS Sono supportate due modalità per scoprire gli obiettivi di Prometheus: scoperta basata sull'etichetta docker del contenitore o scoperta basata sull'espressione regolare di definizione delle attività di Amazon. ECS ARN Puoi utilizzare le due modalità insieme e l' CloudWatch agente deduplicherà i target rilevati in base a: {private_ip}: {port}/{metrics_path}.
La sezione
ecs_service_discovery
può contenere i seguenti campi:-
sd_frequency
è la frequenza di individuazione degli elementi di esportazione di Prometheus. Specifica un numero e un suffisso di unità. Ad esempio,1m
per una volta al minuto o30s
per una volta ogni 30 secondi. I suffissi di unità validi sonons
,us
,ms
,s
,m
eh
.Questo campo è facoltativo. Il valore predefinito è 60 secondi (1 minuto).
-
sd_target_cluster
è il nome del ECS cluster Amazon di destinazione per l'individuazione automatica. Questo campo è facoltativo. L'impostazione predefinita è il nome del ECS cluster Amazon in cui è installato l' CloudWatch agente. -
sd_cluster_region
è la regione del ECS cluster Amazon di destinazione. Questo campo è facoltativo. L'impostazione predefinita è la regione del ECS cluster Amazon in cui è installato l' CloudWatchagente. -
sd_result_file
è il percorso del YAML file per i risultati del target Prometheus. La configurazione di scraping di Prometheus farà riferimento a questo file. -
docker_label
è una sezione facoltativa che è possibile utilizzare per specificare la configurazione per l'individuazione dei servizi basati su etichette Docker. Se ometti questa sezione, l'individuazione basata sull'etichetta Docker non viene utilizzata. Questa sezione può contenere i seguenti campi:-
sd_port_label
è il nome dell'etichetta Docker del container che specifica la porta del container per i parametri Prometheus. Il valore predefinito èECS_PROMETHEUS_EXPORTER_PORT
. Se il contenitore non ha questa etichetta docker, l' CloudWatch agente la salterà. -
sd_metrics_path_label
è il nome dell'etichetta Docker del container che specifica il percorso dei parametri di Prometheus. Il valore predefinito èECS_PROMETHEUS_METRICS_PATH
. Se il container non dispone di questa etichetta Docker, l'agente assume il percorso predefinito/metrics
. -
sd_job_name_label
è il nome dell'etichetta Docker del container che specifica il nome del processo di scraping di Prometheus. Il valore predefinito èjob
. Se il contenitore non ha questa etichetta docker, l' CloudWatch agente utilizza il nome del lavoro nella configurazione dello scrape di Prometheus.
-
-
task_definition_list
è una sezione facoltativa che è possibile utilizzare per specificare la configurazione per l'individuazione dei servizi basati sulla definizione dell'attività. Se ometti questa sezione, l'individuazione basata sulla definizione dell'attività non viene utilizzata. Questa sezione può contenere i seguenti campi:-
sd_task_definition_arn_pattern
è lo schema da utilizzare per specificare le definizioni delle ECS attività Amazon da scoprire. Questa è un'espressione regolare. -
sd_metrics_ports
elenca containerPort le metriche di Prometheus. Separarli con punto e virgola. containerPorts -
sd_container_name_pattern
specifica i nomi dei contenitori Amazon ECS Task. Questa è un'espressione regolare. -
sd_metrics_path
specifica il percorso del parametro Prometheus. Se ometti questa opzione, l'agente assume il percorso predefinito/metrics
-
sd_job_name
specifica il nome del processo di scraping di Prometheus. Se si omette questo campo, l' CloudWatch agente utilizza il nome del lavoro nella configurazione dello scrape di Prometheus.
-
-
service_name_list_for_tasks
è una sezione facoltativa che puoi utilizzare per specificare la configurazione per l'individuazione basata sul nome del servizio. Se ometti questa sezione, l'individuazione basata sul nome del servizio non viene utilizzata. Questa sezione può contenere i seguenti campi:-
sd_service_name_pattern
è lo schema da utilizzare per specificare il ECS servizio Amazon in cui devono essere scoperte le attività. Questa è un'espressione regolare. -
sd_metrics_ports
Elenca gli elementicontainerPort
per i parametri Prometheus. Separa più elementicontainerPorts
con punto e virgola. -
sd_container_name_pattern
specifica i nomi dei contenitori Amazon ECS Task. Questa è un'espressione regolare. -
sd_metrics_path
specifica il percorso dei parametri Prometheus. Se ometti questa opzione, l'agente presume che il percorso predefinito è/metrics
. -
sd_job_name
specifica il nome del processo di scraping di Prometheus. Se si omette questo campo, l' CloudWatch agente utilizza il nome del lavoro nella configurazione dello scrape di Prometheus.
-
-
-
metric_declaration: sono sezioni che specificano la matrice di log con formato metrico incorporato da generare. Esistono
metric_declaration
sezioni per ogni sorgente Prometheus da cui l'agente importa per impostazione predefinita CloudWatch. Ciascuna di queste sezioni include i seguenti campi:-
label_matcher
è un'espressione regolare che controlla il valore delle etichette elencate insource_labels
. Le metriche corrispondenti sono abilitate per l'inclusione nel formato metrico incorporato inviato a. CloudWatchSe sono state specificate più etichette in
source_labels
, ti consigliamo di non utilizzare^
o caratteri$
nell'espressione regolare perlabel_matcher
. -
source_labels
specifica il valore delle etichette controllate dalla rigalabel_matcher
. -
label_separator
specifica il separatore da utilizzare nella rigalabel_matcher
se sono specificatisource_labels
multipli. Il valore predefinito è;
. È possibile visualizzare questo valore predefinito utilizzato nella rigalabel_matcher
nell'esempio seguente. -
metric_selectors
è un'espressione regolare che specifica le metriche da raccogliere e a cui inviare. CloudWatch -
dimensions
è l'elenco di etichette da utilizzare come CloudWatch dimensioni per ogni metrica selezionata.
-
Guarda l'esempio metric_declaration
che segue.
"metric_declaration": [ { "source_labels":[ "Service", "Namespace"], "label_matcher":"(.*node-exporter.*|.*kube-dns.*);kube-system$", "dimensions":[ ["Service", "Namespace"] ], "metric_selectors":[ "^coredns_dns_request_type_count_total$" ] } ]
In questo esempio viene configurata una sezione di formato metrica incorporata da inviare come evento di log se sono soddisfatte le seguenti condizioni:
-
Il valore di
Service
contienenode-exporter
okube-dns
. -
Il valore di
Namespace
èkube-system
. -
La metrica Prometheus
coredns_dns_request_type_count_total
contiene le etichette siaService
cheNamespace
.
L'evento di log inviato include la seguente sezione evidenziata:
{ "CloudWatchMetrics":[ { "Metrics":[ { "Name":"coredns_dns_request_type_count_total" } ], "Dimensions":[ [ "Namespace", "Service" ] ], "Namespace":"ContainerInsights/Prometheus" } ], "Namespace":"kube-system", "Service":"kube-dns", "coredns_dns_request_type_count_total":2562, "eks_amazonaws_com_component":"kube-dns", "instance":"192.168.61.254:9153", "job":"kubernetes-service-endpoints", ... }