zabbix_export: version: '6.0' date: '2023-08-15T07:28:36Z' media_types: - name: chat-gpt type: WEBHOOK parameters: - name: AI_API_KEY value: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - name: AI_MODEL value: gpt-3.5-turbo - name: AI_TEXT value: '{ALERT.MESSAGE}' - name: AI_URL value: 'https://api.openai.com/v1/chat/completions' - name: ZB_API_KEY value: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz - name: ZB_EVENT_ID value: '{EVENT.ID}' - name: ZB_URL value: 'https://127.0.0.1/zabbix/api_jsonrpc.php' script: | ////////////////////////////////////////// //初期化処理 ////////////////////////////////////////// params = JSON.parse(value); const AI_URL = params.AI_URL; const AI_API_KEY = params.AI_API_KEY; const AI_MODEL = params.AI_MODEL; const AI_TEXT = params.AI_TEXT; const ZB_EVENT_ID = params.ZB_EVENT_ID; const ZB_URL = params.ZB_URL; const ZB_API_KEY = params.ZB_API_KEY; ////////////////////////////////////////// //ChatGPT処理 ////////////////////////////////////////// ai_req = new HttpRequest(); ai_data = {}; //リクエストヘッダー ai_req.addHeader('Content-Type: application/json'); ai_req.addHeader('Authorization: Bearer '+AI_API_KEY); //Postデータ ai_data.model = AI_MODEL; ai_data.messages = [{'role':'user','content': AI_TEXT}]; //送信 ai_resp = ai_req.post(AI_URL,JSON.stringify(ai_data)); ai_resp = JSON.parse(ai_resp); //デバッグログ Zabbix.log(4, 'ai_req:'+JSON.stringify(ai_data)); Zabbix.log(4, 'ai_resp:'+JSON.stringify(ai_resp)); ////////////////////////////////////////// //Zabbix処理 ////////////////////////////////////////// zb_req = new HttpRequest(); zb_data = {}; //リクエストヘッダー zb_req.addHeader('Content-Type: application/json-rpc'); //Postデータ zb_data.auth = ZB_API_KEY; zb_data.method = 'event.acknowledge'; zb_data.id = 1; zb_data.params = {}; zb_data.params.eventids = ZB_EVENT_ID; zb_data.params.action = 4; zb_data.params.message = ai_resp.choices[0].message.content; zb_data.jsonrpc = '2.0'; //送信 zb_resp = zb_req.post(ZB_URL,JSON.stringify(zb_data)); zb_resp = JSON.parse(zb_resp); //デバッグログ Zabbix.log(4, 'zb_data:'+JSON.stringify(zb_data)); Zabbix.log(4, 'zb_resp:'+JSON.stringify(zb_resp)); //処理終了 return 1; timeout: 60s message_templates: - event_source: TRIGGERS operation_mode: PROBLEM message: | 次のログを検知しました。 対処方法を教えてください。 {ITEM.LASTVALUE}