newrelic.newrelic-infra

En-tête de la communauté New Relic Plus

:warning: New Relic propose une nouvelle solution Ansible qui simplifie l'évolution de vos efforts d'observabilité avec New Relic. Merci de considérer l'utilisation de cette solution à l'avenir.

Rôle Ansible pour l'agent d'infrastructure New Relic test_ansible release_ansible

Un rôle Ansible qui peut être utilisé pour installer et/ou configurer l'Agent d'Infrastructure New Relic et installer les Intégrations OHIs de New Relic Infrastructure.

Installation

Utilisez la commande suivante pour télécharger la dernière version du rôle New Relic :

ansible-galaxy install newrelic.newrelic-infra

Prise en main

Pour utiliser le rôle newrelic.newrelic-infra directement dans un playbook, il suffit de inclure le rôle dans votre playbook. Par exemple,

# myplaybook.yml
---
- hosts: webservers
  roles:
    - role: newrelic.newrelic-infra
      vars:
        nrinfragent_config:
          license_key: 12345

Pour exiger newrelic.newrelic-infra comme dépendance de rôle dans votre propre rôle, ajoutez une dépendance dans le fichier meta/main.yml de votre rôle. Par exemple,

# roles/myapp/meta/main.yml
---
dependencies:
  - role: newrelic.newrelic-infra

Utilisation

Ce rôle peut être utilisé pour les interactions suivantes avec l'Agent d'Infrastructure New Relic.

  • Installer l'agent via le gestionnaire de paquets OS
  • Installer l'agent via un tarball (Linux uniquement)
  • Installer des intégrations via le gestionnaire de paquets OS
  • Configurer l'agent
  • Configurer le service d'initialisation de l'agent

Par défaut, le rôle installera l'agent via le gestionnaire de paquets OS, installera toutes intégrations via le gestionnaire de paquets, configurera l'agent et mettra en place le service d'initialisation de l'agent. De plus, les tags suivants sont disponibles pour effectuer d'autres interactions.

  • nria_install
  • nria_install_tarball
  • nria_install_integrations
  • nria_configure
  • nria_setup_service

Utilisation de base

Le snippet suivant installera l'agent via le gestionnaire de paquets OS, configurera l'agent avec la configuration spécifiée et mettra en place le service d'initialisation OS de l'agent.

---
- hosts: ap_ne_1
  roles:
    - name: newrelic.newrelic-infra
      vars:
        log_file: /opt/logs/newrelic-infra.log
        verbose: 0
        nrinfragent_config:
          license_key: 12345
          custom_attributes:
            environment: dev

Installation à partir d'un tarball (Linux uniquement)

Pour installer en utilisant la méthode d'installation par tarball, vous devez définir la variable nrinfragent_tarball_version sur un numéro de version de tarball valide tarball version number. L'installation via la méthode d'installation par tarball exécutera également les tâches de configuration et de service d'initialisation de l'agent à moins que le tag nria_install_tarball soit spécifié.

- hosts: ap_ne_1
  roles:
    - name: newrelic.newrelic-infra
      vars:
        nrinfragent_tarball_version: 1.18.0
        nrinfragent_tarball_download_dir: /opt/newrelic/
        nrinfragent_config:
          log_file: /opt/logs/newrelic-infra.log
          verbose: 0
          license_key: 12345
          custom_attributes:
            environment: dev

Installation par tarball "hors ligne"

Pour utiliser un tarball local au lieu de le télécharger depuis Internet, vous devez définir la variable nrinfragent_tarball_local_file_path sur le chemin local du tarball depuis http://download.newrelic.com/infrastructure_agent/binaries/linux/{{ architecture }}/newrelic-infra_linux_{{ version }}_{{ architecture }}.tar.gz.

- hosts: ap_ne_1
  roles:
    - name: newrelic.newrelic-infra
      vars:
        nrinfragent_tarball_version: 1.18.0
        nrinfragent_tarball_download_dir: /opt/newrelic/
        nrinfragent_tarball_from_local: yes
        nrinfragent_config:
          log_file: /opt/logs/newrelic-infra.log
          verbose: 0
          license_key: 12345
          custom_attributes:
            environment: dev

Configuration uniquement

Le snippet suivant configurera uniquement l'agent d'une installation existante tant que le playbook est exécuté avec --tags nria_configure. Notez que le include_role doit être utilisé dans ce cas.

