.. _define-send-event:

메시지 작성
================================

기존 검색 필터 사용 또는 새로운 검색 필터 생성
----------------------------------------------

1. 원하는 로그 필터에서 **수정** 을 클릭합니다. 
2. 로그 전송은 **알람전송(관리자)** , **SYSLOG** , **SNMP TRAP** , **WEBHOOK** 을 사용하여 추가로 생성할 수 있습니다.

로그 전송 시 메시지 내용에 매크로 추가
------------------------------------------

Genian NAC는 메시지내용에 미리 정의되어있는 매크로를 사용할 수 있습니다. 
사전 정의되어 있는 매크로를 추가하여 사용자가 원하는 형태의 메시지로 전송할 수 있습니다.
로그 알림 메시지 입력란이 공란일 경우 툴팁에 작성된 :ref:`define-send-event-messagedefault` 이 전송됩니다.

#. **설정** 으로 이동합니다.
#. 왼쪽 항목의 **설정** 에서 **환경설정 > 감사기록** 으로 이동합니다.
#. **노드 감사기록 선택 - 추가정보 저장** 에서 감사기록 시 추가적으로 남길 정보 항목을 선택합니다. 
   - *노드 및 에이전트 동작상태 이력 저장은 선택 옵션입니다.*
#. 상단 항목의 **감사** 로 이동합니다.
#. 왼쪽 항목의 **로그 > 검색필터** 로 이동합니다.
#. **검색필터 이름** 찾아 클릭합니다.
#. **알람전송 > SMS** 옵션을 체크합니다.
#. **SMS 내용** 입력상자에 **매크로** 를 추가합니다.
#. **알람전송** 메뉴 위의 매크로 도움말 ``물음표`` 버튼을 찾아 클릭합니다.
#. 원하는 **매크로** 를 선택하여 알람전송 메시지 본문에 추가합니다. (*예: 메시지 {_SWNAME}{SWPORT}입니다.*)
#. ``수정`` 버튼을 클릭합니다.

.. _define-send-event-messagedefault:

메시지 기본값
^^^^^^^^^^^^^^^^

- 알람전송

  .. code-block:: bash

   SMS - [사이트명] {_HEADMSG}: 로그필터이름
   Email 제목 - [사이트명] {_HEADMSG}: 로그필터이름
   Email ë‚´ìš© - {_DATETIME} {_LOGTYPE} {_LOGID} {_SENSORNAME} {_IP} {_MAC} {_FULLMSG} {_DETAILMSG}

.. note:: SMS 전송은 라이선스 종류에 따라 월 최대 전송수량에 제한이 있을 수 있습니다.


- SYSLOG 전송

  .. code-block:: bash

   Default - {_DATETIME} {_LOGTYPE} {_LOGID} {_SENSORNAME} {_IP} {_MAC} {_FULLMSG} {_DETAILMSG}
   CEF - CEF:0|GENIANS|Genian NAC|{_VERSION}|{_LOGFILTERNAME}|{_LOGFILTERDESC}|1|rt={_DATETIME} cs1Label=Log Type cs1={_LOGTYPE} cs2Label=Log ID cs2={_LOGID} dvchost={_SENSORNAME} dst={_IP} dmac={_MAC} msg={_FULLMSG} cs3Label=Detail Message cs3={_DETAILMSG}

- SNMP Trap 전송

  .. code-block:: bash

   {_DATETIME} {_LOGTYPE} {_LOGID} {_SENSORNAME} {_IP} {_MAC} {_FULLMSG} {_DETAILMSG}

- Webhook (POST)

  .. code-block:: bash

   {
   "datetime": "{_DATETIMEZ}",
   "ip": "{_IP}",
   "mac": "{_MAC}",
   "sensorip": "{_SENSORIP}",
   "sensorname": "{_SENSORNAME}",
   "logid": "{_LOGID}",
   "logidstr": "{_LOGIDSTR}",
   "logtype": "{_LOGTYPE}",
   "userid": "{_USERID}",
   "fullname": "{_USERNAME}",
   "userdept": "{_USERDEPT}",
   "position": "{_POS}",
   "nodename": "{_NNAME}",
   "hostname": "{_HOSTNAME}",
   "platform": "{_PLATFORM}",
   "nodedesc": "{_DESC}",
   "domain": "{_DOMAIN}",
   "dnsname": "{_DNSNAME}",
   "switchname": "{_SWNAME}",
   "switchport": "{_SWPORT}",
   "detail": "{_DETAILMSG}"
   }

매크로 포맷 정의
----------------------------------------------
관리자는 사전에 정의되어 있는 매크로를 활용하여 이벤트 전송 시 필요한 정보를 선택하여 전송할 수 있습니다.

.. csv-table::
   :header: "매크로 포맷", "내용"
   :widths: 40 60
   
   "{_FULLMSG}", "로그 메시지 전체 내용"
   "{_HEADMSG}", "로그 메시지 머리말"
   "{_TAILMSG}", "머리말 이후 데이터 부분 (KEY=VALUE, ...)"
   "{_EXTRAINFO}", "추가정보 전체"
   "{_IP}", "로그 노드 IP"
   "{_IP_HTML}", "로그 노드 IP(하이퍼링크)"
   "{_MAC}", "로그 노드 MAC"
   "{_MAC_HTML}", "로그 노드 MAC(하이퍼링크)"
   "{_SENSORIP}", "로그 센서 IP"
   "{_SENSORNAME}", "로그 센서 이름"
   "{_LOGID}", "로그ID"
   "{_LOGIDSTR}", "로그ID문자열"
   "{_LOGTYPE}", "로그 종류"
   "{_DATETIME}", "로그 발생 시각 날짜 (2009/11/27 14:22:32)"
   "{_DATETIMETZ}", "로그 발생 시각과 TimeZone"
   "{_DETAILMSG}", "로그 상세 메시지"
   "{_USERID}", "인증 사용자 ID"
   "{_USERNAME}", "인증 사용자 이름"
   "{_USERDEPT}", "인증 사용자 부서"
   "{_POS}", "인증 사용자 직급 (추가정보필요)"
   "{_NNAME}", "노드 이름 (추가정보필요)"
   "{_HOSTNAME}", "노드 호스트 명 (추가정보필요)"
   "{_PLATFORM}", "노드 플랫폼 (추가정보필요)"
   "{_DESC}", "노드 설명 (추가정보필요)"
   "{_DOMAIN}", "노드 도메인 (추가정보필요)"
   "{_DNSNAME}", "노드 DNS이름 (추가정보필요)"
   "{_SWNAME}", "노드 연결 스위치 이름 (추가정보필요)"
   "{_SWPORT}", "노드 연결 스위치 포트 (추가정보필요)"
   
.. note:: 기존 매크로에 **_upper** or **_lower** 를 붙여서 대소문자로 변환을 할 수 있습니다.