Browse Source

[promtail] Need us some promtail

Colin Powell 3 years ago
parent
commit
1e457c4d78

+ 43 - 0
ansible/roles/promtail/files/promtail.rc

@@ -0,0 +1,43 @@
+#!/bin/sh
+# Start script for FreeBSD, contributed by user Fabian Abplanalp
+# Put this script in /usr/local/etc/rc.d then adjust PROMTAIL_BIN and
+# PROMTAIL_CFG values in /etc/defaults/promtail
+
+PROMTAIL_BIN="/usr/local/bin/promtail"
+PROMTAIL_CFG="/usr/local/etc/promtail.config.yml"
+PROMTAIL_PID="/var/run/promtail.pid"
+
+# Read configuration variable file if it is present
+[ -r /etc/defaults/promtail ] && . /etc/defaults/promtail
+
+case "$1" in
+"start")
+	echo "Starting promtail..."
+	${PROMTAIL_BIN} --config ${PROMTAIL_CFG} --daemon &
+	echo $! >${PROMTAIL_PID}
+	echo "done"
+	;;
+
+"stop")
+	echo "Stopping promtail..."
+	if [ -f ${PROMTAIL_PID} ]; then
+		kill $(cat ${PROMTAIL_PID})
+		rm ${PROMTAIL_PID}
+		echo "done"
+	else
+		echo "not running?"
+	fi
+	;;
+
+"restart")
+	echo "Restarting promtail..."
+	$0 stop
+	sleep 2
+	$0 start
+	;;
+
+*)
+	echo "$0 [start|stop|restart]"
+	;;
+
+esac

+ 1 - 0
ansible/roles/promtail/files/promtail.service

@@ -0,0 +1 @@
+

+ 5 - 0
ansible/roles/promtail/handlers/main.yml

@@ -0,0 +1,5 @@
+---
+- name: Promtail restarted
+  service:
+    name: promtail
+    state: restarted

+ 60 - 0
ansible/roles/promtail/tasks/main.yml

@@ -0,0 +1,60 @@
+---
+- name: Unpack Promtail binary
+  unarchive:
+    src: https://github.com/grafana/loki/releases/download/v2.2.1/promtail-freebsd-amd64.zip
+    dest: /usr/local/bin/
+    remote_src: yes
+  when: ansible_distribution == 'FreeBSD'
+
+- name: Rename Promtail binary
+  command: mv /usr/local/bin/promtail-freebsd-amd64 /usr/local/bin/promtail
+  when: ansible_distribution == 'FreeBSD'
+
+- name: Unpack Promtail binary
+  unarchive:
+    src: https://github.com/grafana/loki/releases/download/v2.2.1/promtail-linux-amd64.zip
+    dest: /usr/local/bin/
+    remote_src: yes
+  become: true
+  when: ansible_distribution == 'Ubuntu'
+
+- name: Rename Promtail binary
+  command: mv /usr/local/bin/promtail-linux-amd64 /usr/local/bin/promtail
+  become: true
+  when: ansible_distribution == 'Ubuntu'
+
+- name: Promtail config file installed
+  template:
+    src: promtail.varlogs.config.yml.j2
+    dest: /usr/local/etc/promtail.config.yml
+    owner: root
+    mode: 0644
+  notify: Promtail restarted
+  when: ansible_distribution == 'FreeBSD'
+
+- name: Promtail rc file installed
+  copy:
+    src: promtail.rc
+    dest: /usr/local/etc/rc.d/promtail
+    owner: root
+    mode: 0644
+  notify: Promtail restarted
+  when: ansible_distribution == 'FreeBSD'
+
+- name: Promtail config file installed
+  template:
+    src: promtail.journal.config.yml.j2
+    dest: /etc/promtail.config.yml
+    owner: root
+    mode: 0644
+  notify: Promtail restarted
+  when: ansible_distribution == 'Ubuntu'
+
+- name: Promtail systemd service file installed
+  copy:
+    src: promtail.service
+    dest: /etc/systemd/system/promtail.service
+    owner: root
+    mode: 0644
+  become: true
+  when: ansible_distribution == 'Ubuntu'

+ 17 - 0
ansible/roles/promtail/templates/promtail.journal.config.yml.j2

@@ -0,0 +1,17 @@
+server:
+  http_listen_port: 9080
+  grpc_listen_port: 0
+
+clients:
+  - url: http://192.168.1.48:3100/loki/api/v1/push
+
+scrape_configs:
+  - job_name: journal
+    journal:
+      max_age: 24h
+      labels:
+        job: systemd-journal
+        host: {{ansible_hostname}}
+    relabel_configs:
+      - source_labels: ['__journal__systemd_unit']
+        target_label: 'unit'

+ 21 - 0
ansible/roles/promtail/templates/promtail.varlogs.config.yml.j2

@@ -0,0 +1,21 @@
+server:
+  http_listen_port: 9080
+  grpc_listen_port: 0
+
+clients:
+  - url: http://192.168.1.48:3100/loki/api/v1/push
+
+scrape_configs:
+  - job_name: system
+    pipeline_stages:
+    static_configs:
+    - targets:
+      labels:
+        job: varlogs
+        host: dev-ff
+        __path__: /var/log/*.log
+    - targets:
+      labels:
+        job: varlogs
+        host: dev-ff
+        __path__: /var/log/*.json