본문으로 바로가기
반응형

prometheus와 grafana 연동을 위해 grafana 설치에 대한 playbook 내용입니다. 

별도의 vm을 생성해서 구성하려다 prometheus VM에 grafana를 설치하도록 하였습니다. 

grafana 접속 및 대쉬보드 구성, prometheus 연동은 이전에 했던 것과 같이 직접 접속해서 구성하였습니다.

 

 

해당 playbook 파일은 ansible-grafana github에서 다운받을 수 있습니다.

https://github.com/hkjeon/ansible-grafana.git

 

 

## 환경 정보

node_exporter : xx.xx.xx.4 (RHEL 8.4 / kvmhost)

ansible-controller : xx.xx.xx.5 (RHEL 8.4)

prometheus (/w grafana) : xx.xx.xx.6 (RHEL 8.4)

 

 

1. main.yml 생성

[root@hk-controller ansible-grafana]#pwd
/root/ansible-playbook/ansible-grafana

[root@hk-controller ansible-grafana]#cat main.yaml
---
- hosts: grafana
  become: false
  gather_facts: false
  roles:
    - install

 

 

2. install roles 생성

[root@hk-controller ansible-grafana]#ansible-galaxy init roles/install

 

 

3. role에서 사용할 변수 내용 구성

[root@hk-controller defaults]#pwd
/root/ansible-playbook/ansible-grafana/roles/install/defaults

[root@hk-controller defaults]#cat main.yml
---
# defaults file for roles/install
grafana_ip: xx.xx.xx.6

 

 

4. templates 파일 구성 (grafana http port 파일과 grafana repo 템플릿)

[root@hk-controller templates]#pwd
/root/ansible-playbook/ansible-grafana/roles/install/templates

[root@hk-controller templates]#cat grafana.ini.j2
http_port = 3000

[root@hk-controller templates]#cat grafana.repo.j2
{{ ansible_managed | comment }}
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

 

 

5. task 작성

[root@hk-controller tasks]#pwd
/root/ansible-playbook/ansible-grafana/roles/install/tasks

[root@hk-controller tasks]#cat main.yml
---
- name: Install dependencies for grafana
  yum:
    name: "{{ item }}"
    state: latest
  with_items:
      - initscripts
      - net-tools
      - vim
      - tcpdump
      - urw-fonts
      - wget

- name: Add Grafana Repository
  template:
    src: grafana.repo.j2
    dest: /etc/yum.repos.d/grafana.repo
    owner: root
    group: root
    mode: 0644

- name: Configuration Grafana HTTP Port
  template:
    src: grafana.ini.j2
    dest: /etc/grafana/grafana.ini

- name: Install the latest version of Grafana.
  yum:
    name: grafana
    state: latest
  notify:
    - restart grafana-server

- name: enable for grafana
  systemd:
    name: grafana-server
    enabled: true
    state: started

- name: Check Port 3000 for Grafana Dashboard
  shell:
    cmd: "/usr/bin/curl --connect-timeout 10 --silent --show-error '{{ grafana_ip }}':3000"
    warn: no
    executable: /bin/bash
  register: check_port

- name: Check port 3000 result
  debug:
    msg:
      - "{{ check_port.stdout }}"

 

 

6. handler 작성

[root@hk-controller handlers]#pwd
/root/ansible-playbook/ansible-grafana/roles/install/handlers

[root@hk-controller handlers]#cat main.yml
---
- name: restart grafana-server service
  become: true
  systemd:
    name: grafana-server
    state: restarted

 

 

7.  hosts 생성 

[root@hk-controller ansible-grafana]#pwd
/root/ansible-playbook/ansible-grafana

[root@hk-controller ansible-grafana]#cat hosts
[grafana]
xx.xx.xx.6

 

 

8. 실행방법

[root@hk-controller ansible-grafana]#pwd
/root/ansible-playbook/ansible-grafana

[root@hk-controller ansible-grafana]#ansible-playbook main.yaml

 

 

9. grafana 접속 및 대쉬보드 구성, prometheus 연동방법 아래 글 참고

https://hkjeon2.tistory.com/83?category=949389

 

 

10. 연동 및 구성 결과

728x90