다음을 통해 공유


Azure Monitor를 사용하여 가상 머신 클라이언트에서 Syslog 이벤트 수집

Syslog는 Linux에 공통되는 이벤트 로깅 프로토콜입니다. Linux 어플라이언스 및 어플라이언스에 기본 제공된 Syslog 디먼을 사용하여 지정한 형식의 로컬 이벤트를 수집할 수 있습니다. 애플리케이션은 로컬 컴퓨터에 저장되거나 Syslog 수집기로 제공되는 메시지를 보냅니다. Linux Syslog 데이터 원본과 함께 DCR(데이터 수집 규칙) 을 사용하여 가상 머신에서 Syslog 이벤트를 수집합니다.

팁 (조언)

전용 Linux 기반 로그 전달자를 구성하여 Azure Monitor 에이전트를 로컬 설치할 수 없는 디바이스에서 데이터를 수집하려면 Azure Monitor 에이전트를 사용하여 Microsoft Sentinel에서 Syslog 데이터를 Log Analytics 작업 영역으로 전달하는 방법에 설명된 대로 구성합니다.

DCR 만들기에 대한 세부 정보는 Azure Monitor를 사용하여 VM 클라이언트에서 데이터 수집에 제공됩니다. 이 문서에서는 Linux Syslog 데이터 원본 형식에 대한 추가 세부 정보를 제공합니다.

비고

DCR 정의를 직접 사용하거나 ARM 템플릿과 같은 다른 방법으로 배포하려면 Azure Monitor의 DCR(데이터 수집 규칙) 샘플을 참조하세요.

Syslog 데이터 원본 구성

Azure Monitor를 사용하여 가상 머신 클라이언트에서 데이터 수집 프로세스를 사용하여 DCR을 만듭니다. DCR의 수집 및 배달 탭의 데이터 원본 형식 드롭다운에서 Linux Syslog를 선택합니다.

각 시설에 대한 최소 로그 수준을 선택하거나 NONE 을 선택하여 해당 시설에 대한 이벤트를 수집하지 않습니다. 확인란을 선택한 다음 선택한 기능에 대한 최소 로그 수준 설정에서 로그 수준을 선택하여 여러 기능을 한 번에 구성할 수 있습니다.

데이터 원본 형식과 최소 로그 수준을 선택하는 페이지를 보여 주는 스크린샷.

선택한 심각도 수준 이상의 모든 로그가 시설에 대해 수집됩니다. 지원되는 심각도 수준 및 상대 심각도는 다음과 같습니다.

  1. 디버그
  2. 정보
  3. 알림
  4. 경고
  5. 오류
  6. 중요한
  7. 경고
  8. 긴급

대상 추가

Syslog 데이터는 Syslog 테이블에 저장된 Log Analytics 작업 영역으로만 보낼 수 있습니다. Azure Monitor 로그 유형의 대상을 추가하고 Log Analytics 작업 영역을 선택합니다. 여러 작업 영역을 추가할 수 있지만 중복 데이터가 각각에 전송되므로 추가 비용이 발생합니다.

데이터 수집 규칙의 Azure Monitor 로그 대상 구성을 보여주는 스크린샷.

데이터 수집 확인

데이터가 수집되고 있는지 확인하려면 Syslog 테이블에서 레코드를 확인합니다. 가상 머신 또는 Azure Portal의 Log Analytics 작업 영역에서 로그를 선택한 다음 테이블 단추를 클릭합니다. 가상 머신 범주에서 Syslog 옆에 있는 실행을 클릭합니다.

Syslog 테이블에서 반환된 레코드를 보여 주는 스크린샷

Linux 에이전트에서 Syslog 구성

Azure Monitor 에이전트가 Linux 머신에 설치되어 있으면 Syslog가 DCR에서 사용하도록 설정된 경우 수집되는 메시지의 기능 및 심각도를 정의하는 기본 Syslog 구성 파일을 설치합니다. 구성 파일은 클라이언트가 설치한 Syslog 디먼에 따라 다릅니다.

비고

Azure Monitor Linux Agent 버전 1.15.2 이상은 Cisco Meraki, Cisco ASA, Cisco FTD, Sophos XG, Juniper Networks, Corelight Zeek, CipherTrust, NXLog, McAfee 및 CEF(Common Event Format)을 포함한 syslog RFC 형식을 지원합니다.

Rsyslog

많은 Linux 배포판에서 rsyslogd 디먼은 Linux Syslog API를 사용하여 보낸 로그 메시지를 사용, 저장 및 라우팅합니다. Azure Monitor 에이전트는 rsyslog의 TCP 전달 출력 모듈(omfwd)을 사용하여 로그 메시지를 전달합니다.

Azure Monitor 에이전트 설치에는 /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/에 있는 기본 구성 파일이 포함되어 있습니다. Syslog가 DCR에 추가되면 이 구성은 etc/rsyslog.d 시스템 디렉터리에 설치되고 변경 내용이 적용되도록 rsyslog가 자동으로 다시 시작됩니다.

비고

