در آموزش قبلی نحوه Integrate کردن زبیکس با تلگرام را به جهت ارسال متن (Text) پیغام های هشدار و آلارم های Zabbix به تلگرام (کانال، گروه، بات) را آموزش دادیم. در این آموزش قصد داریم نحوه ارسال تصاویر گراف های زبیکس را به تگرام آموزش دهیم.
شما میتوانید قابلیت ها زیر را جهت راه اندازی ارسال گراف های Zabbix به Telegram داشته باشید.
همچنین توصیه میشود مطالعه بفرمایید.
آموزش نصب آخرین ورژن مانیتورینگ زبیکس
نیاز ها :
تنظیمات :
قبل از هر کاری، شما نیاز دارید python و ماژول requests را برای پایتون نصب کنید که برای هدف بالا مورد نیاز است. برای این منظور همانند زیر python-pip و request را نصب کنید.
در توزیع های Debian/Ubuntu
در توزیع های CentOS/RHEL
ابتدا ریپازیتوری Epel را روی سرور خود فعال کنید. سپس دستور زیر را وارد کنید.
مطمئن شوید که zabbix server روی سرورتان در حال اجرا باشد. پیش نیاز نصب pyTelegramBotAPI میباشد که همانند زیر با استفاده از دستور pip برای نصب اقدام کنید.
توصیه میشود پکیج های security را همانند زیر نصب کنید.
ممکن است به آپدیت کردن پکیج requests نیاز پیدا کنید. برای انجام update همانند زیر عمل کنید.
همچنین توصیه میشود مطالعه کنید :
نحوه ارسال پیغام ها، هشدارها و آلارم های زبیکس به یک کانال یا گروه در تلگرام
آموزش نصب و راه اندازی Zabbix 3 در RedHat/CentOS
آموزش نصب و راه اندازی Zabbix 3 در Debian/Ubuntu
Zabbix چیست ؟
سوالات مربوط به زبیکس
طریقه نصب Pip از Source
در صورتی که قصد دارید pip از source نصب کنید همانند زیر اقدام کنید.
ساخت Bot در Telegram
برای ساخت یک بات در تلگرام باید از طریق ربات @BotFather اقدام کنید. در ابتدا باید برای bot که قصد داریم ایجاد کنیم یک اسم انتخاب کنیم. برای این کار باید دستور /newbot را از طریق BotFather اجرا کنیم، سپس از شما یک نام برای بات ایجاد شده میخواهد، یک نام مناسب برای خود انتخاب کنید. (در این مثال linuxzone_forums میباشد)
بعد از این مرحله bot از شما یک username میخواهد. یوزر خود را وارد کنید و در انتهای اسم مورد نظرتان "_bot" را هم وارد کنید. (مثلا userlinuxzone_bot)
وقتی شما یوزر bot تان را وارد میکنید @BotFather به شما یک token نمایش میدهد. آنرا در جایی ذخیره کنید و به صورت امن از آن نگهداری کنید. برای مثال :
نکته : اگر قصد دارید bot را در یک گروه استفاده کنید باید قبل از تست آنرا به گروه add کنید. برای اضافه کردن bot به یک کانال باید بات را به عنوان یک addministrator اضافه کنید.
هماهنگی Zabbix با Telegram
با استفاده از دستور cat در سرور زبیکس مان مسیر دایرکتوری Alert را پیدا کنید. در اینجا "/usr/lib/zabbix/alertscripts" میباشد.
اسکریپت zabbix-to-telegram را که به پیوست میباشد دانلود و به دایرکتوری alertscript خود انتقال دهید.
Zabbix-in-Telegram-master.zip
توضیحات اسکریپت بالا :
ابتدا وارد دایرکتوری alertscript شده و سپس سطح دسترسی فایل های zbxtg.py و zbxtg_setting.py را تغییر داده و به آنها پرمیژن اجرایی دهید.
فایل zbxtg_settings.py را باز کنید و API Token که از طریق botfather ایجاد کردیم را در قسمت tg_key وارد میکنیم.
در قسمت zbx_server آدرس کامل url سرور و در قسمت zbx_api_user و zbx_api_pass هم یوزر و پسوردی که در مرحله بعد (بخش تنظیمات Users و Groups) ایجاد میکنیم را وارد کنید و تغییرات را ذخیره و خارج شوید.
اگر شما نیاز به یک اینترنت پراکسی دارید، host:port مربوط به proxy را در فایل zbxtg_setting تعریف کنید.
تست ارتباط Zabbix با Telegram
به جهت اینکه متوجه بشیم سرور زبیکس مان با تلگرام Integrate شده و پیغام ها و آلارم ها را به سمت گروه یا کانال در تلگرام ارسال میکنید یا نه، میتوانیم با استفاده از اسکریپتی که در بالا دانلود کردیم، به همراه آیدی تلگرام خودتان این تست را انجام دهیم. برای این کار دستور ./zbxtg.py "<username>" "<message_subject>" "<message_body>" --debug را اجرا کنید.
توضیحات دستور بالا :
برای مثال :
شما میتوانید " (کوتیشن) را حذف کنید. (استفاده از آنها اختیاری میباشد)
اگر همه چیز اوکی باشد باید پیغامی متنی که از سمت سرور به سمت bot تلگرام ارسال کردید را در چت تلگرام تان مشاهده کنید.
جهت چک کردن اینکه گراف های سرور Zabbix به Bot تلگرام میرسد، میتوانید دستور زیر را استفاده کنید. (به جای آیدی تلگرام من شما آیدی خود را قرار دهید)
همانند بالا اگر مشکلی وجود نداشته باشد شما باید تصویر گراف را در چت تلگرام تان مشاهده کنید. (در عکس زیر چون دسترسی کامل نیست گراف را به صورت کامل نمایش نمیدهد)
تنظیمات Media Type
از طریق منوی Administration, Media types روی دکمه Create media type کلیک کنید. در قسمت Name یک نام دلخواه وارد میکنیم. بخش Type را بر روی گزینه Script تنظیم میکنیم. در قسمت Script name نام اسکریپتی که دانلود کردیم "zbxtg.py" را وارد میکنیم، سپس روی دکمه Add کلیک میکنیم.
اگر از zabbix 3.0.1 به بعد استفاده میکنید، این پارامترها را هم به بخش Script parameters اضافه کنید. (همانند تصویر بالا)
در صورتی که میخواهید پیام ها به گروه نیز ارسال شود همانند زیر یک مدیای دیگر، نیز اضافه کنید.
تنظیمات Actions
اینترفیس Web زبیکس را باز کنید، سپس به منوی Configuration, Actions رفته و بر روی Creat Action کلیک کنید.
در تب Action
Name : نامی دلخواه برای action مان وارد میکنیم.
New condition : این بخش را روی Host گذاشته و از طریق دکمه select هاست مورد نظری که قرار هست مانیتور شود و اطلاعات آن به کانال/گروه تلگرام ارسال شود را انتخاب میکنیم و روی دکمه Add جهت اضافه شدن مواردی که انتخاب کردیم به مدیا، کلیک میکنیم. (این بخش را به دلخواه خود میتوانید تنظیم کنید و اگر نیاز هست میتوانید یک Host group انتخاب کنید که گروهی از هاست ها را برای شما مانیتور کند و یا ...)
در تب Operations
Default subject :
کد زیر را در این بخش کپی کنید.
Default message :
محتویات این بخش را حذف کنید و کدهای زیر را در آن کپی کنید. (چهار مورد آخر Optional میباشد و به اختیار میتوانید بگذارید)
تفسیر کدهای بالا :
فیلد Subject و Message باید به صورتی که شما نیاز دارید تنظیم شود. همچنین این قسمت تگ HTML را نیز ساپورت میکند.
بر روی دکمه New در بخش Operations جهت انجام تنظیمات ارسال پیغام ها یا آلارم ها، که به چه افرادی و از چه مدیاهایی فرستاده شود کلیک کنید.
در بخش Operation details در قسمت Send to User groups ما میتوانیم گروهی که قصد داریم پیغام ها و آلارم ها و ... به آنها ارسال شود را انتخاب کنیم و در قسمت Send to Users هم ما میتوانیم فقط یوزر هایی که باید به آنها پیغام ها و ... ارسال شود را انتخاب کنیم. این بخش اختیاری میباشد و به دلخواه خود میتوانید تنظیم کنید که پیغام ها و هشدارها به گروه ارسال شود یا به یک یوزر خاص.
برای اضافه کردن یک یوزر بر روی دکمه Add از قسمت Send to User کلیک کنید و از پنجره باز شده (پنجره Users) یوزرهای کاربری خود را انتخاب کنید و جهت اضافه شدن آنها روی دکمه Select کلیک کنید.
از بخش Send only to هم گزینه telegram_graphs که در مراحل قبل از تب Media ایجاد کردیم را انتخاب میکنیم که هشدارها و پیغام های مورد نظرمان را از طریق این مدیا به اطلاع کاربران برساند. در اینجا یوزر mohammad و admin را انتخاب کردم، که هشدارها و پیغام های سرور Zabbix به این یوزرها ارسال شود. بر روی دکمه Add جهت اضافه شدن تغییرات جدید کلیک کنید.
در تب Recovery operations
بخش Recovery operations هم همانند بخش قبل تنظیم کنید و یوزر هایی که باید پیغام های ریکاوری دریافت کنند را به همراه اکشن آنها انتخاب کنید و تغییرات را ذخیره کرده.
Default subject :
کد زیر را در این بخش کپی کنید.
Default message :
محتویات این بخش را حذف کنید و کدهای زیر را در آن کپی کنید. (چهار مورد آخر Optional میباشد و به اختیار میتوانید بگذارید)
در آخر بر روی دکمه Add کلیک کنید که تنظیمات Action که ایجاد کردیم ساخته شود.
تنظیمات Users و Groups
در ابتدا یک گروه readonly برای دریافت تصاویر گراف از زبیکس ایجاد کنید. وارد منوی Administration --> User groups شده و روی دکمه Create user group کلیک کنید. در قسمت Group name یک نام برای گروه خود انتخاب کنید. (در این سناریو من نام گروه خود را Monitoring گذاشتم) سپس روی تب Permissions کلیک کنید.
در تب Permissions در ستون Read only روی دکمه Add کلیک کنید، سپس از پنجره ای که باز میشود هاست های مورد نظرتان را انتخاب و روی دکمه Select جهت اضافه شدن به بخش Read only کلیک کنید.
بعد از اضافه شدن هاست های مورد نظرتان جهت اعمال تغییرات روی دکمه Add کلیک کنید که گروهی که میخواهیم ایجاد شود.
اکنون یک یوزر با دسترسی محدود از طریق عضو کردن در گروه monitoring برای دریافت گراف های زبیکس از طریق منوی Administration --> Users --> Create new user ایجاد کنید.
در این سناریو من یوزر "api" را با پسورد "api" ایجاد میکنم و گروه کاربری آنرا روی گروه monitoring که در مرحله قبل ایجاد کردیم را به جهت محدود کردن دسترسی قرا میدهم. برای این منظور روی دکمه Add کلیک کنید و از پنجره User groups گروه monitoring را انتخاب کنید و روی دکمه Select جهت اضافه شدن یوزر به این گروه کلیک کنید، سپس برای نهایی شدن تغییرات روی دکمه Add کلیک کنید.
نکته : user و password یوزر "api" که ایجاد کردیم در فایل abxtg_setting.py تعریف میشود که در بالا نحوه ست کردن آنرا توضیح دادیم.
سپس یوزر دیگری (mohammad) جهت دریافت پیغام ها و آلارم های زبیکس ایجاد کنید، سپس مدیایی Telegram-Group که در مرحله قبل اضافه کردیم را از طریق منوی Media به یوزرمان Add میکنیم.
از پنجره باز شده (پنجره Media) در قسمت Type نوع مدیایی که قرار هست از طریق آن آلارم ها و هشدارها ارسال شود را انتخاب میکنیم. (مدیای telegram-graphs را که در مراحل قبل ایجاد کردیم را انتخاب کنید). در قسمت Send to باید Telegram ID خودتان را وارد کنید.
نکته :
در بخش Use if severity میتوانید تعیین کنید که چه نوع از هشدارها برای یوزر مد نظرتان ارسال شود. هر کدام را که نمیخواهید تیک آنرا بردارید و به دلخواه تنظیمات خود را انجام دهید سپس روی دکمه Add کلیک کنید.
بر روی دکمه Add صفحه Users کلیک کنید تا یوزرتان به همراه تنظیماتی که انجام دادید به لیست یوزرهای سرور زبیکس اضافه شود.
کار به اتمام رسیده است. کافیست منتظر بمانید یکی از Alert های زبیکس فعال شود و آن پیغام/هشدار را سرور زبیکس به همراه عکس گراف آن به کانال یا گروه تلگرام که تعیین کردیم ارسال شود. در اینجا چند نمونه هشدار که از طرف سرور zabbix من به ربات تلگرامی که ایجاد کردم ارسال شده، را به همراه گراف آنها مشاهده میکنید.
شما میتوانید پیغام ها را به دلخواه خود تنظیم کنید که چه مقدار از متن هشدار یا عکس graph را به کانال یا گروه تلگرام تان ارسال کند.
مشکلات احتمالی
اگر شما error بالا را مشاهده کردید این به این معناست که شما به حد آخر طول Symbol ها (200 سیمبل) در عنوان (caption) رسیده اید. (که جزء محدودیت های API تلگرام میباشد) این چنین عنوان هایی (caption) به صورت اتوماتیک به 200 کاراکتر محدود میشوند.
موفق باشید// علیرضا ذبیحی
شما میتوانید قابلیت ها زیر را جهت راه اندازی ارسال گراف های Zabbix به Telegram داشته باشید.
- گراف ها بر اساس latest data مستقیما به messenger شما ارسال میشوند.
- شما میتوانید پیام ها هم به چت private و چت گروهی ارسال کنید.
- پشتیبانی از کانال های تلگرام
- ذخیره ChatID به عنوان یک فایل موقت
- HTML و Markdown ساده نیز پشتیبانی میشود.
- همچنین در پیام ها میتوان از Emoji استفاده کرد.
همچنین توصیه میشود مطالعه بفرمایید.
آموزش نصب آخرین ورژن مانیتورینگ زبیکس
نیاز ها :
- مدیریت آسان زبیکس از طریق دستورات BOT
- توانایی ارسال گراف پیچیده یا بخشی از صفحه
تنظیمات :
قبل از هر کاری، شما نیاز دارید python و ماژول requests را برای پایتون نصب کنید که برای هدف بالا مورد نیاز است. برای این منظور همانند زیر python-pip و request را نصب کنید.
در توزیع های Debian/Ubuntu
کد PHP:
# apt-get install python-pip
در توزیع های CentOS/RHEL
ابتدا ریپازیتوری Epel را روی سرور خود فعال کنید. سپس دستور زیر را وارد کنید.
کد PHP:
# yum install python-pip
مطمئن شوید که zabbix server روی سرورتان در حال اجرا باشد. پیش نیاز نصب pyTelegramBotAPI میباشد که همانند زیر با استفاده از دستور pip برای نصب اقدام کنید.
کد PHP:
# pip install pyTelegramBotAPI
توصیه میشود پکیج های security را همانند زیر نصب کنید.
کد PHP:
# pip install pyopenssl ndg-httpsclient pyasn1
ممکن است به آپدیت کردن پکیج requests نیاز پیدا کنید. برای انجام update همانند زیر عمل کنید.
کد PHP:
# pip install -U requests
همچنین توصیه میشود مطالعه کنید :
نحوه ارسال پیغام ها، هشدارها و آلارم های زبیکس به یک کانال یا گروه در تلگرام
آموزش نصب و راه اندازی Zabbix 3 در RedHat/CentOS
آموزش نصب و راه اندازی Zabbix 3 در Debian/Ubuntu
Zabbix چیست ؟
سوالات مربوط به زبیکس
طریقه نصب Pip از Source
در صورتی که قصد دارید pip از source نصب کنید همانند زیر اقدام کنید.
کد PHP:
# git clone https://github.com/eternnoir/pyTelegramBotAPI.git
# cd pyTelegramBotAPI
# python setup.py install
ساخت Bot در Telegram
برای ساخت یک بات در تلگرام باید از طریق ربات @BotFather اقدام کنید. در ابتدا باید برای bot که قصد داریم ایجاد کنیم یک اسم انتخاب کنیم. برای این کار باید دستور /newbot را از طریق BotFather اجرا کنیم، سپس از شما یک نام برای بات ایجاد شده میخواهد، یک نام مناسب برای خود انتخاب کنید. (در این مثال linuxzone_forums میباشد)
کد PHP:
/newbot
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
linuxzone_forums
بعد از این مرحله bot از شما یک username میخواهد. یوزر خود را وارد کنید و در انتهای اسم مورد نظرتان "_bot" را هم وارد کنید. (مثلا userlinuxzone_bot)
کد PHP:
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
userlinuxzone_bot
Done! Congratulations on your new bot. You will find it at t.me/userlinuxzone_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API:
413051254:AAE2BMWsPIKADhrUBZqVuBXr5LWEWNqb_4E
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
وقتی شما یوزر bot تان را وارد میکنید @BotFather به شما یک token نمایش میدهد. آنرا در جایی ذخیره کنید و به صورت امن از آن نگهداری کنید. برای مثال :
کد PHP:
token: 413051254:AAE2BMWsPIKADhrUBZqVuBXr5LWEWNqb_4E
نکته : اگر قصد دارید bot را در یک گروه استفاده کنید باید قبل از تست آنرا به گروه add کنید. برای اضافه کردن bot به یک کانال باید بات را به عنوان یک addministrator اضافه کنید.
هماهنگی Zabbix با Telegram
با استفاده از دستور cat در سرور زبیکس مان مسیر دایرکتوری Alert را پیدا کنید. در اینجا "/usr/lib/zabbix/alertscripts" میباشد.
کد PHP:
cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
اسکریپت zabbix-to-telegram را که به پیوست میباشد دانلود و به دایرکتوری alertscript خود انتقال دهید.
Zabbix-in-Telegram-master.zip
توضیحات اسکریپت بالا :
- فایل zbxtg.py در دایرکتوری AlertScriptPath قرار دهید که این مسیر درون فایل zabbix_server.conf شما تعریف شده است.
- فایل zbxtg_group.py را اگر میخواهید که پیغام ها را به چت گروهی ارسال کنید در مسیر AlertScriptPath قرار دهید.
- فایل zbxtg_setting.py را به همراه تنظیمات خود ایجاد کنید و آنرا در همان دایرکتوری بالا که اسکریپت قرار دارد ذخیره کنید.
ابتدا وارد دایرکتوری alertscript شده و سپس سطح دسترسی فایل های zbxtg.py و zbxtg_setting.py را تغییر داده و به آنها پرمیژن اجرایی دهید.
کد PHP:
# cd /usr/lib/zabbix/alertscripts/
# chmod 755 zbxtg.py
# chmod 755 zbxtg_settings.py
فایل zbxtg_settings.py را باز کنید و API Token که از طریق botfather ایجاد کردیم را در قسمت tg_key وارد میکنیم.
کد PHP:
tg_key = "413051254:AAE2BMWsPIKADhrUBZqVuBXr5LWEWNqb_4E" # telegram bot api key
کد PHP:
zbx_server = "http://192.168.25.76/zabbix" # zabbix server full url
zbx_api_user = "api"
zbx_api_pass = "api"
اگر شما نیاز به یک اینترنت پراکسی دارید، host:port مربوط به proxy را در فایل zbxtg_setting تعریف کنید.
تست ارتباط Zabbix با Telegram
به جهت اینکه متوجه بشیم سرور زبیکس مان با تلگرام Integrate شده و پیغام ها و آلارم ها را به سمت گروه یا کانال در تلگرام ارسال میکنید یا نه، میتوانیم با استفاده از اسکریپتی که در بالا دانلود کردیم، به همراه آیدی تلگرام خودتان این تست را انجام دهیم. برای این کار دستور ./zbxtg.py "<username>" "<message_subject>" "<message_body>" --debug را اجرا کنید.
توضیحات دستور بالا :
- username : آیدی تلگرام خود را وارد کنید.
- message_subject : عنوان پیغام ارسالی باید نوشته شود.
- message_body : متن پیغام ارسالی نوشته شود.
برای مثال :
کد PHP:
root@debian:/usr/lib/zabbix/alertscripts# ./zbxtg.py "Mohammad_haabili" "hiiii mohammad" "how are you ????"
شما میتوانید " (کوتیشن) را حذف کنید. (استفاده از آنها اختیاری میباشد)
اگر همه چیز اوکی باشد باید پیغامی متنی که از سمت سرور به سمت bot تلگرام ارسال کردید را در چت تلگرام تان مشاهده کنید.
جهت چک کردن اینکه گراف های سرور Zabbix به Bot تلگرام میرسد، میتوانید دستور زیر را استفاده کنید. (به جای آیدی تلگرام من شما آیدی خود را قرار دهید)
کد PHP:
# sudo -u zabbix ./zbxtg.py @Mohammad_haabili test "$(echo -e 'zbxtg;graphs: \nzbxtg;graphs_period=3600\nzbxtg;itemid:12345\nzbxtg;title:ololo')"
تنظیمات Media Type
از طریق منوی Administration, Media types روی دکمه Create media type کلیک کنید. در قسمت Name یک نام دلخواه وارد میکنیم. بخش Type را بر روی گزینه Script تنظیم میکنیم. در قسمت Script name نام اسکریپتی که دانلود کردیم "zbxtg.py" را وارد میکنیم، سپس روی دکمه Add کلیک میکنیم.
اگر از zabbix 3.0.1 به بعد استفاده میکنید، این پارامترها را هم به بخش Script parameters اضافه کنید. (همانند تصویر بالا)
کد:
[COLOR=#222222][FONT=&]{ALERT.SENDTO}[/FONT][/COLOR] [COLOR=#222222][FONT=&]{ALERT.SUBJECT}[/FONT][/COLOR] [COLOR=#222222][FONT=&]{ALERT.MESSAGE}[/FONT][/COLOR]
در صورتی که میخواهید پیام ها به گروه نیز ارسال شود همانند زیر یک مدیای دیگر، نیز اضافه کنید.
تنظیمات Actions
اینترفیس Web زبیکس را باز کنید، سپس به منوی Configuration, Actions رفته و بر روی Creat Action کلیک کنید.
در تب Action
Name : نامی دلخواه برای action مان وارد میکنیم.
New condition : این بخش را روی Host گذاشته و از طریق دکمه select هاست مورد نظری که قرار هست مانیتور شود و اطلاعات آن به کانال/گروه تلگرام ارسال شود را انتخاب میکنیم و روی دکمه Add جهت اضافه شدن مواردی که انتخاب کردیم به مدیا، کلیک میکنیم. (این بخش را به دلخواه خود میتوانید تنظیم کنید و اگر نیاز هست میتوانید یک Host group انتخاب کنید که گروهی از هاست ها را برای شما مانیتور کند و یا ...)
در تب Operations
Default subject :
کد زیر را در این بخش کپی کنید.
کد:
Fail : {HOSTNAME}: {TRIGGER.NAME} {TRIGGER.STATUS}
محتویات این بخش را حذف کنید و کدهای زیر را در آن کپی کنید. (چهار مورد آخر Optional میباشد و به اختیار میتوانید بگذارید)
کد:
zbxtg;graphs zbxtg;graphs_period=10800 zbxtg;itemid:{ITEM.ID1} zbxtg;title:{HOST.HOST} - {TRIGGER.NAME} zbxtg;graphs_width=700 zbxtg;graphs_height=300 zbxtg;debug zbxtg;channel
تفسیر کدهای بالا :
- zbxtg;graphs : فعال کردن attache گراف
- zbxtg;graphs_period=10800 : تعریف مدت زمان گراف (default - 3600 seconds)
- zbxtg;graphs_width=700 : تعریف عرض گراف (default - 900px)
- zbxtg;graphs_height=300 : تعریف طول گراف (default - 300px)
- zbxtg;itemid:{ITEM.ID1} : تعریف آیتم آیدی (from trigger) برای attache
- zbxtg;title:{HOST.HOST} - {TRIGGER.NAME} : عنوان گراف
- zbxtg;debug : فعال کردن مد دیباگ، یکسری از لاگ ها و تصاویر در دایرکتوری tmp ذخیره خواهند شد (temporary doesn't affect python version)
- zbxtg;channel : ارسال به کانال را فعال میکند.
فیلد Subject و Message باید به صورتی که شما نیاز دارید تنظیم شود. همچنین این قسمت تگ HTML را نیز ساپورت میکند.
کد PHP:
<b>bold</b>, <strong>bold</strong>
<i>italic</i>, <em>italic</em>
<a href="URL">inline URL</a>
<code>inline fixed-width code</code>
<pre>pre-formatted fixed-width code block</pre>
بر روی دکمه New در بخش Operations جهت انجام تنظیمات ارسال پیغام ها یا آلارم ها، که به چه افرادی و از چه مدیاهایی فرستاده شود کلیک کنید.
در بخش Operation details در قسمت Send to User groups ما میتوانیم گروهی که قصد داریم پیغام ها و آلارم ها و ... به آنها ارسال شود را انتخاب کنیم و در قسمت Send to Users هم ما میتوانیم فقط یوزر هایی که باید به آنها پیغام ها و ... ارسال شود را انتخاب کنیم. این بخش اختیاری میباشد و به دلخواه خود میتوانید تنظیم کنید که پیغام ها و هشدارها به گروه ارسال شود یا به یک یوزر خاص.
برای اضافه کردن یک یوزر بر روی دکمه Add از قسمت Send to User کلیک کنید و از پنجره باز شده (پنجره Users) یوزرهای کاربری خود را انتخاب کنید و جهت اضافه شدن آنها روی دکمه Select کلیک کنید.
از بخش Send only to هم گزینه telegram_graphs که در مراحل قبل از تب Media ایجاد کردیم را انتخاب میکنیم که هشدارها و پیغام های مورد نظرمان را از طریق این مدیا به اطلاع کاربران برساند. در اینجا یوزر mohammad و admin را انتخاب کردم، که هشدارها و پیغام های سرور Zabbix به این یوزرها ارسال شود. بر روی دکمه Add جهت اضافه شدن تغییرات جدید کلیک کنید.
در تب Recovery operations
بخش Recovery operations هم همانند بخش قبل تنظیم کنید و یوزر هایی که باید پیغام های ریکاوری دریافت کنند را به همراه اکشن آنها انتخاب کنید و تغییرات را ذخیره کرده.
Default subject :
کد زیر را در این بخش کپی کنید.
کد:
OK : {HOSTNAME}: {TRIGGER.NAME} {TRIGGER.STATUS}
محتویات این بخش را حذف کنید و کدهای زیر را در آن کپی کنید. (چهار مورد آخر Optional میباشد و به اختیار میتوانید بگذارید)
کد:
zbxtg;graphs zbxtg;graphs_period=10800 zbxtg;itemid:{ITEM.ID1} zbxtg;title:{HOST.HOST} - {TRIGGER.NAME} zbxtg;graphs_width=700 zbxtg;graphs_height=300 zbxtg;debug zbxtg;channel
در آخر بر روی دکمه Add کلیک کنید که تنظیمات Action که ایجاد کردیم ساخته شود.
تنظیمات Users و Groups
در ابتدا یک گروه readonly برای دریافت تصاویر گراف از زبیکس ایجاد کنید. وارد منوی Administration --> User groups شده و روی دکمه Create user group کلیک کنید. در قسمت Group name یک نام برای گروه خود انتخاب کنید. (در این سناریو من نام گروه خود را Monitoring گذاشتم) سپس روی تب Permissions کلیک کنید.
در تب Permissions در ستون Read only روی دکمه Add کلیک کنید، سپس از پنجره ای که باز میشود هاست های مورد نظرتان را انتخاب و روی دکمه Select جهت اضافه شدن به بخش Read only کلیک کنید.
بعد از اضافه شدن هاست های مورد نظرتان جهت اعمال تغییرات روی دکمه Add کلیک کنید که گروهی که میخواهیم ایجاد شود.
اکنون یک یوزر با دسترسی محدود از طریق عضو کردن در گروه monitoring برای دریافت گراف های زبیکس از طریق منوی Administration --> Users --> Create new user ایجاد کنید.
در این سناریو من یوزر "api" را با پسورد "api" ایجاد میکنم و گروه کاربری آنرا روی گروه monitoring که در مرحله قبل ایجاد کردیم را به جهت محدود کردن دسترسی قرا میدهم. برای این منظور روی دکمه Add کلیک کنید و از پنجره User groups گروه monitoring را انتخاب کنید و روی دکمه Select جهت اضافه شدن یوزر به این گروه کلیک کنید، سپس برای نهایی شدن تغییرات روی دکمه Add کلیک کنید.
نکته : user و password یوزر "api" که ایجاد کردیم در فایل abxtg_setting.py تعریف میشود که در بالا نحوه ست کردن آنرا توضیح دادیم.
سپس یوزر دیگری (mohammad) جهت دریافت پیغام ها و آلارم های زبیکس ایجاد کنید، سپس مدیایی Telegram-Group که در مرحله قبل اضافه کردیم را از طریق منوی Media به یوزرمان Add میکنیم.
از پنجره باز شده (پنجره Media) در قسمت Type نوع مدیایی که قرار هست از طریق آن آلارم ها و هشدارها ارسال شود را انتخاب میکنیم. (مدیای telegram-graphs را که در مراحل قبل ایجاد کردیم را انتخاب کنید). در قسمت Send to باید Telegram ID خودتان را وارد کنید.
نکته :
- در این مثال آیدی تلگرام من @Mohammad_haabili میباشد، دقت کنید نام username تلگرام به حروف بزرگ و کوچک حساس است.
- نام یوزر CASE-SENSITIVE (حساس به حروف بزرگ و کوچک) میباشد.
- چت های گروهی URL ندارند در نتیجه شما باید نام گروه را در نوع مدیا قرار دهید.
- پیغام ها برای کانال باید همانند چت های Private ارسال شوند.
در بخش Use if severity میتوانید تعیین کنید که چه نوع از هشدارها برای یوزر مد نظرتان ارسال شود. هر کدام را که نمیخواهید تیک آنرا بردارید و به دلخواه تنظیمات خود را انجام دهید سپس روی دکمه Add کلیک کنید.
بر روی دکمه Add صفحه Users کلیک کنید تا یوزرتان به همراه تنظیماتی که انجام دادید به لیست یوزرهای سرور زبیکس اضافه شود.
کار به اتمام رسیده است. کافیست منتظر بمانید یکی از Alert های زبیکس فعال شود و آن پیغام/هشدار را سرور زبیکس به همراه عکس گراف آن به کانال یا گروه تلگرام که تعیین کردیم ارسال شود. در اینجا چند نمونه هشدار که از طرف سرور zabbix من به ربات تلگرامی که ایجاد کردم ارسال شده، را به همراه گراف آنها مشاهده میکنید.
شما میتوانید پیغام ها را به دلخواه خود تنظیم کنید که چه مقدار از متن هشدار یا عکس graph را به کانال یا گروه تلگرام تان ارسال کند.
مشکلات احتمالی
کد PHP:
MEDIA_CAPTION_TOO_LONG
موفق باشید// علیرضا ذبیحی
کامنت