Я написал портфолон, использующий python, который отправит уведомления о незаконных портах как инцидент для pagerduty. Интеграция работает отлично, но есть небольшая проблема, которая меня пугает. Я не могу отправить уникальный инцидент для каждого хоста, у которого есть открытый порт. Давайте предположим, что мой сценарий сканируется 2 хостов и обнаруживает, что незаконные порты находятся и отправляет уведомление pagerduty следующим образом:Pagerduty группирует инциденты в одном инциденте
for serv in host.services:
if serv.port not in safe_port:
print ('Illegal Port open :'+str(serv.port)+'/'+str(serv.protocol)+' '+str(serv.service)+', on host=> '+str(host))
notify_slack_forbidden_port(str(serv.port),str(serv.protocol),str(serv.service),str(host))
######
notify_pagerduty_forbidden_port(str(serv.port),str(serv.protocol),str(serv.service),str(host))
else:
Функция Defination для notify_pagerduty_forbidden_port
выглядит следующим образом:
def notify_pagerduty_forbidden_port(a,b,c,d): ## Call this when a Forbidden port has been open up
headers = {
'Authorization': 'Token token={0}'.format(API_ACCESS_KEY),
'Content-type': 'application/json',
}
payload = json.dumps({
"service_key": API_ACCESS_KEY,
"incident_key": "illegal/port",
"event_type": "trigger",
"description": "A Illegle port was found open"+str(a)+"/ "+str(b)+" service "+str(c)+" on "+str(d)+" Found in "+str(box_name),
})
print "Sending to Pagerduty",payload
r = requests.post(
'https://events.pagerduty.com/generic/2010-04-15/create_event.json',
headers=headers,
data=payload,
)
print "Done!"
Моя проблема заключается в том, что когда это отправляется в Pagerduty это рассматривается как один инцидент, а не иной инцидент:
Я ожидаю, что для каждого открытого порта в каждом хосте создается другой incedent.
Ох .. Спасибо, я предполагаю, что я должен удалить эту '" accident_key ":" незаконный/порт ",' из оповещения pagerduty –
Если вы хотите уникальный инцидент, я бы поставил случайный [uuid] (https : //docs.python.org/2/library/uuid.html). – RickyA
круто, отлично работает сейчас :) –