Red Hat Blog를 보다가 관심 가는 글이 보여서 AI번역+약간 교정해 보았습니다.
출처: https://developers.redhat.com/articles/2025/06/10/how-use-splunk-event-source-event-driven-ansible
Red Hat Ansible Automation Platform 2.5의 Event-Driven Ansible (EDA)은 자동화가 실시간 이벤트에 대응하는 방식에 큰 변화를 가져왔습니다 . 하지만 내장 플러그인은 지원되지 않습니다. 여기에는 널리 사용되는 모니터링 및 관측 도구인 Splunk가 포함됩니다.
이 글에서는 Ansible Automation Platform 2.5에서 Splunk를 EDA 이벤트 소스로 통합하는 실용적인 방법을 안내해 드리겠습니다. Splunk 알림을 Webhook 앱과 함께 사용하여 알림 후 액션으로 EDA 엔진에 이벤트를 피드합니다. 이 가이드는 Ansible Automation Platform 2.5에서 테스트한 결과를 기반으로 하지만, 2.4 버전에서도 동일한 방식으로 작동할 것입니다.
개요: 통합 접근 방식
이 가이드를 따르려면 다음과 같은 전제 조건이 필요합니다.
- EDA가 포함된 Ansible Automation Platform 2.5 인스턴스
- 알림을 생성하고 웹훅을 추가할 수 있는 권한이 있는 Splunk 인스턴스입니다.
이 통합에서는 웹훅 기반 방식을 사용하여 Splunk Alerts를 Ansible Automation Platform 2.5 EDA에 연결합니다. Ansible Automation Platform 2.5에는 Splunk 기본 플러그인이 제공되지 않으므로, EDA가 수신할 수 있는 사용자 지정 웹훅 엔드포인트를 노출하여 통합을 시뮬레이션합니다.
Ansible Automation Platform 측에서는 특정 포트(예: 5001)에 리스너를 구성합니다. Ansible Automation Platform은 Red Hat OpenShift 에 배포되므로 OpenShift에 추가 경로를 생성하여 이 포트를 외부에 노출해야 합니다. 이 설정을 통해 Splunk에서 수신되는 HTTP POST 요청을 수신할 수 있습니다. 가상 머신 기반 Ansible Automation Platform을 사용하는 경우 이 경로를 생성할 필요가 없습니다. 이벤트 스트림 기능은 이 문서에서 다루지 않습니다.
Splunk 측에서는 정의된 검색 쿼리를 기반으로 사용자 지정 알림을 생성합니다. 알림 구성의 일부로, Splunk 지원 Webhook 앱을 통해 제공되는 웹훅 작업을 사용하여 이전 단계에서 생성한 노출된 Ansible Automation Platform URL로 POST 요청을 전송합니다.
이 간단한 방법을 사용하면 Splunk에서 감지한 이벤트를 기반으로 Ansible Automation Platform에서 EDA 규칙책을 실시간으로 트리거할 수 있습니다.
Ansible 자동화 플랫폼
시작하려면 컴퓨터에 Ansible Automation Platform 2.5가 설치되어 있는지 확인하세요. 이 지침에서는 Ansible Automation Platform 2.5가 EDA와 함께 실행 중이라고 가정합니다.
계속하려면 다음 단계를 따르세요.
- 먼저 ‘Automation Decision’ 탭을 클릭하여 컨테이너와 Ansible Automation Platform 자격 증명을 생성합니다 . 레지스트리에서 의사결정 환경이 가져오고 Ansible Automation Platform에서 작업이 실행됩니다(그림 1).

- 그림 2에 표시된 대로, Decision Environment 탭을 클릭하여 의사결정 환경을 만듭니다.

- Projects 탭을 클릭하여 규칙책으로 프로젝트를 만들고 동기화를 수행합니다(그림 3).

규칙서에는 웹훅이 있어야 합니다. 다음은 예시입니다.
---
- name: Listen for events on a webhook
hosts: web
## Define our source for events
sources:
- ansible.eda.webhook:
host: 0.0.0.0
port: 5001
rules:
## Define the conditions we are looking for
- name: run if message has aws
condition: event.payload != null
## Define the action we should take should the condition be met
action:
run_job_template:
name: RunOnSplunk
extra_vars: "{{ event.meta }}"
organization: Default
- Create rulebook application 버튼을 클릭하여 룰북을 활성화합니다 (그림 4).

이렇게 하면 Red Hat OpenShift Container Platform에서 서비스가 생성됩니다.
- 그림 5에 표시된 대로 해당 서비스에 대한 경로를 만듭니다.

