สรุปการติดตั้งระบบ Export PDF จาก Grafana Dashboard

 1. ติดตั้ง Grafana (ถ้าไม่ได้ติดตั้งไว้แล้ว)

sudo apt install -y grafana
sudo systemctl enable --now grafana-server
apt install -y imagemagick

 2. ติดตั้ง Plugin grafana-image-renderer

grafana-cli plugins install grafana-image-renderer
หรือดาวน์โหลด .zip และติดตั้งแบบ manual ถ้า DNS มีปัญหา

 3. แก้ปัญหา “Failed to launch browser process”

ติดตั้ง dependencies ที่จำเป็น (โดยเฉพาะบน Ubuntu 24.04):

sudo apt install -y  libatk1.0-0t64 libatk-bridge2.0-0t64 libcups2t64 libxcomposite1 libxdamage1 libxrandr2  libgbm1 libasound2t64 libpangocairo-1.0-0 libgtk-3-0t64 libnss3 libxss1 libxtst6  libxshmfence1 libx11-xcb1 libxcb-dri3-0 libdrm2 libxkbcommon0 libx11-6

4. สร้าง Grafana API Token

  • ไปที่ Grafana → ⚙️ AdministrationService accounts

  • สร้าง Token แล้ว copy เช่น:

    glsa_l11VDWV0vHhXVzYSUUOhcwraG7qc0U75_c2ac626e

 5. สร้างสคริปต์ export PDF อัตโนมัติ

ไฟล์: /usr/local/bin/generate_sla_report.sh

#!/bin/bash

YEAR=$(date -d “last month” +%Y)
MONTH=$(date -d “last month” +%m)
FILENAME=”/var/www/grafana-reports/sla-report-${YEAR}-${MONTH}.pdf”
TOKEN=”glsa_….” # ใส่ Token ของคุณที่นี่

URL=”http://192.168.1.203:3000/render/d/c34801ec-…/zabbix-sla?width=1600&height=1000&kiosk&from=${YEAR}-${MONTH}-01T00:00:00Z&to=${YEAR}-${MONTH}-31T23:59:59Z”

curl -s -H “Authorization: Bearer $TOKEN” -o /tmp/sla.png “$URL”

if file /tmp/sla.png | grep -q “PNG image data”; then
convert /tmp/sla.png “$FILENAME”
echo “✅ PDF created: $FILENAME”
else
echo “❌ Failed to render dashboard image”
fi

rm -f /tmp/sla.png

ให้สิทธิ์รัน:

chmod +x /usr/local/bin/generate_sla_report.sh

📅 6. ตั้ง Cron Job รันอัตโนมัติทุกเดือน

crontab -e

เพิ่ม:

0 1 1 * * /usr/local/bin/generate_sla_report.sh

🌐 7. เปิดให้โหลด PDF ผ่าน Grafana

แนวทางที่แนะนำ:

  • ติดตั้ง nginx serve /var/www/grafana-reports

  • ใช้ Text Panel ใน Grafana Dashboard ฝังลิงก์ Markdown เช่น:

[📥 ดาวน์โหลดรายงาน SLA เดือนเมษายน](http://192.168.1.203/reports/sla-report-2025-04.pdf)

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *