<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محمدرضا زارعی جلیانی</title>
        <link>https://virgool.io/feed/@mrz.jaliani</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 18:17:42</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/3697307/avatar/VMimow.jpg?height=120&amp;width=120</url>
            <title>محمدرضا زارعی جلیانی</title>
            <link>https://virgool.io/@mrz.jaliani</link>
        </image>

                    <item>
                <title>استفاده از Zabbix API و مانیتور کردن قیمت ارزهای دیجیتال</title>
                <link>https://virgool.io/@mrz.jaliani/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-zabbix-api-%D9%88-%D9%85%D8%A7%D9%86%DB%8C%D8%AA%D9%88%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D9%82%DB%8C%D9%85%D8%AA-%D8%A7%D8%B1%D8%B2%D9%87%D8%A7%DB%8C-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-wlhmompdwveb</link>
                <description>مقدمهدر مستند قبل فرایندی را شرح دادیم که با استفاده از اسکریپت پایتون اطلاعات مربوط به دمای هوا به  صورت لحظه ای دریافت و با استفاده از سرور زبیکس مقادیر دمای هوا مانیتور و هشدارهای مربوطه ایجاد میشد. این مستند در لینک زیر قابل دریافت است.مانیتور کردن فاکتورهای مختلف یک وب سایت در زبیکسدر این مستند، فرآیند مانیتورینگ قیمت ۱۰ ارز دیجیتال برتر را با استفاده از زبیکس، Zabbix API، Zabbix و Grafana توضیح می‌دهیم. این راهکار به ما امکان می‌دهد قیمت ارزهای دیجیتال را به‌صورت لحظه‌ای رصد کرده و تغییرات آن‌ها را روی داشبوردهای Grafana نمایش دهیم.توجه کنید که هدف از این کار آموزش مباحث مربوط به سرویس های مانیتورینگ زبیکس است و راهکارهای ارائه شده به هیچ عنوان به عنوان بهترین و موثرترین راهکار توصیه نمی گردد.برای انجام این پروژه گام های زیر طی شده است.1- نصب و راه اندازی سرور مانیتورینگ Zabbix2- نصب و راه اندازی سرور مانیتورینگ Grafana3- برقراری ارتباط بین سرورهای Zabbix و Grafana4- ایجاد اسکریپت برای کار با Zabbix API5- ایجاد داشبورد نمایش داده ها در محیط Grafanaگام های اول تا سوم مراحل ابتدایی و پایه ای این سناریو می باشد. اما در این داکیومنت از ارائه اطلاعات و نمایش جزئیات اجرای این گام ها به دو دلیل اساسی زیر پرهیز شده است:1- آموزش نصب و راه اندازی سرویس های Zabbix و Grafana در محیط وب به وفور وجود دارد و ذکر این مراحل در این داکیومنت تنها موجب طولانی شدن متن و تکرار مکررات خواهد بود.2- در آموزش قبل که لینک آن در ابتدای این داکیومنت ذکر شده است توضیحات کامل تری از پروسسه کار با محیط زبیکس درج شده است. در این قسمت تنها به ذکر مشخصات سرویس ها اکتفا می کنیم.Zabbix Server: 192.168.25.128 - Hostname and username: zabbix - Password: 1qaz!QAZGrafana Server: 192.168.25.132 - Hostname and username: grafana - Password: 1qaz!QAZگام چهارم: ایجاد اسکریپت برای کار با Zabbix APIاسکریپت نوشته در این بخش خود شامل بخش های مختلفی است که به صورت مجزا ذکر و شرح داده می شود. برای در اختیار داشتن اسکریپت کامل تنها کافی است بخش های مختلف را به صورت پشت سر هم در یک فایل با پسوند py ذخیره کنید.بخش اول: تعریف متغیرهای ابتدایی برای استفاده از اسکریپتimport requestsimport jsonimport subprocessZABBIX_API_URL = &quot;http://192.168.25.128/zabbix/api_jsonrpc.php&quot;ZABBIX_USERNAME = &quot;Admin&quot;ZABBIX_PASSWORD = &quot;zabbix&quot;ZABBIX_HOST_ID = &quot;10084&quot;COINGECKO_API_URL = &quot;https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&amp;order=market_cap_desc&amp;per_page=10&amp;page=1&quot;ZABBIX_SERVER = &quot;192.168.25.128&quot;  # Zabbix server IP or hostnameZABBIX_PORT = 10051  # Default Zabbix trapper portدر این اسکریپت ابتدا ماژولهای requests و json برای کار با api و ماژول subprocess برای تعامل با سیستم عامل و کنترل پراسس ها اضافه شده است. مورد کاربرد این ماژول در طی توضیح اسکریپت ذکر می شود.همچنین اطلاعات مربوط به سرور زبیکس برای کار با Zabbix API در این قسمت نوشته شده است.وظیفه دریافت اطلاعات ارزهای دیجیتال برای یکی از هاست های تعریف شده در زبیکس انتخاب شده است و در این قسمت Host ID مربوط به این هاست نیز ثبت شده است.همچنین GET Request دریافت اطلاعات ارزهای دیجیتال از سایت coingecko در این بخش تعریف شده است. درک این Request بسیار ساده است. همانطور که مشاهده می شود اطلاعات ده ارز دیجیتال اول در مارکت با یک درخواست GET ساده دریافت می شود.بخش دوم: تعریف تابع دریافت توکن از سرور زبیکسdef zabbix_login():    headers = {&quot;Content-Type&quot;: &quot;application/json&quot;}    data = {        &quot;jsonrpc&quot;: &quot;2.0&quot;,        &quot;method&quot;: &quot;user.login&quot;,        &quot;params&quot;: {            &quot;username&quot;: ZABBIX_USERNAME,            &quot;password&quot;: ZABBIX_PASSWORD        },        &quot;id&quot;: 1    }    response = requests.post(ZABBIX_API_URL, data=json.dumps(data), headers=headers)    outputs = response.json()    token = outputs[&#x27;result&#x27;]    return tokenبرای کار با Zabbix API باید اطلاعات Token معتبر در اختیار داشت. برای داشتن توکن دو راه وجود دارد. راه اول دریافت این توکن از محیط وب و ثبت در اسکریپت است. اما به دو دلیل این کار توصیه نمی شود. دلیل اول این است که در این آموزش ما در حال تلاش برای کار با Zabbix API هستیم و بهتر است تلاش شود تا بدون استفاده و کمک از محیط وب این کار انجام شود. اما در صورتی که اطلاعات توکن از محیط وب زبیکس دریافت و در اسکریپت ثبت شود ممکن است در اینده این توکن منقضی و عملکرد اسکریپت دچار وقفه شود. پس بهتر است هر بار توکن جدید دریافت شود.برای دریافت توکن از متد user.login استفاده شده است و اطلاعات لاگین شامل نام کاربری و رمز عبور با استفاده از متد POST برای URL Zabbix API ارسال شده است.در نهایت خروجی json دریافت شده شامل فیلد result است که رشته ای از کاراکترها است که به عنوان توکن باید در درخواست های بعدی برای سرور زبیکس ارسال شود.بخش سوم: دریافت لیست آیتم های هاست زبیکسدر این بخش با استفاده از یک تابع لیست ایتم های تعریف شده در هاست 10084 دریافت و ذخیره می شود. دلیل این کار این است که در هر بار اجرای اسکریپت نام ایتم هایی که قرار است ایجاد شود با این لیست چک شود و در صورت تکراری بودن تنها عمل آپدیت انجام شود تا از بروز خطای تعریف ایتم تکراری جلوگیری شود.def get_zabbix_item(auth_token, key):    headers = {&quot;Content-Type&quot;: &quot;application/json&quot;}    payload = {        &quot;jsonrpc&quot;: &quot;2.0&quot;,        &quot;method&quot;: &quot;item.get&quot;,        &quot;params&quot;: {            &quot;output&quot;: &quot;extend&quot;,            &quot;hostids&quot;: ZABBIX_HOST_ID,            &quot;filter&quot;: {                &quot;key_&quot;: key            }        },        &quot;auth&quot;: auth_token,        &quot;id&quot;: 2    }    response = requests.post(ZABBIX_API_URL, data=json.dumps(payload), headers=headers)    return response.json()بخش چهارم: ساخت آیتم در زبیکسدر این بخش با استفاده از لیست ارزهای دیجیتال دریافت شده در بخش دوم، برای هر ارز دیجیتال یک آیتم در هاست 10084 ساخته می شود.def create_zabbix_item(auth_token, coin_name, coin_symbol):    headers = {&quot;Content-Type&quot;: &quot;application/json&quot;}    payload = {        &quot;jsonrpc&quot;: &quot;2.0&quot;,        &quot;method&quot;: &quot;item.create&quot;,        &quot;params&quot;: {            &quot;name&quot;: f&quot;{coin_name} Price&quot;,            &quot;key_&quot;: f&quot;crypto_price_{coin_symbol}&quot;,            &quot;hostid&quot;: ZABBIX_HOST_ID,            &quot;type&quot;: 2,  # Zabbix Trapper            &quot;value_type&quot;: 0,  # Numeric (float)            &quot;delay&quot;: &quot;30s&quot;,  # Update interval            &quot;history&quot;: 3600,              &quot;trends&quot;: 86400,  # Store 365 trends            &quot;units&quot;: &quot;USD&quot;,            &quot;interfaceid&quot;: 0  # Corrected to 0        },        &quot;auth&quot;: auth_token,        &quot;id&quot;: 3    }    response = requests.post(ZABBIX_API_URL, data=json.dumps(payload), headers=headers)    return response.json()توضیح این بخش بسیار ساده است. همانطور که مشاهده می شود اطلاعات مورد نیاز برای ساخت هر ایتم که به صورت معمول در محیط وب  به صورت دستی در فیلدهای مربوطه وارد می شود در این بخش در قالب یک درخواست POST و در بخش payload برای سرور زبیکس ارسال می شود. متد مورد استفاده برای این کار item.create است و توکن دریافت شده در ابتدا نیز برای سرور ارسال می شود.بخش پنجم: ارسال داده ها به سرور Zabbixdef send_to_zabbix_trapper(host, key, value):    # Use zabbix_sender to send data to Zabbix    command = [        &quot;zabbix_sender&quot;,        &quot;-z&quot;, ZABBIX_SERVER,        &quot;-p&quot;, str(ZABBIX_PORT),        &quot;-s&quot;, host,        &quot;-k&quot;, key,        &quot;-o&quot;, str(value)    ]    result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)    return result.stdout.decode()این تابع برای ارسال داده ها به سرور Zabbix مورد استفاده قرار می گیرد و سه مقدار ورودی دریافت میکند. نام هاست و کلید مربوط به ایتم و مقدار ایتم.تابع subprocess.run برای اجرای دستور سیستم عامل مورد استفاده قرار می گیرد و خروجی استاندارد دستور در بخش stdout و خطاهای احتمالی رخ داده در stderr خروجی استاندارد خطا ثبت می شود. در نهایت با استفاده از تابع decode خروجی استاندارد به رشته (string) تبدیل می شود. در صورتی که در این بخش نیاز به توضیح بیشتری بود در بخش نظرات اعلام کنید تا به صورت کاملتر در خدمت شما باشم.بخش ششم: دریافت یک دیکشنری کامل از اطلاعات ارزهای دیجیتالdef fetch_cryptocurrencies():    response = requests.get(COINGECKO_API_URL)    return response.json()در این بخش یک دیکشنری کامل از اطلاعات ده ارز دیجیتال اول دریافت می شود.بخش هفتم: تابع maindef main():    # Log in to Zabbix API    auth_token = zabbix_login()    cryptocurrencies = fetch_cryptocurrencies()    for crypto in cryptocurrencies:        coin_name = crypto[&quot;name&quot;]        coin_symbol = crypto[&quot;symbol&quot;]        price = crypto[&quot;current_price&quot;]        item_key = f&quot;crypto_price_{coin_symbol}&quot;        # Check if the item already exists        item_exists = get_zabbix_item(auth_token, item_key)        if not item_exists.get(&quot;result&quot;):            # Item does not exist, create it            item_result = create_zabbix_item(auth_token, coin_name, coin_symbol)            if item_result.get(&quot;result&quot;):                print(f&quot;Created {coin_name} ({coin_symbol}): {item_result}&quot;)            else:                print(f&quot;Failed to create {coin_name} ({coin_symbol}): {item_result}&quot;)        else:            print(f&quot;Item for {coin_name} ({coin_symbol}) already exists. Skipping creation.&quot;)        # Send price data to Zabbix using zabbix_sender        send_result = send_to_zabbix_trapper(&quot;Zabbix server&quot;, item_key, price)        print(f&quot;Sent {coin_name} ({coin_symbol}) price to Zabbix: {send_result}&quot;)if __name__ == &quot;__main__&quot;:    main()بخش تابع main به سادگی تنها شامل دستورات شرط موجود بودن ایتم از قبل و اجرای تابع دریافت توکن و لیست ارزهای دیجیتال و ساخت ایتم می باشد. در خط انتهایی نیز تابع main اجرا می شود.با هر بار اجرای این اسکریپت، اطلاعات ده ارز دیجیتال دریافت و ضمن ایجاد ایتم برای هر ارز، قیمت آنها نیز در دیتابیس سرور زبیکس ذخیره می شود.برای اینکه این اسکریپت به صورت خودکار هر پنج دقیقه یک بار اجرا شود ما از دستور cron در لینوکس استفاده کرده ایم:crontab -e*/5 * * * * /usr/bin/python3 /path/to/your/script.pyشما می توانید از هر نوع task scheduler مدنظر خود استفاده کنید.گام پنجم: ایجاد داشبورد نمایش داده ها در سرور Grafanaبرای داشتن یک داشبورد که اطلاعات ارزهای دیجیتال را نمایش دهد وارد بخش ساخت داشبورد شده و اطلاعات ده ارز دیجیتال را به شکل زیر وارد می کنیم:Group: Zabbix serversHost: /.*/Item tag: cryptoItem: &lt;Your coin name&gt;توجه کنید که ما برای هر ایتم به صورت دستی tag تعریف کرده ایم. همچنین نام گروه سرور در سناریو شما ممکن است متفاوت باشد.این مرحله برای هر ده ارز می بایست تکرار شود.در نهایت داشبورد خود را به شکل دلخواه چیدمان کنید.پی‌نوشت: این دومین مقاله‌ای هست که در ویرگول نوشتم و امیدوارم برای شما مفید باشه. هدفم اینه که چیزهایی که یاد می‌گیرم رو به اشتراک بذارم تا هم به دیگران کمک کنم و هم خودم بیشتر یاد بگیرم. به نظرم وقتی تجربه‌هامون رو با بقیه درمیون می‌ذاریم، هم فرصت رشد برای خودمون ایجاد می‌شه و هم می‌تونیم به دیگران کمک کنیم تا راحت‌تر چالش‌هاشون رو حل کنن. اگر نظری یا پیشنهادی دارید، خوشحال می‌شم بدونم.به تاریخ: 1403.11.14</description>
                <category>محمدرضا زارعی جلیانی</category>
                <author>محمدرضا زارعی جلیانی</author>
                <pubDate>Sun, 02 Feb 2025 12:56:45 +0330</pubDate>
            </item>
                    <item>
                <title>مانیتور کردن فاکتورهای مختلف یک وب سایت در زبیکس</title>
                <link>https://virgool.io/@mrz.jaliani/web-monitoring-with-api-in-zabbix-jtcy9jtrt04n</link>
                <description>Web Monitoring in Zabbixمقدمهزبیکس (Zabbix) یک سیستم متن‌باز و قدرتمند برای نظارت و مانیتورینگ شبکه، سرورها و برنامه‌ها است. این نرم‌افزار به طور گسترده‌ای در محیط‌های سازمانی برای نظارت بر عملکرد و سلامت سیستم‌های کامپیوتری استفاده می‌شود. زبیکس قابلیت نظارت بر پارامترهای مختلف مانند استفاده از CPU، حافظه، فضای دیسک، وضعیت سرویس‌ها و همچنین متریک‌های سفارشی را فراهم می‌کند. از ویژگی‌های برجسته زبیکس می‌توان به رابط کاربری کاربرپسند، امکان هشداردهی و گزارش‌دهی دقیق، و قابلیت مقیاس‌پذیری بالا اشاره کرد. این سیستم به مدیران شبکه و سیستم کمک می‌کند تا مشکلات را پیش‌بینی و به موقع حل کنند، همچنین به تحلیل عملکرد سیستم‌ها کمک می‌نماید.Zabbix Dashboardیکی از کاربردهای مانیتورینگ زبیکس، پایش وب سایت است و برای این منظور سرویس وب سناریو در محیط زبیکس طراحی شده است. مانیتورینگ وب‌سایت با استفاده از وب‌سناریوی زبیکس ابزار قدرتمندی برای بررسی در دسترس بودن و زمان پاسخ‌دهی صفحات وب است و معمولاً بر پایه تعامل با عناصر ساده وب، مانند ارسال درخواست HTTP، عمل می‌کند. اما در مانیتورینگ با کمک API، امکان نظارت بر جزئیات و متریک‌های پیچیده‌تر مانند وضعیت سرورها، داده‌های پویا، و اطلاعات خاص برنامه‌ها وجود دارد.این قابلیت به مدیران سیستم و توسعه‌دهندگان این امکان را می‌دهد که متریک‌های حیاتی مانند وضعیت سرورها، زمان پاسخ‌دهی، دما، بار CPU و حتی تغییرات محتوای سایت را به صورت بلادرنگ رصد کنند. از کاربردهای این رویکرد می‌توان به تشخیص سریع مشکلات فنی، بهبود تجربه کاربری، کاهش زمان از کارافتادگی (Downtime) و تحلیل عملکرد سیستم‌ها اشاره کرد. همچنین، با استفاده از API می‌توان داده‌ها را با ابزارهای تحلیل دیگر یکپارچه کرد و گزارش‌های دقیق‌تری برای تصمیم‌گیری استراتژیک تهیه نمود. این ویژگی‌ها به کسب‌وکارها کمک می‌کند تا همیشه در اوج بهره‌وری و رضایت مشتریان باقی بمانند.برای تست این ویژگی در زبیکس یک سناریو ساده طراحی کردیم تا عملکرد زبیکس در این حوزه را بسنجیم. در این سناریو، دمای هوای شهر مشهد هر یک دقیقه یک بار پایش می شود و در صورتی که دمای هوا کمتر از پانزده درجه سانتیگراد شود، هشدار پوشیدن کاپشن در زبیکس ایجاد می شود.آلارم دمای هوای مشهدمراحل انجام کار:1- دریافت API هواشناسی: برای دریافت دمای هوای مشهد، نیاز به API از یک سایت هواشناسی داشتیم. من در این سناریو از وب سایت openweathermap.org استفاده کردم. باید در این سایت ثبت نام کنید و سپس یک توکن برای کار با API این سایت به صورت رایگان ایجاد کنید. در نهایت Get Request ما به شکل زیر خواهد شد:https://api.openweathermap.org/data/2.5/weather?q=Mashhad,IR&amp;appid=YOUR_API_KEY&amp;units=metricبهتر است قبل از استفاده از این ریکوئست، یک بار در ابزارهایی مانند Postman آن را تست کنید.Postman API GET Request2- فعال کردن اسکریپت های زبیکس: برای فعال کردن اسکریپت‌های خارجی در زبیکس، باید تنظیمات مربوطه را در فایل کانفیگ سرور زبیکس تغییر دهید. فایل تنظیمات معمولاً در مسیر زیر قرار دارد:/etc/zabbix/zabbix_server.confدر این فایل، گزینه‌ای به نام ExternalScripts وجود دارد که باید مسیر دایرکتوری اسکریپت‌های خارجی را به درستی تنظیم کنید (معمولاً /usr/lib/zabbix/externalscripts/). این خط به صورت پیشفرض در حالت کامنت است و باید # اول خط را پاک کنید./etc/zabbix/zabbix_server.confپس از انجام تغییرات، فایل را ذخیره کرده و سرور زبیکس را با دستور زیر ریستارت کنید تا تنظیمات جدید اعمال شوند:sudo systemctl restart zabbix-serverاین مرحله برای اجرای اسکریپت‌های سفارشی و یکپارچه‌سازی داده‌های خارجی ضروری است.3- ایجاد اسکریپت برای دریافت داده ها: برای ایجاد اسکریپت زبیکس جهت بررسی داده‌های خارجی (مانند دما)، ابتدا یک فایل اسکریپت در دایرکتوری مشخص‌شده برای اسکریپت‌های خارجی ایجاد کنید. به عنوان مثال، می‌توانید فایلی با نام check_temperature.py در مسیر زیر ایجاد کنید:touch /usr/lib/zabbix/externalscripts/check_temperature.pyاین مسیر در فایل zabbix_server.conf مشخص شده است و در صورتی که قصد تغییر آن را دارید در فایل کانفیگ سرور نیز می بایست این دایرکتوری را تغییر دهید.سپس باید دسترسی‌های لازم را به این فایل اختصاص دهید؛ ابتدا با دستور chmod +x فایل را اجرایی کنید و سپس با دستور chown zabbix:zabbix مالکیت آن را به کاربر و گروه زبیکس تغییر دهید. در سناریو ما نام کاربر در سرور زبیکس نیز zabbix است. این گام تضمین می‌کند که سرور زبیکس بتواند اسکریپت را بدون مشکل اجرا کند. اسکریپت آماده‌شده در گام بعدی برای دریافت داده از API یا منابع دیگر استفاده خواهد شد.chmod +x /usr/lib/zabbix/externalscripts/chown zabbix:zabbix /usr/lib/zabbix/externalscripts/حال نوبت به نوشتن اسکریپت می رسد. برای نوشتن اسکریپت از زبان پایتون استفاده شده است. در زمان نوشتن اسکریپت باید به دانش فنی اعضای تیم و سازگاری با سرور زبیکس توجه کرد. اما در هر حال استفاده از زبان هایی مانندد Bash، C و Python برای این کار مناسب است.vim /usr/lib/zabbix/externalscripts/check_temperature.py
