این راهنما یک آموزش سبک "سلام جهان" است که نحوه نصب ، پیکربندی و استفاده از یک نمونه ساده پرومتئوس را نشان می دهد. شما Prometheus را به صورت محلی بارگیری و اجرا می کنید ، آن را برای خراش دادن خود و یک برنامه مثال پیکربندی می کنید ، سپس با نمایش داده ها ، قوانین و نمودارها برای استفاده از داده های مجموعه زمانی جمع آوری شده کار می کنید.
بارگیری و اجرای پرومتئوس
آخرین نسخه Prometheus را برای سیستم عامل خود بارگیری کنید ، سپس آن را استخراج کرده و اجرا کنید:
tar xvfz prometheus-*. tar. gz cd prometheus-*
قبل از شروع پرومتئوس ، بیایید آن را پیکربندی کنیم.
پیکربندی پرومتئوس برای نظارت بر خود
Prometheus با استفاده از معیارهای انتهایی HTTP ، معیارهایی را از اهداف جمع می کند. از آنجا که پرومتئوس داده ها را به همان شیوه در مورد خود قرار می دهد ، می تواند سلامت خود را نیز خرد و نظارت کند.
در حالی که یک سرور پرومتئوس که فقط داده های مربوط به خود را جمع می کند بسیار مفید نیست ، اما یک مثال خوب است. پیکربندی اولیه Prometheus را به عنوان پرونده ای به نام prometheus. yml ذخیره کنید:
جهانی: scrape_interval: 15s # به طور پیش فرض ، هر 15 ثانیه اهداف را خراش می دهد.# هنگام برقراری ارتباط با # سیستم های خارجی (فدراسیون ، ذخیره از راه دور ، AlertManager) این برچسب ها را به هر سری زمانی یا هشدارها وصل کنید. Exteal_Labels: Monitor: 'CodeLab-Monitor' # پیکربندی ضایعات حاوی دقیقاً یک نقطه پایانی برای خراش دادن: # در اینجا خود Prometheus است. scrape_configs: # نام کار به عنوان یک برچسب `کار =` به هر زمان که از این پیکربندی جدا شده اضافه شود.- job_name: 'Prometheus' # پیش فرض جهانی را نادیده بگیرید و اهداف را از این کار هر 5 ثانیه از این کار استفاده کنید. scrape_interval: 5S static_configs: - اهداف: ['localhost: 9090']
برای مشخصات کامل گزینه های پیکربندی ، به اسناد پیکربندی مراجعه کنید.
شروع پرومتئوس
برای شروع پرومتئوس با فایل پیکربندی تازه ایجاد شده خود ، به دایرکتوری حاوی باینری پرومتئوس تغییر دهید و اجرا کنید:
# پرومتئوس را شروع کنید.# به طور پیش فرض ، Prometheus پایگاه داده خود را در ./data (پرچ م-storage. tsdb. path) ذخیره می کند../prometheu s-config. file = prometheus. yml
پرومتئوس باید راه اندازی کند. همچنین باید بتوانید در یک صفحه وضعیت در مورد خود در LocalHost: 9090 مرور کنید. چند ثانیه به آن بدهید تا داده های مربوط به خود را از نقطه پایانی معیارهای HTTP خود جمع کنید.
همچنین می توانید تأیید کنید که پرومتئوس با حرکت به نقطه پایانی معیارهای خود ، در مورد معیارهایی در مورد خود خدمت می کند: LocalHost: 9090/معیارها
با استفاده از مرورگر بیان
بگذارید داده هایی را که پرومتئوس در مورد خود جمع آوری کرده است ، کشف کنیم. برای استفاده از مرورگر بیان داخلی Prometheus ، به http: // localhost: 9090/نمودار بروید و نمایش "جدول" را در برگه "نمودار" انتخاب کنید.
همانطور که می توانید از LocalHost جمع کنید: 9090/معیارها ، یک متریک که Prometheus در مورد خود صادر می کند ، prometeus_target_interval_l طول_ seconds نامیده می شود (مقدار واقعی زمان بین ضایعات هدف). زیر را در کنسول Expression وارد کرده و سپس روی "اجرای" کلیک کنید:
prometheus_target_interval_l طول_ seconds
این باید تعدادی سری زمانی مختلف را برگرداند (همراه با آخرین مقدار ثبت شده برای هر یک) ، هرکدام با نام متریک prometeus_target_interval_l طول_ seconds ، اما با برچسب های مختلف. این برچسب ها صدک های تأخیر متفاوتی و فواصل گروه هدف را تعیین می کنند.
اگر ما فقط به تأخیر صدک 99 علاقه مندیم ، می توانیم از این پرس و جو استفاده کنیم:
prometheus_target_interval_l طول_ seconds
برای شمارش تعداد سریال های زمانی برگشتی ، می توانید بنویسید:
COUNT (prometheus_target_interval_l طول_ seconds)
برای اطلاعات بیشتر در مورد زبان بیان ، به مستندات زبان بیان مراجعه کنید.
با استفاده از رابط نمودار
برای نمودار عبارات ، به http: // localhost: 9090/نمودار بروید و از برگه "نمودار" استفاده کنید.
به عنوان مثال ، عبارت زیر را وارد کنید تا میزان هر ثانیه ای از تکه های ایجاد شده در پرومتئوس خود خراشیده شود:
نرخ (prometheus_tsdb_head_chunks_created_total [1m])
با پارامترهای دامنه نمودار و سایر تنظیمات آزمایش کنید.
راه اندازی برخی از اهداف نمونه
بیایید اهداف اضافی را برای Scrape Prometheus اضافه کنیم.
برای اطلاعات بیشتر در مورد استفاده از آن ، از صادر کننده گره به عنوان نمونه نمونه استفاده می شود.
ta r-xzvf node_exporter-*.*. tar. gz node_exporter-*.* # شروع 3 هدف در پایانه های جداگانه: ./node_exporter-web. listen-address 127. 0. 0. 0. 1:8080 ./node_exporter-web. listen-Address 127. 0. 0. 1:8081 ./node_exporter-web. listen-address 127. 0. 0. 1:8082
برای نظارت بر اهداف نمونه ، پرومتئوس را پیکربندی کنید
اکنون ما پرومتئوس را پیکربندی خواهیم کرد تا این اهداف جدید را خراب کنیم. بیایید هر سه نقطه پایانی را به یک کار به نام گره گروه بندی کنیم. ما تصور خواهیم کرد که دو نقطه پایانی اول اهداف تولید هستند ، در حالی که سومین نمونه یک نمونه قناری است. برای الگوبرداری از این در پرومتئوس ، می توانیم چندین گروه از نقاط پایانی را به یک کار واحد اضافه کنیم و برچسب های اضافی را به هر گروه از اهداف اضافه کنیم. در این مثال ، ما برچسب گروه = "تولید" را به گروه اول اهداف اضافه خواهیم کرد ، در حالی که گروه = "قناری" را به دوم اضافه می کنیم.
برای دستیابی به این هدف ، تعریف شغلی زیر را به بخش scrape_configs در prometheus. yml خود اضافه کنید و نمونه پرومتئوس خود را مجدداً راه اندازی کنید:
scrape_configs: - job_name: "گره" # پیش فرض جهانی را نادیده بگیرید و اهداف را از این کار در هر 5 ثانیه استفاده کنید. scrape_interval: 5S static_configs: - اهداف: ['localhost: 8080' ، 'localhost: 8081'] برچسب ها: گروه: 'تولید' - اهداف: ['localhost: 8082'] برچسب ها: گروه: "قناری"
به مرورگر Expression بروید و تأیید کنید که Prometheus اکنون اطلاعاتی در مورد سری زمانی دارد که این نقاط پایانی در معرض نمایش قرار می گیرند ، مانند node_cpu_seconds_total.
قوانینی را برای تجمع داده های خراشیده شده در سری های جدید تنظیم کنید
اگرچه در مثال ما مشکلی نیست ، سؤالاتی که بیش از هزاران سری زمانی جمع می شوند می توانند در هنگام محاسبه AD-HOC کند شوند. برای کارآمدتر این کار ، پرومتئوس می تواند از طریق قوانین ضبط پیکربندی شده ، عبارات را به سری زمانی جدید ادامه دهد. بیایید بگوییم که ما علاقه مند به ثبت نرخ هر ثانیه از زمان CPU (node_cpu_seconds_total) به طور متوسط بیش از تمام CPU ها در هر نمونه (اما حفظ ابعاد کار ، نمونه و حالت) است که در یک پنجره 5 دقیقه اندازه گیری می شود. ما می توانیم این را به این صورت بنویسیم:
AVG توسط (شغل ، نمونه ، حالت) (نرخ (node_cpu_seconds_total [5m]))
نمودار این عبارت را امتحان کنید.
برای ضبط سری زمانی که ناشی از این عبارت به یک متریک جدید به نام job_instance_mode است: node_cpu_seconds: avg_rate5m ، یک پرونده با قانون ضبط زیر ایجاد کنید و آن را به عنوان prometheus. rules. yml ذخیره کنید:
گروه ها: - نام: CP U-Node قوانین: - ضبط: job_instance_mode: node_cpu_seconds: avg_rate5m expr: avg توسط (کار ، مثال ، حالت) (نرخ (node_cpu_seconds_total [5m]))
برای انتخاب پرومتئوس این قانون جدید ، یک بیانیه Rule_files را در prometheus. yml خود اضافه کنید. پیکربندی اکنون باید به این شکل باشد:
جهانی: scrape_interval: 15s # به طور پیش فرض ، هر 15 ثانیه اهداف را خراش می دهد. realuation_interval: 15S # هر 15 ثانیه قوانین را ارزیابی کنید.# این برچسب های اضافی را به کلیه زمان های جمع آوری شده توسط این نمونه پرومتئوس وصل کنید. Exteal_Labels: Monitor: 'CodeLa b-Monitor' Rule_files: - 'prometheus. rules. yml' scrape_configs: - job_name: 'prometheus' # پیش فرض جهانی را نادیده بگیرید و هر 5 ثانیه اهداف را از این کار استفاده کنید. scrape_interval: 5S static_configs: - اهداف: ['localhost: 9090'] - job_name: 'node' # پیش فرض جهانی را بر روی اهداف جهانی غلبه کنید و هر 5 ثانیه از این کار استفاده کنید. scrape_interval: 5S static_configs: - اهداف: ['localhost: 8080' ، 'localhost: 8081'] برچسب ها: گروه: 'تولید' - اهداف: ['localhost: 8082'] برچسب ها: گروه: "قناری"
Prometheus را با پیکربندی جدید مجدداً راه اندازی کنید و تأیید کنید که یک سری زمانی جدید با نام متریک job_instance_mode: node_cpu_seconds: avg_rate5m اکنون با پرس و جو از طریق مرورگر بیان یا نمودار کردن آن در دسترس است.
معاملات FX...
ما را در سایت معاملات FX دنبال می کنید
برچسب :
نویسنده : شهلا ریاحی
بازدید : <-PostHit->
تاريخ : چهارشنبه
15 شهريور
1402 ساعت: 21:50