Uptime Robot: Web-Hook im JSON-For­mat für Dis­cord-Alerts erstellen

Discord-Banner Reklame: Discord-Banner (Startseite)

Mit Uptime Robot hat man die Mög­lich­keit, sich bei einer Aus­fall­zeit benach­rich­ti­gen zu las­sen. Eine Vari­an­te davon ist der Web-Hook, das sich auch für Dis­cord nut­zen lässt.

Ver­wen­det man den Ser­vice von Uptime Robot, hat man meh­re­re Mög­lich­kei­ten, sich bei einer Aus­fall­zeit benach­rich­ti­gen zu las­sen. Sei es klas­sisch per E‑Mail, per Smart­phone-Push-Benach­rich­ti­gung (Push­bul­let, Pusho­ver) oder auch in Slack. Auch per Web-Hook kann man eine Benach­rich­ti­gung ver­sen­den lassen.

In unse­rem Fall haben wir uns zusätz­lich eine Benach­rich­ti­gung über Dis­cord ent­schie­den, sodass wir nicht nur per E‑Mail und Push-Benach­rich­ti­gung infor­miert wer­den, son­dern auch über den Dis­cord-Ser­ver von uns. Mit Web-Hooks kann man es ziem­lich schnell und ohne Pro­ble­me einrichten.

Dis­cord:
Dazu erstellt man erst ein­mal unter den Ser­ver-Ein­stel­lun­gen ein neu­en „Web­hook”. Sucht den anzu­zei­gen­den Namen aus, in wel­chem Chan­nel die Nach­richt gesen­det wer­den soll, lädt wahl­wei­se auch ein Ava­tar „für den User” hoch und spei­chert anschlie­ßend die „Web­hook URL”. Die URL braucht man näm­lich gleich für Uptime Robot.

Uptime Robot:
Hat man die Schrit­te bei Dis­cord erle­digt, erstellt ein „New Alert Cont­act” und wählt „Web­hook” aus. Bei dem Ein­trag „URL to Noti­fy” kommt die zuvor gespei­cher­te URL rein und muss am Ende der URL ein Fra­ge­zei­chen („?”) hin­zu­fü­gen. Bei „POST Value (JSON For­mat)” fügt man fol­gen­des ein:

{
"content": "@here: ???? **Service is:** `*alertTypeFriendlyName*` ???? **Affect:** `*monitorFriendlyName*` ⌨️ **Monitoring:** https://status.newsportal.koeln \n```*alertDetails*```"
}

Mit die­sem Ein­trag wer­den alle im Dis­cord-Chan­nel durch „@here” benach­rich­tigt, dass es eine neue Nach­richt gibt. Mit „*alert­Type­Fri­end­ly­Na­me*” wird aus­ge­ge­ben, ob der Ser­vice on- oder off­line ist. „*moni­tor­Fri­end­ly­Na­me*” zeigt den ver­wen­de­ten Ser­vice-Name von Uptime Robot an. Wei­te­re Infor­ma­tio­nen zum Ser­vice, bei­spiels­wei­se „Con­nec­tion Time­out” wird mit „*alert­De­tails*” ausgegeben.

Den Text und die Emo­jis kann man natür­lich belie­big anpas­sen und muss natür­lich nicht voll­stän­dig über­nom­men wer­den. Wich­tig ist nur, dass das JSON-For­mat bei­be­hal­ten wird. Natür­lich reicht es auch aus, dass man nur eine ein­zi­ge Nach­richt aus­gibt, ohne wei­te­re Details. Das kann zum Bei­spiel so aussehen:

{
"content": "@here: *monitorFriendlyName* is *alertTypeFriendlyName*."
}

Auch hier kann man natür­lich wie­der wahl­wei­se ent­schei­den, ob man „@here” bei­be­hal­ten möch­te oder eben nicht. In der Regel macht es aber Sinn den gan­zen Chan­nel zu infor­mie­ren. Das muss aber jeder für sich selbst ent­schei­den, inwie­weit die Nach­richt aus­ge­führt wer­den soll in Dis­cord. Wer Web-Hooks (Dis­cord) nicht kennt: Bei Aus­füh­rung wird im Dis­cord-Chan­nel eine Nach­richt von einem nicht vor­han­de­nen User ange­zeigt (Beispiel/Screenshot). Die­ser User benö­tigt dem­nach kei­ne Rechte.

Anmer­kun­gen zum Bei­trag? Hin­weis an die Redak­ti­on sen­den.