از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نظارت بر فایلهای گزارش با استفاده از Prometheus
سرفصلهای مطلب
grok_exporter از عبارات منظم برای تجزیه داده های مختلف از فایل های گزارش استفاده می کند. فایلهای گزارش با استفاده از یک عبارت منظم، خط به خط مطابقت دارند و دادههای مطابقت داده شده در متغیرهای مختلف ذخیره میشوند. سپس داده های این متغیرها از طریق صادر می شود grok_exporter.
هنگامی که شما اضافه کنید grok_exporter سرور به پرومتئوس به عنوان یک هدف، پرومتئوس می تواند فایل های گزارش مورد نظر را از طریق نظارت کند grok_exporter.
در این مقاله روش نصب grok_exporter را به شما نشان خواهم داد روی لینوکس (اوبونتو 20.04 LTS در مورد من)، فایل های لاگ ساختگی تولید کنید، grok_exporter را برای نظارت بر فایل لاگ ساختگی پیکربندی کنید، و فایل لاگ ساختگی را با استفاده از Prometheus نظارت کنید. بنابراین، بیایید شروع کنیم.
فهرست مطالب:
- چیزهایی که شما نیاز دارید
- دانلود و نصب grok_exporter
- ایجاد یک فایل Log ساختگی با داده های جعلی
- پیکربندی grok_exporter
- افزودن grok_exporter به Prometheus
- Scraping Metrics از grok_exporter با Prometheus
- بعد کجا برویم؟
- نتیجه
- منابع
چیزهایی که نیاز خواهید داشت:
شما باید Prometheus را نصب کرده باشید روی کامپیوتر شما قادر به نظارت بر فایل های گزارش با پرومتئوس است.
اگر به کمک نیاز دارید روی نصب پرومتئوس روی کامپیوتر شما، مقاله روش نصب Prometheus را بخوانید روی اوبونتو 20.04 LTS.
دانلود و نصب grok_exporter:
در این بخش روش دانلود و نصب را به شما آموزش می دهم grok_exporter روی کامپیوتر شما.
ابتدا به مسیر بروید ~/دانلود دایرکتوری به شرح زیر
آخرین نسخه را دانلود کنید grok_exporter آرشیو با دستور زیر:
grok_exporter آرشیو در حال دانلود است ممکن است کمی طول بکشد تا تکمیل شود.
در این مرحله، grok_exporter آرشیو باید دانلود شود
از وقتی که grok_exporter بایگانی دانلود شده است، باید یک فایل جدید پیدا کنید grok_exporter-1.0.0.RC5.linux-amd64.zip در ~/دانلود دایرکتوری همانطور که در تصویر زیر مشخص شده است.
بایگانی grok_exporter را استخراج کنید grok_exporter-1.0.0.RC5.linux-amd64.zip با دستور زیر:
بایگانی grok_exporter باید استخراج شود.
دایرکتوری جدید grok_exporter-1.0.0.RC5.linux-amd64/ باید در ایجاد شود ~/دانلود فهرست راهنما.
اکنون نام آن را تغییر دهید grok_exporter-1.0.0.RC5.linux-amd64/ دایرکتوری به grok-صادر کننده/ و آن را در /انتخاب دایرکتوری به شرح زیر
اکنون یک فایل سرویس systemd ایجاد کنید grok-exporter.service در /opt/grok-exporter دایرکتوری به شرح زیر
خطوط زیر را در قسمت تایپ کنید grok-exporter.service فایل.
شرح=سرور Prometheus grok_exporter
[Service]
راه اندازی مجدد=همیشه
WorkingDirectory=/انتخاب کردن/grok-صادر کننده
ExecStart=/انتخاب کردن/grok-صادر کننده/grok_exporter — پیکربندی=/انتخاب کردن/grok-صادر کننده/config.yml
ExecReload=/صندوقچه/کشتن -HUP $MAINPID
TimeoutStopSec=۲۰ ثانیه
SendSIGKILL= نه
[Install]
تحت تعقیب=multi-user.target
پس از اتمام کار، فشار دهید
برای نصب grok-exporter.service فایل سرویس systemd روی کامپیوتر شما، یک پیوند نمادین از آن ایجاد کنید /opt/grok-exporter/grok-exporter.service فایل در /etc/systemd/system دایرکتوری به شرح زیر
را کپی کنید config.yml فایل از /opt/grok-exporter/example دایرکتوری به /opt/grok-exporter دایرکتوری به شرح زیر
توجه داشته باشید: config.yml فایل برای پیکربندی استفاده می شود grok_exporter. مثال (پیشفرض) config.yml فایل برای تست خوب است اگر grok_exporter در حال کار است. من به شما نشان خواهم داد که چگونه پیکربندی کنید grok_exporter در بخش بعدی این مقاله
برای اعمال تغییرات systemd، دستور زیر را اجرا کنید:
حالا، شروع کنید grok-صادر کننده سرویس systemd با دستور زیر:
این grok-صادر کننده سرویس systemd باید باشد فعال / در حال اجرا، همانطور که در تصویر زیر می بینید. به این معنی grok_exporter به خوبی اجرا می شود
ایجاد یک فایل لاگ ساختگی با داده های جعلی:
برای تولید فایل های لاگ جعلی، از آن استفاده خواهم کرد lucapette/fakedata در این مقاله. ابزارهای زیادی وجود دارد که می توانید از آنها برای تولید فایل های لاگ جعلی استفاده کنید. در صورت تمایل می توانید از هر یک از آنها استفاده کنید.
ابتدا به مسیر بروید ~/دانلود دایرکتوری به شرح زیر
بارگذاری داده های جعلی، دستور زیر را اجرا کنید:
آرشیو داده های جعلی باید دانلود شود.
پس از بارگیری آرشیو داده جعلی، باید یک آرشیو جدید مشاهده کنید fakedata_1.1.2_linux_amd64.tar.gz در ~/دانلود فهرست راهنما.
آرشیو داده های جعلی را استخراج کنید fakedata_1.1.2_linux_amd64.tar.gz با دستور زیر:
شما باید یک فایل اجرایی جدید پیدا کنید داده های جعلی در ~/دانلود دایرکتوری همانطور که در تصویر زیر مشخص شده است.
حرکت دهید داده های جعلی باینری به /usr/local/bin دایرکتوری به شرح زیر
اکنون باید بتوانید دسترسی داشته باشید داده های جعلی از خط فرمان
یک اسکریپت پوسته جدید ایجاد کنید سلام-http در /usr/local/bin دایرکتوری به شرح زیر
در خطوط زیر کدها را وارد کنید سلام-http اسکریپت
ورود به سیستم فایل=/tmp/سلام-http.log
در حالی که درست است، واقعی
انجام دادن
نام کاربری fakedata http.method enum:/،/وارد شدن،/خروج،/پیام های ipv4 –حد 1 >> $LOGFILE
خواب 1
انجام شده
خروج 0
پس از اتمام کار، فشار دهید
مجوز اجرا را به اسکریپت پوسته اضافه کنید /usr/local/bin/hello-http به شرح زیر است:
برای تست کردن سلام-http اسکریپت را به صورت زیر اجرا کنید:
یک فایل لاگ /tmp/hello-http.log باید تولید شود. هر ثانیه یک ورودی جدید باید به فایل گزارش اضافه شود.
هر خط از /tmp/hello-http.log فایل باید به فرمت زیر باشد
پیکربندی grok_exporter:
در این بخش روش پیکربندی را به شما نشان خواهم داد grok_exporter برای نظارت بر فایل لاگ تولید شده /tmp/hello-http.log.
باز کن grok_exporter فایل پیکربندی /opt/grok-exporter/config.yml با ویرایشگر متن نانو به صورت زیر:
فایل تنظیمات پیش فرض باید به صورت زیر باشد.
در ورودی بخش، شما را مشخص کنید مسیر از فایل گزارشی که می خواهید نظارت کنید.
در این مورد، من می خواهم فایل log را نظارت کنم /tmp/hello-http.log.
همه اش را بخوان باید باشد درست است، واقعی اگر می خواهید کل فایل لاگ و خطوط جدید اضافه شده از فایل لاگ را نظارت کنید.
همه اش را بخوان باید باشد نادرست اگر می خواهید فقط خطوط تازه اضافه شده را از فایل log نظارت کنید.
برای استخراج داده ها از فایل log /tmp/hello-http.log، بخش متریک را تغییر دهید config.yml به صورت زیر فایل کنید:
در اینجا نوع متریک شمارنده است. grok_exporter از دیگر انواع متریک Prometheus نیز پشتیبانی می کند. اگر می خواهید از نوع متریک پرومتئوس متفاوتی استفاده کنید، آن را بررسی کنید مستندات رسمی grok_exporter. لینک ها در زیر آورده شده است.
grok_exporter – نوع متریک شمارنده
grok_exporter – نوع متریک هیستوگرام
grok_exporter – نوع متریک خلاصه
این نام از متریک خواهد بود سلام_http_total.
این کمک ویژگی توصیف کوتاهی از آنچه که متریک انجام می دهد است.
این همخوانی داشتن ویژگی برای تطبیق داده های مختلف از هر خط فایل لاگ و ذخیره آنها در متغیرهای مربوطه استفاده می شود.
ستون اول از /tmp/hello-http.log فایل است <نام کاربری>. این <نام کاربری> از نوع الگوی WORD است و داده های استخراج شده با این نوع در متغیر کاربر ذخیره می شود.
به همین ترتیب، ستون دوم است
ستون سوم
ستون چهارم
بسیاری از انواع الگوهای دیگر وجود دارد که می توانید از آنها برای استخراج داده ها از فایل log استفاده کنید. می توانید همه انواع الگوهای پشتیبانی شده را در /opt/grok-exporter/patterns/grok-patterns فایل.
هنگامی که داده ها استخراج و در متغیرهای مختلف ذخیره می شوند، می توانید متغیرهایی را که می خواهید انتخاب کنید export از طریق grok_exporter.
متغیرهایی که می خواهید export از طریق grok_exporter باید در لیست ذکر شود برچسب ها بخش همانطور که در تصویر زیر مشخص شده است.
همچنین میتوانید انواع الگوهای جدید ایجاد کنید و دادهها را از هر خط فایل گزارش با استفاده از انواع الگوهای جدید ایجاد شده مطابقت دهید.
برای ایجاد انواع الگوی جدید، انواع الگوها را در grok_patterns بخش از config.yml فایل.
به طور پیش فرض، یک نوع الگوی سفارشی EXIM_MESSAGE تعریف شده است، و می توان از آن برای مطابقت داده ها از فایل های گزارش با استفاده از عبارت منظم استفاده کرد [a-zA-Z ]*.
برای مطابقت با وضعیت HTTP (به عنوان مثال، دریافت، ارسال، قرار دادن، می توانید یک نوع الگوی جدید تعریف کنید HTTP_STATUS [A-Z]{3،4} و از آن برای مطابقت داده ها از فایل log به صورت زیر استفاده کنید. امیدوارم ایده گرفته باشید.
نسخه نهایی از config.yml فایل در تصویر زیر آورده شده است.
پس از انجام تغییرات در آن config.yml فایل، فشار دهید
برای اعمال تغییرات، دوباره راه اندازی کنید grok-صادر کننده سرویس systemd به شرح زیر است:
اگر همه چیز درست است (شما هیچ اشتباهی در فایل پیکربندی مرتکب نشده اید config.yml)، grok-صادر کننده سرویس systemd باید باشد فعال / در حال اجرا.
افزودن grok_exporter به Prometheus:
حالا باید اضافه کنید grok_exporter به پرومتئوس به عنوان یک هدف.
ابتدا باید آدرس IP رایانه ای که در آن نصب کرده اید را بدانید grok_exporter.
در مورد من، آدرس IP است 192.168.3.149. برای شما متفاوت خواهد بود. بنابراین، از هم اکنون آن را با مال خود جایگزین کنید روی.
سپس فایل پیکربندی Prometheus را باز کنید prometheus.yml با ویرایشگر متن نانو به صورت زیر:
در scrape_configs بخش از prometheus.yml فایل، خطوط را همانطور که در تصویر زیر مشخص شده است اضافه کنید.
توجه داشته باشید: فراموش نکنید که آدرس IP مورد نظر را جایگزین کنید grok-صادر کننده با آدرس IP رایانه ای که در آن دارید کار کنید grok_exporter نصب شده است.
برای اعمال تغییرات، دوباره راه اندازی کنید پرومتئوس سرویس systemd به شرح زیر است:
توجه داشته باشید: نصب کردم پرومتئوس روی همان کامپیوتر grok_exporter. بنابراین، آدرس IP رایانه ای که من Prometheus را در آن نصب کرده ام، همان grok_exporter است. در مورد من اینطور است 192.168.3.149. از هم اکنون آن را با مال خود جایگزین کنید روی.
اکنون، از اهداف بازدید کنید page پرومتئوس در آدرس اینترنتی http://192.168.3.149:9090/targetsو باید ببینید که grok-صادر کننده هدف در بالا حالت.
Scraping Metrics از grok_exporter با Prometheus:
قبل از شروع خراش دادن معیارها از grok_exporter با Prometheus، تولید کننده فایل لاگ ساختگی را راه اندازی کنید سلام-http با دستور زیر:
اکنون، از نمودار پرومتئوس دیدن کنید page در http://192.168.3.149:9090/graph و عبارت را اجرا کنید سلام_http_total.
همانطور که می بینید، داده ها از فایل log استخراج می شوند /tmp/hello-http.log. هر خط از فایل log یک ورودی جداگانه در Prometheus است.
همچنین می توانید داده ها را فیلتر کنید. برای مثال، فرض کنید میخواهید فقط ورودیهایی را فهرست کنید که در آن http_method GET است. برای انجام این کار، عبارت را اجرا کنید hello_http_total{http_method=”GET”}.
همچنین می توانید تعداد ورودی هایی را که با معیارهای خاصی مطابقت دارند، بشمارید. به عنوان مثال، برای شمارش تعداد درخواست های HTTP GET، می توانید عبارت را اجرا کنید count(hello_http_total{http_method=”GET”}.
همانطور که می بینید، تعداد درخواست های دریافت HTTP 30 است.
اگر بعد از چند ثانیه همان عبارت را اجرا کنید، تعداد درخواست های دریافت HTTP باید افزایش یابد.
بعد کجا برویم؟
برای کسب اطلاعات بیشتر در مورد پیکربندی grok_exporter، رسمی را بخوانید مستندات پیکربندی grok_exporter page.
نتیجه:
در این مقاله روش نصب grok_exporter را به شما نشان دادم روی اوبونتو 20.04 LTS. من همچنین به شما نشان داده ام که چگونه فایل های لاگ ساختگی را با داده های جعلی تولید کنید و grok_exporter را برای نظارت بر فایل لاگ تولید شده پیکربندی کنید. من به شما نشان دادم که چگونه grok_exporter را به عنوان هدف اضافه کنید روی پرومتئوس و همچنین فایل های لاگ را با پرومته نظارت کنید.
منابع:
- fstab/grok_exporter: معیارهای Prometheus را از دادههای لاگ بدون ساختار دلخواه صادر کنید.
- lucapette/fakedata: ابزار CLI برای تولید داده های جعلی
- افزونه فیلتر گروک | مرجع Logstash [7.15] | کشسان
- logstash-patterns/grok-patterns at master · hpcugent/logstash-patterns
- https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns/ecs-v1
- Logstash: جمع آوری، تجزیه، تبدیل گزارش ها | کشسان
- grok_exporter/CONFIG.md در master · fstab/grok_exporter
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1403-01-01 10:49:05