update readme
This commit is contained in:
		
							parent
							
								
									3d1ab1cbaa
								
							
						
					
					
						commit
						424fb7dfb5
					
				
							
								
								
									
										123
									
								
								README.md
								
								
								
								
							
							
						
						
									
										123
									
								
								README.md
								
								
								
								
							| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
# osnova-api-alert
 | 
					# zabbix to tg dashboard
 | 
				
			||||||
 | 
					
 | 
				
			||||||
swagger - https://osnova-api-alert.sm8255082.ru/docs
 | 
					swagger - https://osnova-api-alert.sm8255082.ru/docs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,60 +11,91 @@ endpoints:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```json
 | 
					```json
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  "text": "string",
 | 
					    "message": "str - текст сообщения вместе с темой",
 | 
				
			||||||
  "subject": "string",
 | 
					    "event_id": "int - id алерта",
 | 
				
			||||||
  "problem_id": 0
 | 
					    "event_value": "int - 0, если ОК, 1, если проблема ",
 | 
				
			||||||
}
 | 
					    "tg_tread_id": "int - id подчата ",
 | 
				
			||||||
```
 | 
					    "tg_chat_id": "int - id чата",
 | 
				
			||||||
- https://osnova-api-alert.sm8255082.ru/api/v1/zbx/send-to-net-chat (post)
 | 
					    "tg_token": "str - токен телеграм бота" 
 | 
				
			||||||
    в заголовке должен быть токен 'x-api-key: токен'
 | 
					 | 
				
			||||||
    должны предаваться в data:
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
```json
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  "text": "string",
 | 
					 | 
				
			||||||
  "subject": "string"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Параметры для mediatype:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					      parameters:
 | 
				
			||||||
 | 
					        - name: ApiToken
 | 
				
			||||||
 | 
					          value: страшносекурныйтокен
 | 
				
			||||||
 | 
					        - name: ApiURL
 | 
				
			||||||
 | 
					          value: 'https://example.com/api/v1/zbx/send-to-dashboard'
 | 
				
			||||||
 | 
					        - name: event_id
 | 
				
			||||||
 | 
					          value: '{EVENT.ID}'
 | 
				
			||||||
 | 
					        - name: event_severity
 | 
				
			||||||
 | 
					          value: '{EVENT.SEVERITY}'
 | 
				
			||||||
 | 
					        - name: event_value
 | 
				
			||||||
 | 
					          value: '{EVENT.VALUE}'
 | 
				
			||||||
 | 
					        - name: message
 | 
				
			||||||
 | 
					          value: '{ALERT.MESSAGE}'
 | 
				
			||||||
 | 
					        - name: subject
 | 
				
			||||||
 | 
					          value: '{ALERT.SUBJECT}'
 | 
				
			||||||
 | 
					        - name: tg_chat_id
 | 
				
			||||||
 | 
					          value: '{$TG_CHAT_ID}'
 | 
				
			||||||
 | 
					        - name: tg_token
 | 
				
			||||||
 | 
					          value: '{$TG_BOT_TOKEN}'
 | 
				
			||||||
 | 
					        - name: tg_tread_id
 | 
				
			||||||
 | 
					          value: '{ALERT.SENDTO}'
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
js для заббикса:
 | 
					Пример js для заббикса:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```javascript
 | 
					```javascript
 | 
				
			||||||
    function sendMessage(value) {
 | 
					        function sendMessage(value) {
 | 
				
			||||||
    var params = JSON.parse(value),
 | 
					            var params = JSON.parse(value),
 | 
				
			||||||
    data,
 | 
					            data,
 | 
				
			||||||
    response,
 | 
					            response,
 | 
				
			||||||
    request = new HttpRequest(),
 | 
					            request = new HttpRequest(),
 | 
				
			||||||
    url = 'https://osnova-api-alert.sm8255082.ru/api/v1/tg/send';
 | 
					            url = params.ApiURL;
 | 
				
			||||||
    request.addHeader('Content-Type: application/json');
 | 
					            request.addHeader('Content-Type: application/json');
 | 
				
			||||||
    request.addHeader('x-api-key: токен');
 | 
					            request.addHeader('x-api-key: ' + params.ApiToken);
 | 
				
			||||||
    data = JSON.stringify(params);
 | 
					            if (params.event_severity === 'Not classified') {
 | 
				
			||||||
    response = request.post(url, data);
 | 
					                params.message = '⚪️' + params.subject + '⚪️' + '\n' + params.message;
 | 
				
			||||||
 | 
					            } else if (params.event_severity === 'Information') {
 | 
				
			||||||
    if (request.getStatus() === 200) {
 | 
					                params.message = '🔵' + params.subject + '🔵' + '\n' + params.message;
 | 
				
			||||||
        return 'OK';
 | 
					            } else if (params.event_severity === 'Warning') {
 | 
				
			||||||
    }
 | 
					                params.message = '🟡' + params.subject + '🟡' + '\n' + params.message;
 | 
				
			||||||
    else {
 | 
					            } else if (params.event_severity === 'Average') {
 | 
				
			||||||
        if (typeof response.description === 'string') {
 | 
					                params.message = '🟠' + params.subject + '🟠' + '\n' + params.message;
 | 
				
			||||||
            throw response.description;
 | 
					            } else if (params.event_severity === 'High') {
 | 
				
			||||||
 | 
					                params.message = '🔴' + params.subject + '🔴' + '\n' + params.message;
 | 
				
			||||||
 | 
					            } else if (params.event_severity === 'Disaster') {
 | 
				
			||||||
 | 
					                params.message = '🟤' + params.subject + '🟤' + '\n' + params.message;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                params.message = params.subject + '\n' + params.message;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            data = JSON.stringify(params);
 | 
				
			||||||
 | 
					            response = request.post(url, data);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					            if (request.getStatus() === 200) {
 | 
				
			||||||
 | 
					                return 'OK';
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                if (typeof response.description === 'string') {
 | 
				
			||||||
 | 
					                    throw response.description;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else {
 | 
				
			||||||
 | 
					                    throw 'Unknown error. Check debug log for more information.';
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else {
 | 
					        
 | 
				
			||||||
            throw 'Unknown error. Check debug log for more information.';
 | 
					        
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            sendMessage(value);
 | 
				
			||||||
 | 
					            return 'OK';
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        catch (error) {
 | 
				
			||||||
 | 
					            throw 'Unknown error ' + error;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    try {
 | 
					 | 
				
			||||||
        Zabbix.log(4, value)
 | 
					 | 
				
			||||||
        sendMessage(value);
 | 
					 | 
				
			||||||
        return 'OK';
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    catch (error) {
 | 
					 | 
				
			||||||
        throw 'Unknown error ' + error;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue