آموزش سرور

آموزش نصب پرومتئوس با استفاده از داکر

در این مطلب نحوه دانلود یک تصویر خاص یا مجموعه ای از تصاویر را با استفاده از دستور docker pull به شما آموزش خواهیم داد. همچنین نحوه نصب پرومتئوس با استفاده از داکر را نیز یاد می گیرید. این کارها بعد از اتمام نصب داکر در ویندوز امکان پذیرند. اما برای شروع به 2 سوال اساسی پاسخ می دهیم:

پرومتئوس (Prometheus) چیست؟

Prometheus یک برنامه نرم افزاری رایگان برای نظارت بر رویدادها و هشدارها است. این برنامه معیارها را در لحظه، در یک پایگاه داده سری زمانی که با مدل Pull HTTP ساخته شده است، ثبت می ‌کند. این کار امکان درخواست ‌های انعطاف‌ پذیر و هشدار در لحظه را هم فراهم می‌ کند.

مطالعه بیشتر: پرومتئوس چیست؟

داکر چیست؟

Docker مجموعه ای از پلتفرم ها در قالب یک ابزار خدماتی است که با استفاده از مجازی سازی در سطح سیستم عامل، نرم افزار را در کانتینرها ارائه می دهد. کانتینرها مستقل از هم بوده و حاوی نرم افزار، کتابخانه ها و فایل های پیکربندی مربوط به خودشان هستند. آن ها از طریق کانال های کاملاً تعریف شده با یکدیگر ارتباط برقرار می کنند.

داکر به عنوان یک کانتینر کم حجم، قابل حمل و مستقل که تقریباً می تواند در همه جا کار کند، بسته بندی، ارسال و اجرای هر نرم افزار را برای توسعه دهندگان ساده می کند.

کشیدن تصویر از Docker Hub

از Docker pull برای دانلود یک تصویر خاص یا مجموعه ای از تصاویر (به عنوان مثال، یک مخزن) استفاده می شود. اگر هیچ تگی مشخص نشده باشد، Docker Engine به طور پیش فرض بر روی تگ latest قرار می گیرد. این دستور آخرین تصویر را بازیابی می کند:

با استفاده از دستور docker pull، می توانید تصویر داکر Prometheus را دریافت کنید:

$ docker pull prom/prometheus

شناسه تصویر یک خلاصه SHA256 است که پیکربندی و لایه ‌های تصویر را پوشش می ‌دهد و داکر از یک ذخیره‌ ساز تصویر با آدرس محتوا استفاده می ‌کند.

چندین لایه را می توان در یک Image Docker قرار داد. تصویر در مثال بالا دارای لایه های زیر است.

لایه های image ducker در نصب پرومتئوس با داکر

پس از بارگیری تصویر، از دستور docker image ls برای مشاهده لیستی از تمام تصاویر موجود به صورت لوکال استفاده کنید.

C:\Users>docker image ls
REPOSITORY               TAG       IMAGE ID       CREATED        SIZE
prom/prometheus          latest    3313ec19d029   13 days ago    189MB
docker/getting-started   latest    083d7564d904   3 weeks ago    28MB
hello-world              latest    d1165f221234   4 months ago   13.3kB

در نهایت، از Docker برای اجرای Prometheus استفاده خواهیم کرد. برای راه اندازی سرور Prometheus در پس زمینه، دستور زیر را تایپ کنید:

$ docker run -d --name=prometheus -p 9090:9090 -v <PATH_TO_prometheus.yml_FILE>:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

مطمئن شوید که PATH_TO_prometheus.yml_FILE را، با مسیری که فایل prometheus.yml را در آن نگه داشته اید جایگزین کنید. از اینجا می توانید به پیکربندی اسناد Prometheus مراجعه کنید.

در این مثال، من فایل (prometheus.yml) را در درایو D نگه داشته ام. بنابراین من PATH_TO_prometheus.yml_FILE را با D:\prometheus.yml جایگزین کردم.

اما پس از اجرای دستور، با خطای داکر Error answer from daemon: Conflict مواجه شدم. نام کانتینر “/prometheus” در حال حاضر توسط کانتینر استفاده می شود.

C:\Users>docker run -d --name=prometheus -p 9090:9090 -v D:\prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml
docker: Error response from daemon: Conflict.
The container name "/prometheus" is already in use by container "865ad37d121bfdb8819b5459637ff407d0bb40eb4a2fd93a739030e008ef919e".
You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
رفع خطای Error answer from daemon: Conflict در نصب پرومتئوس با داکر

برای رفع خطای بالا از دستور زیر برای حذف یک یا چند کانتینر استفاده کنید.

docker rm -f prometheus
استفاده از دستور docker rm -f prometheus

اکنون از دستور زیر docker برای اجرای Prometheus استفاده کنید.

docker run -d --name=prometheus -p 9090:9090 -v D:\prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml
دستور اجرای Prometheus

بصری سازی معیارهای Spring Boot از طریق داشبورد Prometheus

حالا شما می توانید داشبورد Prometheus را از طریق http://localhost:9090 باز کنید. می توانید با رفتن به Status > Targets بررسی کنید که آیا اتصالات کار می کنند و به درستی پیکربندی شده اند یا خیر؟

داشبورد پرومتئوس  - نصب پرومتئوس با داکر

اگر با خطای زیر مواجه شدید:

 Get “http://localhost:8080/actuator/prometheus”: dial tcp 127.0.0.1:8080: connect: connection refused

آدرس IP درست سیستم را در prometheus.yml file از مثال Spring Boot Prometheus جایگزین کنید. برای دریافت آدرس IP سیستم از دستور ipconfig استفاده کنید.

C:\Users>ipconfig

IPv4 Address. . . . . .  . . : 192.168.1.9
global:
  scrape_interval:     15s # Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

rule_files:
# - "first_rules.yml"
# - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
scrape_configs:
  - job_name: 'prometheus'

    static_configs:
      - targets: ['127.0.0.1:9090']

  - job_name: 'spring-actuator'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['192.168.1.9:8080'] # refer system ip address rather that localhost

من از مثال Spring Boot Prometheus برای بصری سازی آن در داشبورد Prometheus استفاده کردم.

در اینجا چند نمودار Prometheus برای معیارهای برنامه Spring Boot آورده شده است.

  • استفاده از CPU سیستم
system_cpu_usage
استفاده از CPU سیستم- نصب پرومتئوس با داکر
  • تأخیر Api

وقتی مثال Spring Boot Prometheus را استارت می کنیم و به http://localhost:8080/actuator/prometheus مراجعه می کنیم، می توانیم آمار برنامه را ببینیم.

تأخیر Api
  • ارجاع

عبارت http_server_requests_second_max{uri=”/testApi”} در نمودار پرومتئوس برای مشاهده تأخیر آزمایشی api.

نصب پرومتئوس با داکر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا