ارسال 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مون که از قبل ساختیم رو انتخاب میکنیم .

Send zabbix notification to slack

روی 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 تعریف کرده ایم , در اسلک به شکل زیر الارم ارسال شود :