- hosts: ap_ne_1
  tasks:
  - name: configurer l'Agent d'Infrastructure New Relic
    include_role:
      name: newrelic.newrelic-infra
    vars:
      nrinfragent_config:
        license_key: 12345
        log_file: /opt/logs/newrelic-infra.log
        verbose: 0
        custom_attributes:
          environment: dev
    tags:
    - nria_configure

Référence

Configuration du rôle

Variables

Les variables de configuration du rôle sont documentées en ligne ainsi que ci-dessous.

nrinfragent_state (Optionnel)

Installer ou désinstaller les paquets (installation via gestionnaire de paquets). Les installations via gestionnaire de paquets sont effectuées avec le modèle de paquet Ansible.

  • 'latest' - [par défaut] installer la dernière version de l'agent. Également present.
  • 'absent' - Désinstaller l'agent.
nrinfragent_service_state (Optionnel)

Spécifie l'état du service newrelic-infra après installation. Par défaut, c'est started, ce qui garantit que le service sera en cours d'exécution. Changez-le en stopped pour installer uniquement, sans le démarrer immédiatement. Voir plus d'informations sur les valeurs valides dans la documentation du module de service Ansible.

nrinfragent_service_enabled (Optionnel)

Spécifie si le service démarrera au démarrage. Par défaut, c'est yes. Changez-le en no pour empêcher le service de démarrer automatiquement au démarrage. Voir plus d'informations sur les valeurs valides dans la documentation du module de service Ansible.

nrinfragent_config_file (Optionnel)

Spécifie un chemin personnalisé vers le fichier de configuration de l'Agent d'Infrastructure New Relic configuration file sur les hôtes cibles. Par défaut, c'est /etc/newrelic-infra.yml sur Linux et %ProgramFiles%\New Relic\newrelic-infra\newrelic-infra.yml sur Windows. Ceci peut être particulièrement utile lors des installations par tarball si vous installez à des emplacements non par défaut.

nrinfragent_config (Requis)

Utilisé pour remplir la configuration de l'agent. Au minimum, vous devez fournir license_key. Pour les options de configuration actuelles, consultez la documentation New Relic. Par exemple :

custom_attributes:
  business_unit: sales
  team: newrelic
license_key: D000000000000000000000000000000000000000
log_file: /tmp/logs.log
verbose: 1
nrinfragent_integrations (Optionnel)

Spécifie les Intégrations On-Host à installer via le gestionnaire de paquets OS. La liste des intégrations disponibles peut être trouvée ici.

Chaque paquet doit fournir son name et state. Le nom du paquet d'intégration se trouve dans la section Installer et activer de la documentation des intégrations individuelles. Par convention, leur nom est celui du service avec le préfixe nri- (nri-apache, nri-redis, etc.).

Par défaut, l'état est absent, ce qui ne télécharge pas le paquet ; vous pouvez le changer en latest ou present. Par exemple :

nrinfragent_integrations:
  - name: nri-nginx
    state: latest
  - name: nri-mysql
    state: absent

Le code source de chaque intégration est disponible sur le GitHub de New Relic.

license_key (DÉPRÉCIÉ)

Vous pouvez spécifier la clé de licence via le niveau supérieur license_key pour des raisons de compatibilité. Nous recommandons d'utiliser license_key dans nrinfragent_config à la place. Si les deux sont spécifiés, celui de nrinfragent_config a la priorité.

nrinfragent_tarball_version (Requis uniquement pour l'installation par Tarball)

Spécifie la version du tarball de l'Agent d'Infrastructure New Relic à télécharger. Linux seulement.

nrinfragent_tarball_download_dir (Requis uniquement pour l'installation par Tarball)

Spécifie le répertoire sur les hôtes cibles dans lequel télécharger et dézipper le tarball.

nrinfragent_tarball_agent_dir (Optionnel, Installation par Tarball uniquement)

Spécifie le chemin du répertoire d'accueil de l'agent sur les hôtes cibles. Identique au paramètre NRIA_AGENT_DIR paramètre. Par défaut, c'est /var/db/newrelic-infra/.

nrinfragent_tarball_bin_dir (Optionnel, Installation par Tarball uniquement)

Spécifie le chemin du répertoire binaire de l'agent sur les hôtes cibles. Identique au paramètre NRIA_BIN_DIR paramètre. Par défaut, c'est /usr/local/bin/.

nrinfragent_tarball_log_file (Optionnel, Installation par Tarball uniquement)

Spécifie le chemin du fichier journal de l'agent sur les hôtes cibles. Identique au paramètre NRIA_LOG_FILE paramètre. Par défaut, c'est /var/run/newrelic-infra/newrelic-infra.log.

nrinfragent_tarball_mode (Optionnel, Installation par Tarball uniquement)

Spécifie le niveau de privilège de l'agent. Identique au paramètre NRIA_MODE paramètre. Par défaut, c'est ROOT.

nrinfragent_tarball_pid_file (Optionnel, Installation par Tarball uniquement)

Spécifie le chemin du fichier PID de l'agent sur les hôtes cibles. Identique au paramètre NRIA_PID_FILE paramètre. Par défaut, c'est /var/run/newrelic-infra/newrelic-infra.pid.

nrinfragent_tarball_plugin_dir (Optionnel, Installation par Tarball uniquement)

Spécifie le chemin du répertoire de plugins de l'agent sur les hôtes cibles. Identique au paramètre NRIA_PLUGIN_DIR paramètre. Par défaut, c'est /etc/newrelic-infra/integrations.d/.

nrinfragent_tarball_user (Optionnel, Installation par Tarball uniquement)

Spécifie l'utilisateur sous lequel le binaire de l'agent sera exécuté sur les hôtes cibles. Identique au paramètre NRIA_USER paramètre. Par défaut, c'est root.

nrinfragent_os_name (Optionnel)

Spécifie le système d'exploitation cible sur lequel l'agent d'infrastructure sera installé. Par défaut, c'est ansible_os_family. Pour une liste des systèmes d'exploitation pris en charge, consultez le fichier meta/main.yml.

nrinfragent_os_version (Optionnel)

Spécifie la version OS du paquet d'installation nécessaire pour cette machine. Par défaut, c'est ansible_lsb.major_release. Principalement utilisé pour les systèmes d'exploitation de la famille RedHat. Pour une liste des systèmes d'exploitation pris en charge, consultez le fichier meta/main.yml.

nrinfragent_os_codename (Optionnel)

Spécifie le nom de code OS du paquet d'installation nécessaire pour cette machine. Par défaut, c'est ansible_lsb.codename. Cela est utilisé sur les systèmes d'exploitation de la famille Debian. Pour une liste des systèmes d'exploitation pris en charge, consultez le fichier meta/main.yml.


nrinfragent_choco_version (Optionnel, Windows uniquement)

Spécifie la version du paquet Chocolatey à installer newrelic-infra sur Windows. Peut être utilisé pour verrouiller la version ou mettre à jour l'agent.

nrinfragent_yum_lock_timeout (Optionnel)

Utilisé pour définir la valeur lock_timeout pour le module yum d'ansible. Lorsqu'il n'est pas défini, cette valeur par défaut est de 30. Ne fonctionne que pour la version d'ansible >= 2.8.0

nrinfragent_logging (optionnel)

Utilisé pour générer un fichier journal. Pour les options de configuration actuelles, consultez la documentation New Relic. Pour créer plusieurs blocs de journaux, entrez des listes supplémentaires - name. Par exemple :

vars:
  nrinfragent_logging:
    - name: example-log
      file: /var/log/example.log # Chemin vers un fichier journal unique

    - name: docker-logs
      file: /var/lib/docker/containers/*/*.log # Chemin vers plusieurs dossiers et fichiers

    - name: systemd-example
      systemd: cupsd

    # Socket réseau TCP
    - name: syslog-tcp-test
      syslog:
        uri: tcp://0.0.0.0:5140 # Utilisez le format tcp://LISTEN_ADDRESS:PORT
        parser: rfc5424 # Le parseur syslog par défaut est rfc3164

    # Socket de domaine TCP Unix
    - name: syslog-unix-tcp-test
      syslog:
        uri: unix_tcp:///var/unix-tcp-socket-test
        unix_permissions: 0666 # La valeur par défaut est 0644. Changez à vos risques.

    # Socket UDP Unix
    - name: syslog-unix-udp-test
      syslog:
        uri: unix_udp:///var/unix-udp-socket-test
        parser: rfc5424

    - name: tcp-simple-test
      tcp:
        uri: tcp://0.0.0.0:1234 # Utilisez le format tcp://LISTEN_ADDRESS:PORT
        format: none # Texte brut - c'est le défaut pour 'tcp'
        separator: \t # Chaîne pour séparer les entrées de texte brut
      max_line_kb: 32

    - name: tcp-json-test
      tcp:
        uri: tcp://0.0.0.0:2345 # Utilisez le format tcp://LISTEN_ADDRESS:PORT
        format: json

Suppression du paquet newrelic-infra-integrations et de ses intégrations regroupées

Ceci ne s'applique que si vous avez installé le paquet newrelic-infra-integrations

Si vous souhaitez supprimer le paquet newrelic-infra-integrations ou toute intégration regroupée (nri-redis, nri-cassandra, nri-apache, nri-nginx, nri-mysql), ajoutez newrelic-infra-integrations comme premier élément de nrinfragent_integrations avec l'état absent.

nrinfragent_integrations:
  - name: newrelic-infra-integrations
    state: "absent"

Test

Le rôle infrastructure-agent-ansible utilise molecule pour les tests. Trois scénarios sont fournis.

  1. Le scénario par défaut teste l'installation et la configuration de l'agent et la mise en place des services d'initialisation OS, le tout via le gestionnaire de paquets OS.
  2. Le scénario configurer teste la configuration de l'agent uniquement en utilisant le tag nria_conigure. Notez que pour exécuter ce test, les méthodes create et converge du scénario par défaut doivent être exécutées en premier afin que le scénario configurer dispose d'un agent installé avec lequel tester.
  3. Le scénario targz teste l'installation et la configuration de l'agent et la mise en place des services d'initialisation OS en utilisant la méthode d'installation par tarball.

Les scénarios par défaut et targz peuvent être exécutés entièrement en utilisant molecule test. Notez que la commande test détruira les conteneurs après avoir testé et vérifié le scénario. Par conséquent, la meilleure façon d'exécuter le scénario configurer est d'utiliser molecule converge && molecule test -s configure && molecule destroy.

Publication sur Ansible Galaxy

Pour publier une nouvelle version sur Ansible Galaxy, suivez ces étapes :

Compatibilité

Plates-formes

  • RHEL/CentOS
    • RHEL/CentOS 8
    • RHEL/CentOS 7
    • RHEL/CentOS 6
    • RHEL/CentOS 5
  • Ubuntu
    • 18 Bionic
    • 16 Xenial
    • 14 Trusty
    • 12 Precise
  • Debian
    • 10 Buster
    • 9 Stretch
    • 8 Jessie
    • 7 Wheezy
  • SUSE Linux Enterprise
    • 12
  • Windows
    • Tous
    • Avertissement : Le support Windows dépend du paquet tiers newrelic-infra Chocolatey qui est maintenu par @ripclawffb et @xandrellas. Il est distribué sans aucune garantie ou support de New Relic.

Support

New Relic héberge et modère un forum en ligne où les clients peuvent interagir avec les employés de New Relic ainsi qu'avec d'autres clients pour obtenir de l'aide et partager les meilleures pratiques. Comme tous les projets open source de New Relic, il y a un sujet de la communauté dans le New Relic Explorers Hub. Vous pouvez trouver le sujet/thé pour ce projet ici :

Contribuer

Nous encourageons vos contributions pour améliorer [nom du projet] ! Gardez à l'esprit que lorsque vous soumettez votre pull request, vous devrez signer la CLA via le clic à travers CLA-Assistant. Vous devez signer la CLA une seule fois par projet.

Si vous avez des questions, ou pour exécuter notre CLA d'entreprise (qui est requise si votre contribution est faite au nom d'une entreprise), envoyez-nous un e-mail à opensource@newrelic.com.

Une note sur les vulnérabilités

Comme indiqué dans notre politique de sécurité, New Relic est engagé pour la confidentialité et la sécurité de nos clients et de leurs données. Nous croyons que fournir une divulgation coordonnée par des chercheurs en sécurité et s'engager avec la communauté de sécurité sont des moyens importants pour atteindre nos objectifs de sécurité.

Si vous pensez avoir trouvé une vulnérabilité de sécurité dans ce projet ou dans l'un des produits ou sites Web de New Relic, nous vous encourageons et vous remercions de le signaler à New Relic via HackerOne.

Si vous souhaitez contribuer à ce projet, consultez ces lignes directrices.

À tous les contributeurs, nous vous remercions ! Sans votre contribution, ce projet ne serait pas ce qu'il est aujourd'hui.

Licence

infrastructure-agent-ansible est sous la licence Apache 2.0.

À propos du projet

Role to install New Relic Infrastructure agent

Installer
ansible-galaxy install newrelic.newrelic-infra
Licence
apache-2.0
Téléchargements
1.4M
Propriétaire