Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
ca18d68e56
|
|||
|
dd5e6c68f7
|
|||
|
b74528b6f1
|
@@ -27,5 +27,3 @@
|
|||||||
- name: Dump details on deletion
|
- name: Dump details on deletion
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
var: deleted_files
|
var: deleted_files
|
||||||
|
|
||||||
# Done
|
|
||||||
|
|||||||
@@ -15,12 +15,6 @@
|
|||||||
register: processes_mem
|
register: processes_mem
|
||||||
changed_when: false
|
changed_when: false
|
||||||
|
|
||||||
- name: Set var
|
|
||||||
ansible.builtin.set_fact:
|
|
||||||
event_payload:
|
|
||||||
cpu: "{{ processes_cpu }}"
|
|
||||||
mem: "{{ processes_mem }}"
|
|
||||||
|
|
||||||
- name: Open Incident
|
- name: Open Incident
|
||||||
hosts: all
|
hosts: all
|
||||||
tasks:
|
tasks:
|
||||||
@@ -36,67 +30,33 @@
|
|||||||
instance: '{{ snow_instance }}'
|
instance: '{{ snow_instance }}'
|
||||||
state: new
|
state: new
|
||||||
caller: "admin"
|
caller: "admin"
|
||||||
short_description: "CPUHog event detected on: {{ alertmanager_instance }}"
|
short_description: "CPUHog event detected on: {{ ansible_eda.event.alert.labels.instance }}"
|
||||||
description: "A CPUHog was detected on: {{ alertmanager_instance }} that needs to be investigated."
|
description: "A CPUHog was detected on: {{ ansible_eda.event.alert.labels.instance }} that needs to be investigated."
|
||||||
impact: high
|
impact: high
|
||||||
urgency: high
|
urgency: high
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
register: incident_result
|
register: incident_result
|
||||||
|
|
||||||
- name: Trigger EDA webhook
|
- name: Create SNow Problem
|
||||||
hosts: all
|
servicenow.itsm.problem:
|
||||||
connection: local
|
instance: '{{ snow_instance }}'
|
||||||
gather_facts: false
|
state: new
|
||||||
|
short_description: "{{ alertmanager_annotations.summary }}"
|
||||||
|
description: "Generator URL: {{ alertmanager_generator_url }}"
|
||||||
|
impact: high
|
||||||
|
urgency: high
|
||||||
|
attachments:
|
||||||
|
- path: /tmp/cpuhog_details.txt
|
||||||
|
name: cpuhog_details.txt
|
||||||
|
type: 'text/plain'
|
||||||
|
register: problem_result
|
||||||
|
delegate_to: localhost
|
||||||
|
|
||||||
tasks:
|
- name: Update Incident
|
||||||
- name: Obtain OAuth token
|
servicenow.itsm.incident:
|
||||||
ansible.builtin.uri:
|
instance: '{{ snow_instance }}'
|
||||||
url: "{{ webhook_base_url }}/api/v1/auth/token"
|
state: in_progress
|
||||||
method: POST
|
number: "{{ incident_result.record.number }}"
|
||||||
body_format: form-urlencoded
|
other:
|
||||||
body:
|
problem_id: "{{ problem_result.record.number }}"
|
||||||
grant_type: client_credentials
|
delegate_to: localhost
|
||||||
client_id: "{{ webhook_client_id }}"
|
|
||||||
client_secret: "{{ webhook_client_secret }}"
|
|
||||||
status_code: 200
|
|
||||||
register: token_response
|
|
||||||
|
|
||||||
- name: Post event payload to Event-Driven Ansible trigger endpoint
|
|
||||||
ansible.builtin.uri:
|
|
||||||
url: "{{ webhook_base_url }}/api/v1/webhooks/eda/{{ webhook_path }}"
|
|
||||||
method: POST
|
|
||||||
body_format: json
|
|
||||||
headers:
|
|
||||||
Authorization: "Bearer {{ token_response.json.access_token }}"
|
|
||||||
Content-Type: application/json
|
|
||||||
body: "{{ event_payload }}"
|
|
||||||
status_code: 202
|
|
||||||
register: webhook_response
|
|
||||||
|
|
||||||
- name: Display execution ID
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "Workflow execution started: {{ webhook_response.json.execution_id }}"
|
|
||||||
|
|
||||||
# - name: Create SNow Problem
|
|
||||||
# servicenow.itsm.problem:
|
|
||||||
# instance: '{{ snow_instance }}'
|
|
||||||
# state: new
|
|
||||||
# short_description: "{{ alertmanager_annotations.summary | default('CPUHog event detected on: ' ~ alertmanager_instance) }}"
|
|
||||||
# description: "Generator URL: {{ alertmanager_generator_url }}"
|
|
||||||
# impact: high
|
|
||||||
# urgency: high
|
|
||||||
# attachments:
|
|
||||||
# - path: /tmp/cpuhog_details.txt
|
|
||||||
# name: cpuhog_details.txt
|
|
||||||
# type: 'text/plain'
|
|
||||||
# register: problem_result
|
|
||||||
# delegate_to: localhost
|
|
||||||
|
|
||||||
# - name: Update Incident
|
|
||||||
# servicenow.itsm.incident:
|
|
||||||
# instance: '{{ snow_instance }}'
|
|
||||||
# state: in_progress
|
|
||||||
# number: "{{ incident_result.record.number }}"
|
|
||||||
# other:
|
|
||||||
# problem_id: "{{ problem_result.record.number }}"
|
|
||||||
# delegate_to: localhost
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
= CPUHog Report =
|
= CPUHog Report =
|
||||||
A high CPU event was triggered from AlertManager.
|
A high CPU event was triggered from AlertManager.
|
||||||
|
|
||||||
{% if alertmanager_instance is defined %}
|
{% if ansible_eda is defined %}
|
||||||
Annotations: "{{ alertmanager_annotations | default({}) }}"
|
Annotations: "{{ ansible_eda.event.alert.annotations }}"
|
||||||
Generator URL: "{{ alertmanager_generator_url | default('') }}"
|
Generator URL: "{{ ansible_eda.event.alert.generatorURL }}"
|
||||||
Severity: "{{ event_severity | default('unknown') }}"
|
Severity: "{{ ansible_eda.event.alert.labels.severity }}"
|
||||||
Instance: "{{ alertmanager_instance }}"
|
Instance: "{{ ansible_eda.event.alert.labels.instance }}"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
** Top CPU Consumers **
|
** Top CPU Consumers **
|
||||||
|
|||||||
@@ -39,11 +39,10 @@
|
|||||||
name: Demo - Investigate High CPU
|
name: Demo - Investigate High CPU
|
||||||
organization: OYS
|
organization: OYS
|
||||||
job_args:
|
job_args:
|
||||||
limit: "{{ event.labels.hostname }}"
|
|
||||||
extra_vars:
|
extra_vars:
|
||||||
alertmanager_annotations: "{{ event.annotations }}"
|
alertmanager_annotations: "{{ event.annotations }}"
|
||||||
alertmanager_generator_url: "{{ event.generatorURL }}"
|
alertmanager_generator_url: "{{ event.generatorURL }}"
|
||||||
event_severity: "{{ event.labels.severity | default('unknown') }}"
|
event_severity: "{{ event.labels.severity }}"
|
||||||
alertmanager_instance: "{{ event.labels.instance }}"
|
alertmanager_instance: "{{ event.labels.instance }}"
|
||||||
|
|
||||||
- name: Test Contact Point
|
- name: Test Contact Point
|
||||||
|
|||||||
Reference in New Issue
Block a user