ارسال zabbix Notification به Slack
در مرحله ی اول باید در workspace و channelای که از قبل در slack ساختیم شروع به ساختن App و اتصال ان به channel و workspace ساخته شده کنیم .توی این سناریو اسم workspace ساخته شده برای مثال company و اسم channel هم zabbix هست
وارد قسمت Apps میشیم و روی Browse App Directory کلیک میکنیم :
بر روی api در پایین صفحه کلیک میکنیم
بر روی Start Building کلیک میکنیم
برای App یک اسم انتخاب میکنیم برای مثال من zabbix mcse.com قرار دادم و بعدش هم توی قسمت پایین workspaceمون که از قبل ساختیم رو انتخاب میکنیم .
روی create app کلیک میکنیم تا برامون App رو بسازه
روی incoming Webhooks کلیک میکنیم :
Activate Incoming Webhooks رو on میکنیم :
حالا گزینه ی Add New Webhook to Workspace رو میزنیم :
حال workspace ای که از قبل ایجاد کرده بودیم رو انتخاب میکنیم و گزینه ی allow رو می زنیم :
حال curl request رو کپی میکنیم تا از اون برای ارسال notification های زبیکس جلوتر استفاده کنیم :
تا اینجا کار ما در مورد اسلک و تنظیمات مورد نیاز به اتمام رسیده و به سراغ ماشین زبیکس میریم
به ماشین زبیکس ssh میزنیم و slackalert.sh رو توی مسیر زیر ایجاد میکنیم (با editor مورد علاقه خودتون اون رو باز کنین ):
usr/lib/zabbix/alertscripts/
نکته :اسم slackalert.sh کاملا دلبخواهی هست و شما میتونین برای مثال alert.sh رو انتخاب کنین .
حالا curl request رو که بالاتر کپی کرده بوریم رو اینجا paste میکنیم :
برای مثل اگر بخواهیم که notification ای که به سمت اسلک از سمت زبیکس ارسال میشه قسمت description ارسال بشه تیکه ی {“text”:”hello,world”} رو تغییر میدهیم به شکلی که توی تصویر میبینین:
در نهایت باید scriptمون رو اجرایی کنیم با دستور chmod +x
برای این کار وارد مسیر اسکریپتمون میشیم:
و دستور chmod +x ./slackalert.sh رو اجرا میکنیم :
تست میکنیم که اسکریپت به درستی کار میکنه تا بعدش وارد این مرحله بشیم که notification هامون رو سمت اسلک ارسال کنیم :
تبریک
اسکریپت به درستی کار میکنه
حالا میریم سراغ محیط وب زبیکس:
وارد مسیر administration>media type میشیم و بعدش create media type رو میزنیم :
در قسمت name برای media type یک اسم انتخاب میکنیم .برای مثال من slack alert گذاشتم
Type رو Script انتخاب میکنیم .
در اخر گزینه ی ADD رو میزنیم .
:script parameters
برای قسمت script name اسم اسکریپتمون که توی مسیر / usr/lib/zabbix/alertscript/ ساختیم رو ورد میکنیم که ما توی لابراتوار اسمش رو alertscript.sh گذاشتیم
قسمت script parameters هم میتونیم پارامتر های {ALERT.SUBJECTt} و {ALERT.MESSAG} رو بزاریم و یا اگر نمیخوایم که SUBJECT برامون ارسال بشه پارامتر اول رو حذف کنیم .
برای قسمت SCRIPT PARATEMETERS میتونیم علاوه بر این 2 پارامتر {ALERT.SENDTO} هم داشته باشیم
برای تعریف کردن Action وارد قسمت configuration>action میشیم و گزینه ی create action رو می زنیم :
در قسمت Action اسم برای action انتخاب میکنیم که من برای مثال cpu usage گذاشتم .
در قسمت condition که شروط رو مشخص میکنیم , بر روی Add میزنیم و چون میخواهیم که cpu usage رو مانیتور کنیم , مشخص میکنیم که Trigger Equals file server :cpu usage و host equals file server و بین اونها and هست (A and B)
میتونیم شرط دوم رو در نظر نگیریم:
در قسمت Operations هم بر روی new میزنیم تا عملیات رو مشخص کنیم .
در واقع توی این قسمت هست که مشخص میکنیم که از action ای که تعریف کردیم استفاده کند .
در قسمت send only to باید action ای که بالاتر تعریف کردیم رو مشخص کنیم که اسم اون رو slack alert گذاشتیم
همچنین میتونیم چک مارک default message رو برداریم و notification رو customize کنیم .در اخر بر روی add کلیک میکنیم تا operation رو برامون اضافه کند و بر روی add مجدد کلیک میکنیم تا action ساخته شود .
برای تست درستی کار:
با توجه به actionای که تعریف کردیم باید زمانی که cpu usage در file server به اندازه ای رسید که در trigger تعریف کرده ایم , در اسلک به شکل زیر الارم ارسال شود :

شاهدی گرفته ام برای بودن در روز موعود