mediatype.get
Opis
integer/array mediatype.get(object parameters)
Metoda umożliwia pobieranie typów mediów zgodnie z podanymi parametrami.
Ta metoda jest dostępna dla użytkowników dowolnego typu (dla użytkowników typu User od Zabbix 7.0.6). Uprawnienia do wywołania metody można odebrać w ustawieniach roli użytkownika. Więcej informacji można znaleźć w sekcji Role użytkowników.
Parametry
(object) Parametry definiujące oczekiwany wynik.
Metoda obsługuje następujące parametry.
Podczas pobierania informacji o typach mediów związanych z użytkownikami, użytkownicy typu Admin (od Zabbix 7.0.4) oraz użytkownicy typu User (od Zabbix 7.0.9) mogą pobierać wyłącznie dane dotyczące własnego użytkownika. Przykład: Pobieranie typów mediów jako Admin.
| Parameter | Type | Description |
|---|---|---|
| mediatypeids | ID/array | Zwraca tylko typy mediów o podanych ID. |
| mediaids | ID/array | Zwraca tylko typy mediów używane przez podane media. |
| userids | ID/array | Zwraca tylko typy mediów używane przez podanych użytkowników. |
| selectActions | query | Zwraca właściwość actions z akcjami, które używają typu mediów. |
| selectMessageTemplates | query | Zwraca właściwość message_templates z tablicą wiadomości typu mediów.Zachowanie parametru: - supported dla użytkowników typu Super admin (od Zabbix 7.0.4) |
| selectUsers | query | Zwraca właściwość users z użytkownikami, którzy używają typu mediów.Ograniczenia zależne od typu użytkownika opisano w user.get. |
| sortfield | string/array | Sortuje wynik według podanych właściwości. Możliwe wartości: mediatypeid. |
| filter | object | Zwraca tylko te wyniki, które dokładnie pasują do podanego filtra. Przyjmuje obiekt, w którym klucze są nazwami właściwości, a wartościami są pojedyncza wartość lub tablica wartości, z którymi ma zostać wykonane dopasowanie. Nie obsługuje właściwości o typie danych text.Możliwe właściwości obiektu typu mediów dla użytkowników typu Admin (od Zabbix 7.0.4) i użytkowników typu User (od Zabbix 7.0.6): mediatypeid, name, type, status, maxattempts. |
| output | query | Właściwości obiektu typu mediów, które mają zostać zwrócone. Użytkownicy typu Admin (od Zabbix 7.0.4) i użytkownicy typu User (od Zabbix 7.0.6) mogą pobierać tylko następujące właściwości: mediatypeid, name, type, status, maxattempts, description. Przykład: Pobieranie typów mediów jako Admin.Domyślnie: extend. |
| search | object | Zwraca wyniki pasujące do podanego wzorca (bez uwzględniania wielkości liter). Przyjmuje obiekt, w którym klucze są nazwami właściwości, a wartościami są ciągi znaków do wyszukania. Jeśli nie zostaną podane dodatkowe opcje, zostanie wykonane wyszukiwanie LIKE "%…%".Obsługuje tylko właściwości o typie danych string i text.Możliwe właściwości obiektu typu mediów dla użytkowników typu Admin (od Zabbix 7.0.4) i użytkowników typu User (od Zabbix 7.0.6): name, description. |
| countOutput | boolean | Te parametry są opisane w komentarzu referencyjnym. |
| editable | boolean | |
| excludeSearch | boolean | |
| limit | integer | |
| preservekeys | boolean | |
| searchByAny | boolean | |
| searchWildcardsEnabled | boolean | |
| sortorder | string/array | |
| startSearch | boolean |
Zwracane wartości
(integer/array) Zwraca:
- tablicę obiektów;
- liczbę pobranych obiektów, jeśli został użyty parametr
countOutput.
Przykłady
Pobieranie typów mediów
Pobierz wszystkie skonfigurowane typy mediów. Poniższy przykład zwraca dwa typy mediów:
- typ mediów e-mail;
- typ mediów SMS.
{
"jsonrpc": "2.0",
"method": "mediatype.get",
"params": {
"output": "extend",
"selectMessageTemplates": "extend"
},
"id": 1
}
Odpowiedź:
{
"jsonrpc": "2.0",
"result": [
{
"mediatypeid": "1",
"type": "0",
"name": "Email",
"smtp_server": "mail.example.com",
"smtp_helo": "example.com",
"smtp_email": "[email protected]",
"exec_path": "",
"gsm_modem": "",
"username": "",
"passwd": "",
"status": "0",
"smtp_port": "25",
"smtp_security": "0",
"smtp_verify_peer": "0",
"smtp_verify_host": "0",
"smtp_authentication": "0",
"maxsessions": "1",
"maxattempts": "3",
"attempt_interval": "10s",
"message_format": "0",
"script": "",
"timeout": "30s",
"process_tags": "0",
"show_event_menu": "1",
"event_menu_url": "",
"event_menu_name": "",
"description": "",
"provider": "0",
"message_templates": [
{
"eventsource": "0",
"recovery": "0",
"subject": "Problem: {EVENT.NAME}",
"message": "Problem rozpoczął się o {EVENT.TIME} dnia {EVENT.DATE}\r\nNazwa problemu: {EVENT.NAME}\r\nhost: {HOST.NAME}\r\nPoważność: {EVENT.SEVERITY}\r\nDane operacyjne: {EVENT.OPDATA}\r\nOryginalny identyfikator problemu: {EVENT.ID}\r\n{TRIGGER.URL}"
},
{
"eventsource": "0",
"recovery": "1",
"subject": "Resolved: {EVENT.NAME}",
"message": "Problem został rozwiązany o {EVENT.RECOVERY.TIME} dnia {EVENT.RECOVERY.DATE}\r\nNazwa problemu: {EVENT.NAME}\r\nhost: {HOST.NAME}\r\nPoważność: {EVENT.SEVERITY}\r\n\r\nOryginalny identyfikator problemu: {EVENT.ID}\r\n{TRIGGER.URL}"
},
{
"eventsource": "0",
"recovery": "2",
"subject": "Updated problem: {EVENT.NAME}",
"message": "{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem o {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nBieżący status problemu to {EVENT.STATUS}, potwierdzony: {EVENT.ACK.STATUS}."
},
{
"eventsource": "1",
"recovery": "0",
"subject": "Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}",
"message": "Reguła wykrywania: {DISCOVERY.RULE.NAME}\r\n\r\nAdres IP urządzenia: {DISCOVERY.DEVICE.IPADDRESS}\r\nDNS urządzenia: {DISCOVERY.DEVICE.DNS}\r\nStatus urządzenia: {DISCOVERY.DEVICE.STATUS}\r\nCzas działania urządzenia: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nNazwa usługi urządzenia: {DISCOVERY.SERVICE.NAME}\r\nPort usługi urządzenia: {DISCOVERY.SERVICE.PORT}\r\nStatus usługi urządzenia: {DISCOVERY.SERVICE.STATUS}\r\nCzas działania usługi urządzenia: {DISCOVERY.SERVICE.UPTIME}"
},
{
"eventsource": "2",
"recovery": "0",
"subject": "Autoregistration: {HOST.HOST}",
"message": "Nazwa hosta: {HOST.HOST}\r\nAdres IP hosta: {HOST.IP}\r\nPort agenta: {HOST.PORT}"
}
],
"parameters": []
},
{
"mediatypeid": "3",
"type": "2",
"name": "SMS",
"smtp_server": "",
"smtp_helo": "",
"smtp_email": "",
"exec_path": "",
"gsm_modem": "/dev/ttyS0",
"username": "",
"passwd": "",
"status": "0",
"smtp_port": "25",
"smtp_security": "0",
"smtp_verify_peer": "0",
"smtp_verify_host": "0",
"smtp_authentication": "0",
"maxsessions": "1",
"maxattempts": "3",
"attempt_interval": "10s",
"message_format": "1",
"script": "",
"timeout": "30s",
"process_tags": "0",
"show_event_menu": "1",
"event_menu_url": "",
"event_menu_name": "",
"description": "",
"provider": "0",
"message_templates": [
{
"eventsource": "0",
"recovery": "0",
"subject": "",
"message": "{EVENT.SEVERITY}: {EVENT.NAME}\r\nhost: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
},
{
"eventsource": "0",
"recovery": "1",
"subject": "",
"message": "ROZWIĄZANO: {EVENT.NAME}\r\nhost: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
},
{
"eventsource": "0",
"recovery": "2",
"subject": "",
"message": "{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem o {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}"
},
{
"eventsource": "1",
"recovery": "0",
"subject": "",
"message": "Wykrywanie: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}"
},
{
"eventsource": "2",
"recovery": "0",
"subject": "",
"message": "Autorejestracja: {HOST.HOST}\r\nAdres IP hosta: {HOST.IP}\r\nPort agenta: {HOST.PORT}"
}
],
"parameters": []
}
],
"id": 1
}
Pobieranie typów mediów jako Admin
Jako użytkownik typu Admin pobierz wszystkie włączone typy mediów wraz z użytkownikami, którzy z nich korzystają. Poniższy przykład zwraca dwa typy mediów:
- typ mediów email z jednym użytkownikiem (od Zabbix 7.0.4 tylko własnym użytkownikiem użytkownika typu Admin);
- typ mediów SMS bez użytkowników.
{
"jsonrpc": "2.0",
"method": "mediatype.get",
"params": {
"output": "extend",
"filter": {
"status": 0
},
"selectUsers": "extend"
},
"id": 1
}
Odpowiedź:
{
"jsonrpc": "2.0",
"result": [
{
"mediatypeid": "1",
"type": "0",
"name": "Email",
"status": "0",
"description": "",
"maxattempts": "3",
"users": [
{
"userid": "3",
"username": "database-admin",
"name": "John",
"surname": "Doe",
"url": "",
"autologin": "0",
"autologout": "0",
"lang": "default",
"refresh": "30s",
"theme": "default",
"attempt_failed": "0",
"attempt_ip": "",
"attempt_clock": "0",
"rows_per_page": "50",
"timezone": "default",
"roleid": "2",
"provisioned": "0"
}
]
},
{
"mediatypeid": "3",
"type": "2",
"name": "SMS",
"status": "0",
"description": "",
"maxattempts": "3",
"users": []
}
],
"id": 1
}
Pobieranie typów nośników skryptu i webhooka
Poniższy przykład zwraca trzy typy nośników:
- typ nośnika skryptu z parametrami;
- typ nośnika skryptu bez parametrów;
- typ nośnika webhooka z parametrami.
{
"jsonrpc": "2.0",
"method": "mediatype.get",
"params": {
"output": ["mediatypeid", "name", "parameters"],
"filter": {
"type": [1, 4]
}
},
"id": 1
}
Odpowiedź:
{
"jsonrpc": "2.0",
"result": [
{
"mediatypeid": "10",
"name": "Script with parameters",
"parameters": [
{
"sortorder": "0",
"value": "{ALERT.SENDTO}"
},
{
"sortorder": "1",
"value": "{EVENT.NAME}"
},
{
"sortorder": "2",
"value": "{ALERT.MESSAGE}"
},
{
"sortorder": "3",
"value": "Zabbix alert"
}
]
},
{
"mediatypeid": "13",
"name": "Script without parameters",
"parameters": []
},
{
"mediatypeid": "11",
"name": "Webhook",
"parameters": [
{
"name": "alert_message",
"value": "{ALERT.MESSAGE}"
},
{
"name": "event_update_message",
"value": "{EVENT.UPDATE.MESSAGE}"
},
{
"name": "host_name",
"value": "{HOST.NAME}"
},
{
"name": "trigger_description",
"value": "{TRIGGER.DESCRIPTION}"
},
{
"name": "trigger_id",
"value": "{TRIGGER.ID}"
},
{
"name": "alert_source",
"value": "Zabbix"
}
]
}
],
"id": 1
}
Zobacz także
Źródło
CMediaType::get() w ui/include/classes/api/services/CMediaType.php.