Splunk
저는 Splunk 인스턴스를 직접 만들어 실험실에서 컨테이너 로 실행했습니다 . 설치 및 구성 단계는 다음과 같습니다.
- Splunk를 실행하려는 VM에 로그인합니다.
- Podman이나 Docker가 설치되어 있는지 확인하세요. 설치되어 있지 않으면 다음 코드를 실행하세요.
sudo dnf install podman podman run -d -p 8088:8088 -p 8000:8000 -e SPLUNK_START_ARGS='--accept-license' -e SPLUNK_PASSWORD='ansible123' splunk/splunk:latest
3. 컨테이너의 실행 상태를 확인하세요. 다음과 같은 상태여야 합니다. Splunk URL은 <VM_IP>:8000에서 접속할 수 있습니다. UI가 활성화되기까지 몇 분 정도 걸릴 수 있습니다.
[root@kameda ~]# podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6c5291d43c24 docker.io/splunk/splunk:latest start-service 5 days ago Up 5 days (healthy) 0.0.0.0:8000->8000/tcp, 0.0.0.0:8088->8088/tcp, 8000/tcp, 8065/tcp, 8088/tcp, 8089/tcp, 8191/tcp, 9887/tcp, 9997/tcp funny_babbage [root@kameda ~]#
4. 사용자 이름으로 “admin”을, 비밀번호로 “ansible123″을 사용하여 로그인할 수 있습니다.
5. 다음과 같이 Splunk에 메시지를 보내는 데 사용할 수 있는 토큰을 생성합니다.
- Settings > Data Inputs > HTTP Event Collector 로 이동합니다 .
- New Token을 클릭합니다 .
- 토큰의 이름을 지정하고(다른 필드는 비워둘 수 있음) Next을 클릭합니다 .
- Review를 클릭한 다음 Submit을 클릭합니다 .
- 토큰을 저장하세요.
- Splunk에서 검색을 생성하세요. 결과에 모든 메시지가 표시되도록 *를 사용했습니다.
- curl 명령을 사용하여 이벤트를 보냅니다. 그림 6과 같이 나타나야 합니다.
curl -k "" -H "Authorization: Splunk xxxyour_tokenxxx" -d '{"event": "Hello, Splunk! This is a test event for EDA."}'
https://<your splunk VM ip>:8088/services/collector/event
- 다음으로, 다음과 같이 검색에서 알림을 만듭니다.
- 화면 오른쪽에서 ‘Save A‘ 옵션을 선택하고 ‘ Save As Alert ‘ 옵션을 선택합니다(그림 7). 그림 7: 검색 결과를 알림으로 저장.
- 적절한 필드를 선택하세요. 그림 8은 제가 선택한 옵션을 보여줍니다. 그림 8: 알림 후 작업으로 웹훅 생성.
- Trigger Actions 으로 Webhook을 선택했는지 확인하세요 . 여러 동작을 선택할 수 있습니다.
- 웹훅 URL로는 Ansible Automation Platform 섹션의 끝부분에 Ansible Automation Platform에서 얻은 EDA 웹훅의 URL을 제공합니다.
- 알림을 저장합니다.
테스트 및 검증
이 과정의 마지막 단계는 테스트와 검증입니다.
- Splunk가 경고 기준에 대한 이벤트를 수신하고 경고가 실행되는지 확인하세요.
- Ansible Automation Platform에서 Automation Decisions > Rulebook Activations > select the rulebook > History > the running instance 로 이동합니다 . Splunk가 알림을 트리거하면 그림 10과 같은 화면이 표시됩니다.

그림 9: Output on the EDA in case of a received event.
- 자동화 실행에서 해당 작업 템플릿을 생성해야 합니다. 이 예제에서는 RunOnSplunk라는 이름의 JT를 사용합니다(그림 10).

마지막 생각
이 문서에서는 Ansible Automation Platform 2.5에서 Splunk를 Event-Driven Ansible (EDA)과 통합하는 실용적인 방법을 제시합니다. 이 통합은 Splunk 알림과 Splunk Webhook 앱을 함께 활용하여 이벤트 데이터를 사용자 지정 Webhook 엔드포인트로 푸시할 수 있도록 합니다.
설정에는 리스닝 웹훅 서비스(이 예에서는 5001과 같은 정의된 포트)를 구성하고 Ansible Automation Platform이 호스팅되는 OpenShift 경로를 통해 이를 노출하는 작업이 포함됩니다. Splunk 측에서는 특정 검색 기준에 따라 알림이 생성되고, 이벤트 데이터를 EDA 룰북 리스너에 직접 전달하는 웹훅을 트리거하도록 구성됩니다.
이 방법은 Splunk 알림에 기반한 자동화를 트리거하기 위한 가볍고 효과적인 솔루션을 제공하며, Ansible Automation Platform에 기본 Splunk 이벤트 플러그인이 없는 경우에도 실시간 IT 운영 워크플로를 지원합니다.