Grafana یک ابزار متنباز برای مانیتورینگ و ترسیم دادههاست که میتواند دادههای پیچیده را از منابع مختلف مانند Prometheus ،InfluxDB یا ElasticSearch دریافت کند. گرافانا به شما این امکان را میدهد تا هشدار (Alert)، اعلان (Notificationها) و فیلترهای موقتی (Ad-hoc) برای دادههای خود ایجاد کنید و از طریق ویژگیهای اشتراکگذاری، دسترسی همتیمیهایتان را آسانتر کنید.
در این راهنما، گرافانا را نصب و میکنیم و یک گواهی SSL برای امنیت آن دریافت میکنیم.
پیش نیازها
-
یک سرور Ubuntu 20.04 با یک کاربر غیر root و دسترسی sudo
-
یک دامنه با:
-
یک رکورد برای ریشهی دامنه با اشاره به آدرس IP سرور به کمک این راهنما
-
یک رکورد برای زیر دامنهی www با اشاره به آدرس IP سرور به کمک این راهنما
-
-
نصب Nginx و یک Server Block برای دامنه به کمک این راهنما
-
دریافت گواهی برای بلوک سرور دامنهتان به کمک این راهنما
گام نخست: نصب Grafana
کلید GPG گرافانا را دانلود کنید. این دستور کلید را به لیست کلیدهای مورد اعتماد apt اضافه میکند، که به شما اجازه میدهد Grafana را دانلود کنید:
sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
سپس گرافانا را به منابع apt اضافه کنید:
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
apt را آپدیت کنید:
sudo apt update
با دستور زیر، گرافانا را روی سرورتان نصب کنید:
sudo apt install grafana
اکنون بهکمک systemctl سرویس گرافانا را راهاندازی کنید:
sudo systemctl start grafana-server
با بررسی وضعیت سرویس، مطمین شوید که Grafana در حال اجراست:
sudo systemctl status grafana-server
خروجی باید بهشکل زیر باشد:
در نهایت، سرویس را فعال کنید تا بهطور خودکار هنگام بوت راهاندازی شود:
sudo systemctl enable grafana-server
خروجی زیر را دریافت خواهید کرد:
Grafana اکنون نصب شده و آماده استفاده است.
گام دوم: راه اندازی Reverse Proxy
استفاده از گواهی SSL هنگام اتصال به Grafana امنیت اطلاعات شما را تضمین میکند. اما، برای این کار، باید ابتدا Nginx را به عنوان یک Reverse Proxy برای Grafana پیکربندی کنید.
فایل پیکربندی Nginx را که هنگام تنظیم بلوک سرور ایجاد کردهاید، باز کنید:
sudo nano /etc/nginx/sites-available/your_domain
بلوک زیر را بیابید:
location / {
try_files $uri $uri/ =404;
}
از آنجا که شما قبلن Nginx را برای برقراری ارتباط از طریق SSL پیکربندی کردهاید و تمام ترافیک وب سرور شما از Nginx عبور میکند، فقط باید برای Nginx مشخص کنید که تمام درخواستها را به Grafana، که بهطور پیشفرض روی پورت 3000 اجرا میشود، ارسال کند.
خطی که با try_files
proxy_set_header Host $http_host; proxy_pass http://localhost:3000;
همچنین برای اینکه اتصالهای Grafana Live WebSocket به درستی کار کنند، خطوط زیر را خارج از بخش server
map $http_upgrade $connection_upgrade { default upgrade; '' close; }
سپس بخش زیر را به بلوک سرور اضافه کنید:
location /api/live { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $http_host; proxy_pass http://localhost:3000; }
پیکربندی نهایی بهشکل زیر خواهد بود:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
location /api/live {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
}
پس از اتمام کار، فایل را ذخیره کرده و ببندید.
تنظیمات جدید را تست کنید تا مطمین شوید همهچیز بهدرستی پیکربندی شده است:
sudo nginx -t
خروجی زیر را دریافت خواهید کرد:
در نهایت، تغییرات را با بارگذاری مجدد Nginx فعال کنید:
sudo systemctl reload nginx
اکنون میتوانید با وارد کردن نام دامنه در مرورگر خود به صفحهی پیشفرض ورود به Grafana دسترسی پیدا کنید.
گام سوم: تنظیم دسترسیها
از آنجایی که همهی سرویسهای Grafana بهطور پیشفرض از یک نام کاربری و رمز عبور ادمین استفاده میکنند، بهترین کار این است که اطلاعات ورود خود را در سریعترین زمان تغییر دهید.
دامنهتان را در مروگر باز کنید تا به صفحهی ورود به گرافانا بروید.
در هر دو بخش Email or Username و Password مقدار admin را وارد کنید و روی “Log in” کلیک کنید.
در صفحه بعد، از شما خواسته میشود که با تغییر رمز عبور پیش فرض، حساب خود را ایمن تر کنید. رمز عبوری را که در نظر دارید در فیلدهای New Password و Confirm New Password وارد کرده و Submit را بزنید تا وارد داشبورد اولیهی گرافانا شوید:
گام چهارم: غیرفعال کردن ثبت نام و دسترسی ناشناس به Grafana
Grafana به بازدیدکنندگان این امکان را میدهد تا بدون ثبت نام، حساب کاربری برای خود ایجاد کنند و پیش نمایش داشبوردها را مشاهده کنند. وقتی Grafana از طریق اینترنت در دسترس نیست یا زمانی که با دادههای در دسترس عموم مانند وضعیت خدمات مرتبط است، ممکن است بخواهید از این ویژگی استفاده کنید. با این حال، هنگام استفاده از گرافانای آنلاین و برای کار با دادههای حساس، دسترسی ناشناس میتواند یک مشکل امنیتی باشد. برای رفع این مشکل، کافی است تغییراتی در پیکربندی Grafana ایجاد کنید.
فایل پیکربندی اصلی Grafana را برای ویرایش باز کنید:
sudo nano /etc/grafana/grafana.ini
خط allow_sign_up
[users]
[users] # disable user signup / registration ;allow_sign_up = true
با حذف علامت ;
false
[users] # disable user signup / registration allow_sign_up = false
سپس خط enabled
[auth.anonymous]
[auth.anonymous] # enable anonymous access ;enabled = false
با حذف علامت ;
false
[auth.anonymous] # enable anonymous access enabled = false
فایل را ذخیره کنید و از ویرایشگر خارج شوید.
برای اعمال این تغییرات، Grafana را دوباره راهاندازی کنید:
sudo systemctl restart grafana-server
وضعیت سرویس Grafana را بررسی کنید تا مطمین شوید سرویس به درستی کار میکند:
sudo systemctl status grafana-server
برای اطلاعات بیشتر دربارهی استفاده از Grafana، به مستندات این سرویس مراجعه کنید.