--- /dev/null
+---
+# Mimir URL and creds
+agent_mimir_url: "http://sepia-grafana.front.sepia.ceph.com:9009/api/v1/push"
+agent_mimir_username: "admin"
+grafana_apt_repo_url: "https://apt.grafana.com"
+grafana_apt_repo_key_url: "https://apt.grafana.com/gpg.key"
+grafana_rpm_repo_url: "https://rpm.grafana.com"
+grafana_rpm_repo_key_url: "https://rpm.grafana.com/gpg.key"
+
+scrape_interval_global: "60s"
+scrape_interval_node: "30s"
--- /dev/null
+---
+- name: Include secrets
+ include_vars: "{{ secrets_path | mandatory }}/mimir_password.yml"
+ no_log: true
+ tags:
+ - always
+
+- name: Gather facts on listening ports
+ community.general.listen_ports_facts:
+
+- name: Check if prometheus is listening on port 9090
+ ansible.builtin.debug:
+ msg: The {{ item.name }} service - pid {{ item.pid }} is running on same port as grafana-agent please set {{ item.name }} to listen on a diffrent port than {{ item.port }}
+ vars:
+ tcp_listen_violations: "{{ ansible_facts.tcp_listen | selectattr('name', 'in', tcp_whitelist) | list }}"
+ tcp_whitelist:
+ - prometheus
+ loop: "{{ tcp_listen_violations }}"
+ failed_when: true
+
+- name: "Import Grafana GPG key"
+ become: true
+ ansible.builtin.get_url:
+ url: "{{ grafana_apt_repo_key_url }}"
+ dest: /etc/apt/keyrings/grafana.gpg
+ mode: '0644'
+ force: true
+ when: ansible_pkg_mgr == "apt"
+
+- name: Ensure downloaded file for key is a binary keyring
+ shell: "cat /etc/apt/keyrings/grafana.gpg | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null"
+ when: ansible_pkg_mgr == "apt"
+
+- name: "Add Grafana's repository to APT sources list"
+ become: true
+ ansible.builtin.apt_repository:
+ repo: "deb [signed-by=/etc/apt/keyrings/grafana.gpg] {{ grafana_apt_repo_url }} stable main"
+ state: present
+ when: ansible_pkg_mgr == "apt"
+
+- name: "Add Grafana's repository to yum/dnf systems"
+ become: true
+ ansible.builtin.yum_repository:
+ baseurl: "{{ grafana_rpm_repo_url }}"
+ name: "grafana"
+ description: "grafana"
+ gpgcheck: true
+ gpgkey: "{{ grafana_rpm_repo_key_url }}"
+ state: present
+ when: ansible_os_family == "RedHat"
+
+- name: "Install grafana-agent"
+ become: true
+ ansible.builtin.package:
+ name: "grafana-agent"
+ state: "present"
+
+- name: "Enable grafana-agent"
+ become: true
+ ansible.builtin.service:
+ name: "grafana-agent"
+ state: "started"
+ enabled: true
+
+# Deploy config file from template and restart the agent
+- name: "Configure agent"
+ become: true
+ ansible.builtin.template:
+ src: "templates/grafana-agent.yaml.j2"
+ dest: "/etc/grafana-agent.yaml"
+ mode: "0440"
+ owner: "root"
+ group: "grafana-agent"
+ notify: "Restart grafana agent instance"
--- /dev/null
+server:
+ log_level: info
+
+metrics:
+ global:
+ remote_write:
+ - url: {{ agent_mimir_url }}
+ basic_auth:
+ username: {{ agent_mimir_username }}
+ password: {{ agent_mimir_password }}
+ queue_config:
+ max_backoff: 5m
+ external_labels:
+ nodetype: unknown_nodetype
+ ingest_instance: {{ inventory_hostname }}
+ scrape_interval: {{ scrape_interval_global }}
+ configs:
+ - name: {{ inventory_hostname }}
+ scrape_configs:
+ - job_name: 'grafana-agent-exporter'
+ relabel_configs:
+ - source_labels: [__address__]
+ target_label: instance
+ replacement: {{ inventory_hostname }}
+
+integrations:
+ node_exporter:
+ enabled: true
+ scrape_interval: {{ scrape_interval_node }}
+ instance: {{ inventory_hostname }}
+ rootfs_path: /
+ sysfs_path: /sys
+ procfs_path: /proc