#/bin/bash # This script will setup Promtail to push to https://int.loki.grid.tf ### Install Promtail mkdir -p /etc/apt/keyrings/ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor > /etc/apt/keyrings/grafana.gpg echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list apt update && apt install promtail -y usermod -a -G adm promtail ### Set config cat << EOF > /etc/promtail/config.yml server: http_listen_port: 9080 grpc_listen_port: 0 positions: filename: /tmp/positions.yaml clients: - url: https://int.loki.grid.tf/loki/api/v1/push scrape_configs: - job_name: system static_configs: - targets: - localhost labels: host: \${HOSTNAME} job: varlogs __path__: /var/log/*log - job_name: journal journal: json: false max_age: 24h path: /var/log/journal labels: host: \${HOSTNAME} job: systemd-journal relabel_configs: - source_labels: ['__journal__systemd_unit'] target_label: 'unit' EOF ### Edit service cat << EOF > /etc/systemd/system/promtail.service [Unit] Description=Promtail service After=network.target [Service] Type=simple User=promtail Environment="HOSTNAME=%H" ExecStart=/usr/bin/promtail -config.file /etc/promtail/config.yml -config.expand-env=true # Give a reasonable amount of time for promtail to start up/shut down TimeoutSec = 60 Restart = on-failure RestartSec = 2 [Install] WantedBy=multi-user.target EOF ### Reload and restart systemctl daemon-reload systemctl restart promtail systemctl status promtail