rsyslog 기반 시스템에서 Azure Monitor Linux 에이전트는 rsyslog 구성에 정의된 기본 규칙 집합에 전달 규칙을 추가합니다. 여러 규칙 집합이 사용되는 경우 기본이 아닌 규칙 집합에 바인딩된 입력은 Azure Monitor 에이전트로 전달되지 않습니다. rsyslog의 여러 규칙 집합에 대한 자세한 내용은 공식 설명서를 참조하세요.

다음은 모든 로그 수준의 모든 시설에 대해 로컬 에이전트에서 전송된 Syslog 메시지를 수집하는 기본 구성입니다.

$ cat /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%")
# queue.workerThreads sets the maximum worker threads, it will scale back to 0 if there is no activity
# Forwarding all events through TCP port
*.* action(type="omfwd"
template="AMA_RSYSLOG_TraditionalForwardFormat"
queue.type="LinkedList"
queue.filename="omfwd-azuremonitoragent"
queue.maxFileSize="32m"
queue.maxDiskSpace="1g"
action.resumeRetryCount="-1"
action.resumeInterval="5"
action.reportSuspension="on"
action.reportSuspensionContinuation="on"
queue.size="25000"
queue.workerThreads="100"
queue.dequeueBatchSize="2048"
queue.saveonshutdown="on"
target="127.0.0.1" Port="28330" Protocol="tcp")

SELinux를 사용하고 Unix 소켓을 사용하기로 결정한 경우 다음 구성이 사용됩니다.

$ cat /etc/rsyslog.d/10-azuremonitoragent.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
$OMUxSockSocket /run/azuremonitoragent/default_syslog.socket
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%") 
$OMUxSockDefaultTemplate AMA_RSYSLOG_TraditionalForwardFormat
# Forwarding all events through Unix Domain Socket
*.* :omuxsock: 
$ cat /etc/rsyslog.d/05-azuremonitoragent-loadomuxsock.conf
# Azure Monitor Agent configuration: load rsyslog forwarding module. 
$ModLoad omuxsock

일부 레거시 시스템에서는 Syslog 이벤트를 Azure Monitor 에이전트로 보내는 데 레거시 전달 서식을 사용할 때 rsyslog 로그 서식 문제가 나타날 수 있습니다. 이러한 시스템의 경우 Azure Monitor 에이전트는 레거시 전달자 템플릿을 자동으로 배치합니다.

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")

Syslog-ng

Azure Monitor 에이전트 설치에는 /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf에 있는 기본 구성 파일이 포함되어 있습니다. Syslog가 DCR에 추가되면 이 구성은 /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf 시스템 디렉터리에 설치되고 변경 내용이 적용되도록 syslog-ng가 자동으로 다시 시작됩니다.

기본 내용은 다음 예제에 나와 있습니다. 이 예제는 모든 기능 및 모든 심각도에 대해 로컬 에이전트에서 전송된 Syslog 메시지를 수집합니다.

$ cat /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf 
# Azure MDSD configuration: syslog forwarding config for mdsd agent
options {};

# during install time, we detect if s_src exist, if it does then we
# replace it by appropriate source name like in redhat 's_sys'
# Forwrding using tcp
destination d_azure_mdsd {
	network("127.0.0.1" 
	port(28330)
	log-fifo-size(25000));			
};

log {
	source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf
	destination(d_azure_mdsd);
	flags(flow-control);
};

SELinux를 사용하고 Unix 소켓을 사용하기로 결정한 경우 다음 구성이 사용됩니다.

$ cat /etc/syslog-ng/conf.d/azuremonitoragent.conf 
# Azure MDSD configuration: syslog forwarding config for mdsd agent options {}; 
# during install time, we detect if s_src exist, if it does then we 
# replace it by appropriate source name like in redhat 's_sys' 
# Forwrding using unix ___domain socket 
destination d_azure_mdsd { 
	unix-dgram("/run/azuremonitoragent/default_syslog.socket" 
	flags(no_multi_line) ); 
};
 
log {
	source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf 
	destination(d_azure_mdsd);
}; 

비고

Azure Monitor는 rsyslog 또는 syslog-ng에서 보낸 메시지의 컬렉션을 지원합니다. 여기서 rsyslog는 기본 디먼입니다. Red Hat Enterprise Linux 버전 5 및 Oracle Linux 버전(sysklog)에서는 Syslog 이벤트 수집을 위한 기본 Syslog 디먼이 지원되지 않습니다. 이 배포의 해당 버전에서 Syslog 데이터를 수집하려면 rsyslog 디먼을 설치하고 sysklog를 대체하도록 구성해야 합니다.

Syslog 구성을 편집하는 경우, 변경 내용을 적용하려면 Syslog 디먼을 다시 시작해야 합니다.

지원 시설

Syslog 수집기에서 지원되는 기능은 다음과 같습니다.

Pri 인덱스 Pri 이름
0 없음
1 커언
2 사용자
3 메일
4 데몬
4 인증
5 시스템 로그
6 lpr
7 뉴스
여덟 uucp
9 파일 전송 프로토콜(ftp)
10 ntp
11 감사
12 경고
13 표시
14 local0
15 local1
16 local2
17 local3
18 local4
19 local5
20 local6
21 local7

다음 단계