-----------------------------------------------------------------------------------------------------------#!/usr/bin/env python3
import requests
import sys
 
API_KEY = &amp;quotYOUR_API_KEY&amp;quot
CITY = &amp;quotMashhad&amp;quot
COUNTRY = &amp;quotIR&amp;quot
URL = f&amp;quothttp://api.openweathermap.org/data/2.5/weather?q={CITY},{COUNTRY}&amp;appid={API_KEY}&amp;units=metric&amp;quot
 
def get_temperature():
    try:
        response = requests.get(URL, timeout=10)
        response.raise_for_status()
        data = response.json()
        temperature = data[&#039;main&#039;][&#039;temp&#039;]
        return temperature
    except requests.exceptions.RequestException as e:
        print(f&amp;quotError: {e}&amp;quot, file=sys.stderr)
        return None
    except KeyError:
        print(&amp;quotError: Invalid response format&amp;quot, file=sys.stderr)
        return None
 
def main():
    temperature = get_temperature()
    if temperature is not None:
        print(temperature)
    else:
        print(0.0)
        sys.exit(1)
 
if __name__ == &amp;quot__main__&amp;quot:
    main()4- ایجاد آیتم برای دریافت داده ها در زبیکس: برای ایجاد یک آیتم در زبیکس جهت مانیتور کردن دمای هوا، مراحل زیر را انجام دهید:ابتدا به رابط کاربری زبیکس وارد شده و به بخش Configuration &gt; Hosts بروید. Host مورد نظر خود را انتخاب کنید یا یک میزبان جدید برای این هدف ایجاد کنید. سپس در تب Items، روی گزینه Create Item کلیک کنید.  در فرم باز شده، موارد زیر را تنظیم کنید:Name: Check Temperature in Mashhadاین نام دلخواه است.Type: External Checkگزینه External Check در زبیکس برای اجرای اسکریپت‌ها یا برنامه‌های خارجی که در خارج از محیط زبیکس اجرا می‌شوند، استفاده می‌شود. این گزینه به شما امکان می‌دهد تا با استفاده از یک فایل اجرایی یا اسکریپت، داده‌هایی را که مستقیماً توسط زبیکس قابل جمع‌آوری نیستند، دریافت و به سیستم اضافه کنید.Key: check_temperature.pyنام اسکریپت نوشته شده در این بخش قرار می گیرد.Type of Information Numeric (float)با توجه به اینکه خروجی اسکریپتی که نوشتیم به صورت عددی است، نوع داده ها هم از نوع عددی انتخاب شود.Update Interval: 1mاین بخش مشخص میکند که اجرای اسکریپت در چه بازه زمانی تکرار شود. به صورت تستی ما هر یک دقیقه را انتخاب کردیم.پس از پر کردن تنظیمات، روی Add کلیک کنید تا آیتم ذخیره شود. این گام اطمینان حاصل می‌کند که زبیکس به صورت خودکار داده‌های دما را از اسکریپت فراخوانی کرده و در داشبورد نمایش می‌دهد.Create Item4- ایجاد تریگر برای ایجاد آلارم در زبیکس: برای ایجاد یک تریگر (Trigger) در زبیکس، که بتواند هشدارهای لازم را بر اساس داده‌های جمع‌آوری‌شده (مانند دما) ایجاد کند، مراحل زیر را دنبال کنید:ورود به بخش Triggers: وارد رابط کاربری زبیکس شوید و به مسیر Configuration &gt; Hosts بروید. میزبان مرتبط با آیتمی که در گام قبل ایجاد کرده‌اید را انتخاب کنید. سپس به تب Triggers بروید و روی گزینه Create Trigger کلیک کنید.تنظیمات تریگر: در فرم باز شده، تنظیمات زیر را وارد کنید:Name: هوا سرده کاپشن بپوشدر اینجا پیغام دلخواهی که در متن هشدار میخواهید نمایش داده شود را وارد کنید.Severity: Criticalدرجه اهمیت آلارم را می توانید در این بخش وارد کنید. این مقدار دلخواه و متناسب با سناریو شما انتخاب میشود.Expression: last(/Zabbix server/check_temperature.py)&lt;15در این بخش یک شرط برای ایجاد آلارم تعریف می شود. در شرط ما ذکر شده که اگر آخرین خروجی اسکریپت کمتر از ۱۵ شود آلارم ایجاد شود.Operational Data: Current temperature: {ITEM.LASTVALUE} °Cبا وارد کردن فیلد operational data آخرین خروجی اسکریپت و دمای دریافت شده در پنل مانیتورینگ و همراه با اطلاعات آلارم نمایش داده میشود.Create Triggerپس از وارد کردن اطلاعات، تنظیمات را ذخیره کنید. زبیکس در صورت برآورده شدن شرط (مثلاً دمای زیر صفر)، تریگر فعال می‌شود و به شما هشدار می‌دهد. این گام به شما امکان می‌دهد که نظارت فعال داشته باشید و هنگام وقوع شرایط خاص (مانند دمای غیرعادی)، بلافاصله مطلع شوید و اقدامات لازم را انجام دهید.در زبیکس، با استفاده از گزینه Graphs می‌توانید تغییرات مقدار آیتم‌های مانیتور شده را به صورت گرافیکی مشاهده کنید. این قابلیت به شما امکان می‌دهد تا روندها، نوسانات و تغییرات داده‌ها را در طول زمان بررسی کنید و از رفتار غیرعادی یا تغییرات ناگهانی مطلع شوید. برای مشاهده گراف، کافی است به صفحه مربوط به Host یا آیتم مورد نظر رفته و گراف مرتبط را باز کنید. این ابزار بصری برای تحلیل داده‌ها و تصمیم‌گیری سریع بسیار مفید است.Graphمانیتورینگ عناصر مختلف وب‌سایت با استفاده از زبیکس و API نه تنها امکان نظارت دقیق بر عملکرد سیستم‌ها را فراهم می‌کند، بلکه از طریق هشدارهای بلادرنگ و گزارش‌های جامع، به پیشگیری از مشکلات و بهبود عملکرد کلی کمک می‌کند. استفاده از چنین روش‌هایی انعطاف‌پذیری بیشتری به تیم‌های فنی می‌دهد و تضمین می‌کند که سامانه‌ها همیشه در دسترس و کارآمد باشند.  با اجرای این راهکار، می‌توان اطلاعات ارزشمندی مانند دما، زمان پاسخ‌دهی، و سلامت سرویس‌ها را به‌طور مداوم نظارت کرد و در صورت بروز مشکلات، اقدامات لازم را به سرعت انجام داد. این فرایند، نقشی کلیدی در کاهش زمان خرابی، افزایش رضایت کاربران، و بهبود بهره‌وری سازمان ایفا می‌کند.  پیاده‌سازی موفقیت‌آمیز این پروژه نشان می‌دهد که با ترکیب ابزارهای قدرتمندی مانند زبیکس و قابلیت‌های API، می‌توان به یک سیستم نظارت یکپارچه و هوشمند دست یافت که آینده‌نگر و قابل توسعه است.پی‌نوشت: این اولین مقاله‌ای هست که در ویرگول نوشتم و امیدوارم برای شما مفید باشه. هدفم اینه که چیزهایی که یاد می‌گیرم رو به اشتراک بذارم تا هم به دیگران کمک کنم و هم خودم بیشتر یاد بگیرم. به نظرم وقتی تجربه‌هامون رو با بقیه درمیون می‌ذاریم، هم فرصت رشد برای خودمون ایجاد می‌شه و هم می‌تونیم به دیگران کمک کنیم تا راحت‌تر چالش‌هاشون رو حل کنن. اگر نظری یا پیشنهادی دارید، خوشحال می‌شم بدونم.به تاریخ: 1403.09.24</description>
                <category>محمدرضا زارعی جلیانی</category>
                <author>محمدرضا زارعی جلیانی</author>
                <pubDate>Sun, 15 Dec 2024 19:50:24 +0330</pubDate>
            </item>
            </channel>
</rss>