object script.create(object/array scripts)
Este método permite crear nuevos scripts.
Este método solo está disponible para el tipo de usuario Super admin. Los permisos para llamar al método pueden ser revocados en la configuración del rol de usuario. Consulte Roles de usuario para más información.
(objeto/array)
Scripts a crear.
El método acepta scripts con las propiedades estándar de script.
(object)
Devuelve un objeto que contiene los IDs de los scripts creados bajo la propiedad scriptids
. El orden de los IDs devueltos coincide con el orden de los scripts enviados.
Cree un script de webhook que envíe una solicitud HTTP a un servicio externo.
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "Webhook script",
"command": "try {\n var request = new HttpRequest(),\n response,\n data;\n\n request.addHeader('Content-Type: application/json');\n\n response = request.post('https://localhost/post', value);\n\n try {\n response = JSON.parse(response);\n }\n catch (error) {\n response = null;\n }\n\n if (request.getStatus() !== 200 || !('data' in response)) {\n throw 'Unexpected response.';\n }\n\n data = JSON.stringify(response.data);\n\n Zabbix.log(3, '[Webhook Script] response data: ' + data);\n\n return data;\n}\ncatch (error) {\n Zabbix.log(3, '[Webhook Script] script execution failed: ' + error);\n throw 'Execution failed: ' + error + '.';\n}",
"type": 5,
"timeout": "40s",
"parameters": [
{
"name": "token",
"value": "{$WEBHOOK.TOKEN}"
},
{
"name": "host",
"value": "{HOST.HOST}"
},
{
"name": "v",
"value": "2.2"
}
]
},
"id": 1
}
Respuesta:
Cree un script SSH con autenticación por clave pública que pueda ejecutarse en un equipo y tenga un menú contextual.
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "SSH script",
"command": "my script command",
"type": 2,
"authtype": 1,
"username": "John",
"publickey": "pub.key",
"privatekey": "priv.key",
"password": "secret",
"port": "12345",
"scope": 2,
"menu_path": "All scripts/SSH",
"usrgrpid": "7",
"groupid": "4"
},
"id": 1
}
Respuesta:
Cree un script personalizado que reiniciará un servidor. El script requerirá acceso de escritura al equipo y solicitará al usuario una entrada manual. Tras el envío exitoso de la entrada, el script mostrará un mensaje de confirmación en la interfaz.
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "Reboot server",
"command": "reboot server {MANUALINPUT}",
"type": 0,
"scope": 2,
"confirmation": "Are you sure you would like to reboot the server {MANUALINPUT}?",
"manualinput": 1,
"manualinput_prompt": "Which server you want to reboot?",
"manualinput_validator": "[1-9]",
"manualinput_validator_type": 0,
"manualinput_default_value": "1"
},
"id": 1
}
Respuesta:
Cree un script de tipo URL para el ámbito de equipo que permanezca en la misma ventana y tenga un texto de confirmación.
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "URL script",
"type": 6,
"scope": 2,
"url": "http://zabbix/ui/zabbix.php?action=host.edit&hostid={HOST.ID}",
"confirmation": "¿Editar equipo {HOST.NAME}?",
"new_window": 0
},
"id": 1
}
Respuesta:
Cree un script de tipo URL para el ámbito de evento que se abra en una nueva ventana y tenga entrada manual.
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "Script URL con entrada manual",
"type": 6,
"scope": 4,
"url": "http://zabbix/ui/zabbix.php?action={MANUALINPUT}",
"new_window": 1,
"manualinput": 1,
"manualinput_prompt": "Seleccione una página para abrir:",
"manualinput_validator": "dashboard.view,script.list,actionlog.list",
"manualinput_validator_type": 1
},
"id": 1
}
Respuesta:
CScript::create() en ui/include/classes/api/services/CScript.php.