Skip to content

Commit

Permalink
Merge pull request #1 from smartlogic/redis_exporter
Browse files Browse the repository at this point in the history
Setup ability to template out redis_exporter with systemd
  • Loading branch information
oestrich authored Jan 16, 2018
2 parents 74feb29 + ce32e9f commit 6aa4f25
Show file tree
Hide file tree
Showing 6 changed files with 87 additions and 0 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ None
- `node_exporter_checksum` - The checksum for the version of node exporter
- `alertmanager_version` - Which version of alertmanager to download
- `alertmanager_checksum` - The checksum for the version of alertmanager
- `redis_exporter_version` - Which version of redis_exporter to download
- `redis_exporter_checksum` - The checksum for the version of redis_exporter
- `grafana_ini_file` - The file to use for `grafana.ini`
- Default: `grafana.ini`
- `prometheus_config_file` - The file to use for `prometheus.yml`
Expand Down Expand Up @@ -71,6 +73,14 @@ Node exporter only:
- { role: prometheus, action: "node_exporter" }
```
Redis exporter:
```yaml
- hosts: servers
roles:
- { role: prometheus, action: "redis_exporter" }
```
## License
MIT
Expand Down
3 changes: 3 additions & 0 deletions defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ node_exporter_checksum: 7ffb3773abb71dd2b2119c5f6a7a0dbca0cff34b24b2ced9e01d9897
alertmanager_version: 0.10.0
alertmanager_checksum: ef09b9c9795a7148fd74bb1dcecdd00a4fa25da05a4d2b8517e6ceb5f124e1a8

redis_exporter_version: 0.14
redis_exporter_checksum: ba80d6902a7020ca94156741cb1d6e44480d19bfa753315d5e6b0f099921bce0

grafana_ini_file: grafana.ini
prometheus_config_file: prometheus.yml
prometheus_alert_file: alertmanager.yml
Expand Down
6 changes: 6 additions & 0 deletions handlers/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,9 @@
name: node_exporter
state: restarted
become: true

- name: restart redis_exporter
service:
name: redis_exporter
state: restarted
become: true
3 changes: 3 additions & 0 deletions tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@

- import_tasks: node_exporter.yml
when: action == "full" or action == "node_exporter"

- import_tasks: redis_exporter.yml
when: action == "redis_exporter"
53 changes: 53 additions & 0 deletions tasks/redis_exporter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
- name: "Create the prometheus user"
user:
name: prometheus
comment: "Prometheus"
become: true

- name: "Create version folder"
file:
path: "/home/prometheus/redis_exporter/{{ redis_exporter_version }}"
state: directory
mode: 0700
become: yes
become_user: prometheus

- name: "Download the redis_exporter file"
get_url:
url: "https://github.com/oliver006/redis_exporter/releases/download/v{{ redis_exporter_version }}/redis_exporter-v{{ redis_exporter_version }}.linux-amd64.tar.gz"
dest: "/home/prometheus/redis_exporter/{{ redis_exporter_version }}/redis_exporter.tar.gz"
mode: 0400
checksum: "sha256:{{ redis_exporter_checksum }}"
become: yes
become_user: prometheus

- name: stat final file
stat: path="/home/prometheus/redis_exporter/{{ redis_exporter_version }}/redis_exporter"
register: redis_exporter_stat
become: yes
become_user: prometheus

- name: "Extract archive"
unarchive:
src: "/home/prometheus/redis_exporter/{{ redis_exporter_version }}/redis_exporter.tar.gz"
dest: "/home/prometheus/redis_exporter/{{ redis_exporter_version }}/"
remote_src: yes
when: redis_exporter_stat.stat.exists == False
become: yes
become_user: prometheus

- name: Template out the service file
template:
src: redis_exporter.service.j2
dest: /etc/systemd/system/redis_exporter.service
mode: 0644
become: yes
notify:
- reload systemd
- restart redis_exporter

- name: Enable redis exporter
systemd:
enabled: yes
name: redis_exporter
become: yes
12 changes: 12 additions & 0 deletions templates/redis_exporter.service.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[Unit]
Description=Prometheus Redis Exporter
After=network-online.target

[Service]
User=prometheus
Restart=on-failure
WorkingDirectory=/home/prometheus/redis_exporter/{{ redis_exporter_version }}
ExecStart=/home/prometheus/redis_exporter/{{ redis_exporter_version }}/redis_exporter

[Install]
WantedBy=multi-user.target

0 comments on commit 6aa4f25

Please sign in to comment.