Vous souhaitez monitorer les métriques matérielles et du noyau d'un serveur Linux ? Vous pouvez le faire avec l'intégration d'écriture à distance New Relic et de Prometheus Node Exporter. Lorsque vous combinez ces deux programmes avec le Prometheus monitoring système , vous pouvez envoyer des données à New Relic où vous pouvez les utiliser pour le dépannage.
Les instructions ici sont basées sur le guide Prometheus monitorant les hôtes Linux métriques avec le nœud exportateur. Nous répéterons certaines de ces informations et les développerons avec des étapes pour vous aider à envoyer vos données à New Relic.
Prérequis
Voici ce dont vous avez besoin pour commencer :
- Décidez quel hôte Linux vous souhaitez instrumenter. Nous montrerons ci-dessous des exemples pour les serveurs Linux dans les instances EC2, GCP et Azure .
- Assurez-vous d'avoir installé le Prometheus monitoring système . Si vous ne l'avez pas déjà fait, vous pouvez le télécharger sur le site de Prometheus.
Téléchargez et démarrez Node Exporter
Complétez les éléments suivants :
Téléchargez et démarrez Node Exporter avec les commandes ci-dessous. Assurez-vous de remplacer l'URL
wget
par la dernière version de la page de téléchargement de Prometheus :bash$# Note that <VERSION>, <OS>, and <ARCH> are placeholders.$wget https://github.com/prometheus/node_exporter/releases/download/v<VERSION>/node_exporter-<VERSION>.<OS>-<ARCH>.tar.gz$tar xvfz node_exporter-*.*-amd64.tar.gz$cd node_exporter-*.*-amd64$./node_exporterConfigurez de Node Exporter pour qu'il s'exécute en arrière-plan avec les commandes clavier
CONTROL + z
etbg
. Dans un environnement de production, vous souhaiterez configurer cela comme un service (par exemple, avecsystemd
).
Configuration
Avant de démarrer Prometheus, vous devrez apporter quelques modifications à votre fichier de configuration principal prometheus.yml
. Nous commencerons par cet exemple de base prometheus.yml
ci-dessous et y ajouterons une configuration dans les sections restantes. Vous pouvez copier ces exemples et les coller dans votre fichier de configuration.
Notez que job_name
est défini sur node
:
# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s).
# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.scrape_configs: # The job name is added as a label `job=<job_name>` to any time series scraped from this config. - job_name: node
Connecter Prometheus à New Relic
Dans votre prometheus.yml
, insérez le snippet remote_write
de l'exemple ci-dessous. Gardez à l’esprit les points suivants :
- Ceci est un snippet de Prometheus v2.26 et supérieur. Si vous utilisez une ancienne version, consultez nos principales instructions d'écriture à distance.
- Assurez-vous de remplacer
YOUR_LICENSE_KEY
par votre valeur. - Vous pouvez l'insérer au bas du fichier de configuration au même niveau d'indentation que la section
global
.
# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s).
# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.scrape_configs: # The job name is added as a label `job=<job_name>` to any time series scraped from this config. - job_name: node
remote_write: - url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=NodeExporter authorization: credentials: YOUR_LICENSE_KEY
Définir la cible
Vous pouvez configurer la cible de manière statique via le paramètre static_configs
ou utiliser la découverte dynamique avec l'un des mécanismes de découverte de service pris en charge.
Cible statique
Vous pouvez mettre en place une configuration statique sous un nouveau commentaire # Target setup
:
Cible dynamique
Au lieu de configurer une cible statique, vous pouvez configurer la découverte de services.
Configurer la relation entre l'hôte et l'APM
Si vous monitoring une application avec un agent APM sur ce serveur Linux, vous devrez effectuer une configuration supplémentaire pour activer la fonctionnalité de relation dans New Relic. Ces fonctionnalités reposent sur la relation entre l'hôte et l'application.
Les relations nécessitent des attributs qui sont supprimés par défaut dans Prometheus. Pour contourner ce problème, vous pouvez les inclure via la strophe relabel_configs
dans le fichier de configuration.
Conseil
Vous pouvez voir tous les méta-attributs disponibles sous le approprié sd_config
dans la Prometheus page de configuration .
Dans les exemples ci-dessous, nous montrons la combinaison de la découverte dynamique avec des étiquettes. Si vous utilisez une cible statique, insérez simplement la cible statique indiquée ci-dessus.
Démarrer Prometheus
Vous pouvez maintenant démarrer le scraper Prometheus.
Exécutez les actions suivantes :
bash$./prometheus --config.file=./prometheus.ymlConfigurez le scraper pour qu'il s'exécute en arrière-plan avec les commandes clavier
CONTROL + z
etbg
. Dans un environnement de production, vous souhaiterez configurer cela comme un service (par exemple, avecsystemd
).Consultez vos données dans l'UI de New Relic en allant dans one.newrelic.com > Infrastructure > Hosts.