이 자습서에서는 Azure Monitor 에이전트를 사용하여 Syslog 데이터를 작업 영역에 전달하도록 Linux VM(가상 머신)을 구성합니다. 이러한 단계를 통해 방화벽 네트워크 디바이스와 같은 에이전트를 설치할 수 없는 Linux 기반 디바이스에서 데이터를 수집하고 모니터링할 수 있습니다.
참고
이제 컨테이너 인사이트는 AKS 클러스터의 Linux 노드에서 Syslog 이벤트 자동 컬렉션을 지원합니다. 자세한 내용은 컨테이너 인사이트를 통한 Syslog 컬렉션을 참조하세요.
Linux VM에 데이터를 보내도록 Linux 기반 디바이스를 구성합니다. VM의 Azure Monitor 에이전트는 Syslog 데이터를 Log Analytics 작업 영역으로 전달합니다. 그런 다음, Microsoft Sentinel 또는 Azure Monitor를 사용하여 Log Analytics 작업 영역에 저장된 데이터에서 디바이스를 모니터링합니다.
이 자습서에서는 다음 작업 방법을 알아봅니다.
- 데이터 수집 규칙을 만듭니다.
- Azure Monitor 에이전트가 실행 중인지 확인합니다.
- 포트 514에서 로그 수신이 가능하도록 설정합니다.
- Syslog 데이터가 Log Analytics 작업 영역으로 전달되는지 확인합니다.
필수 구성 요소
이 자습서의 단계를 완료하려면 다음 리소스 및 역할이 있어야 합니다.
활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
에이전트를 배포하고 데이터 수집 규칙을 생성하기 위한 다음 역할이 있는 Azure 계정:
기본 제공 역할 범위 이유 - 가상 머신 기여자
- Azure Connected Machine 리소스 관리자- 가상 머신
- 스케일링 세트
- Azure Arc 지원 서버에이전트 배포 방법 Microsoft.Resources/deployments/* 작업을 포함하는 모든 역할 - 구독
- 리소스 그룹
- 기존 데이터 수집 규칙Azure Resource Manager 템플릿 배포 모니터링 기여자 - 구독
- 리소스 그룹
- 기존 데이터 수집 규칙데이터 컬렉션 규칙 만들기 또는 편집 Log Analytics 작업 영역.
Azure Monitor 에이전트를 지원하는 운영 체제를 실행하는 Linux 서버입니다.
방화벽 네트워크 디바이스와 같은 이벤트 로그 데이터를 생성하는 Linux 기반 디바이스입니다.
Syslog 데이터 원본 구성
Azure Monitor를 사용하여 가상 머신 클라이언트에서 데이터 수집 프로세스를 사용하여 DCR을 만듭니다. DCR의 수집 및 배달 탭의 데이터 원본 형식 드롭다운에서 Linux Syslog를 선택합니다.
각 시설에 대한 최소 로그 수준을 선택하거나 NONE 을 선택하여 해당 시설에 대한 이벤트를 수집하지 않습니다. 확인란을 선택한 다음 선택한 기능에 대한 최소 로그 수준 설정에서 로그 수준을 선택하여 여러 기능을 한 번에 구성할 수 있습니다.
선택한 심각도 수준 이상의 모든 로그가 시설에 대해 수집됩니다. 지원되는 심각도 수준 및 상대 심각도는 다음과 같습니다.
- 디버그
- 정보
- 알림
- 경고
- 오류
- 중요한
- 경고
- 긴급
대상 추가
Syslog 데이터는 Syslog 테이블에 저장된 Log Analytics 작업 영역으로만 보낼 수 있습니다. Azure Monitor 로그 유형의 대상을 추가하고 Log Analytics 작업 영역을 선택합니다. 여러 작업 영역을 추가할 수 있지만 중복 데이터가 각각에 전송되므로 추가 비용이 발생합니다.
데이터 수집 확인
데이터가 수집되고 있는지 확인하려면 Syslog 테이블에서 레코드를 확인합니다. 가상 머신 또는 Azure Portal의 Log Analytics 작업 영역에서 로그를 선택한 다음 테이블 단추를 클릭합니다. 가상 머신 범주에서 Syslog 옆에 있는 실행을 클릭합니다.
Syslog 데이터 수집을 구성하는 전체 절차는 Azure Monitor 에이전트를 사용하여 Syslog 이벤트 수집을 참조하세요.
Azure Monitor 에이전트가 실행 중인지 확인
Microsoft Sentinel 또는 Azure Monitor에서 Azure Monitor 에이전트가 VM에서 실행되고 있는지 확인합니다.
Azure Portal에서 Microsoft Sentinel 또는 Azure Monitor를 검색하여 엽니다.
Microsoft Sentinel을 사용하는 경우 적절한 작업 영역을 선택합니다.
일반 아래에서 로그를 선택합니다.
새 쿼리 탭이 표시되도록 쿼리 페이지를 닫습니다.
다음 쿼리를 실행하여 컴퓨터 값을 Linux VM의 이름으로 바꿉니다.
Heartbeat | where Computer == "vm-linux" | take 10
포트 514에서 로그 수신이 가능하도록 설정합니다.
로그 데이터를 수집하는 VM이 Syslog 원본에 따라 포트 514 TCP 또는 UDP에서 수신을 허용하는지 확인합니다. 그런 다음, 디바이스의 Syslog 메시지를 수신 대기하도록 VM의 기본 제공 Linux Syslog 디먼을 구성합니다. 이러한 단계를 완료한 후 VM에 로그를 보내도록 Linux 기반 디바이스를 구성합니다.
참고
방화벽이 실행 중인 경우 원격 시스템이 디먼의 syslog 수신기에 연결할 수 있도록 규칙을 만들어야 합니다. systemctl status firewalld.service
- tcp 514에 추가(시나리오에 따라 영역/포트/프로토콜이 다를 수 있음)
firewall-cmd --zone=public --add-port=514/tcp --permanent
- udp 514에 추가(시나리오에 따라 영역/포트/프로토콜이 다를 수 있음)
firewall-cmd --zone=public --add-port=514/udp --permanent
- 방화벽 서비스를 다시 시작하여 새 규칙이 적용되도록 합니다.
systemctl restart firewalld.service
다음 두 섹션에서는 Azure VM에 대한 인바운드 포트 규칙을 추가하고 기본 제공 Linux Syslog 디먼을 구성하는 방법을 설명합니다.
VM에서 인바운드 Syslog 트래픽 허용
Syslog 데이터를 Azure VM에 전달하는 경우 다음 단계에 따라 포트 514에서 수신을 허용합니다.
Azure Portal에서 Virtual Machines를 검색하여 선택합니다.
VM을 선택합니다.
설정에서 네트워킹을 선택합니다.
인바운드 포트 규칙 추가를 선택합니다.
다음 값을 입력합니다.
필드 값 대상 포트 범위 514 프로토콜 Syslog 원본에 따라 TCP 또는 UDP 작업 허용하다 이름 시스템 로그 수신 허용 나머지 필드에는 기본값을 사용합니다.
추가를 선택합니다.
Linux Syslog 디먼 구성
Linux VM에 연결하고 Linux Syslog 디먼을 구성합니다. 예를 들어 다음 명령을 실행하여 네트워크 환경에 필요한 대로 명령을 조정합니다.
sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python3 Forwarder_AMA_installer.py
이 스크립트는 rsyslog.d와 syslog-ng를 둘 다 변경할 수 있습니다.
참고
에이전트가 작동할 수 없는 전체 디스크 시나리오를 방지하려면 에이전트에 필요하지 않은 로그를 저장하지 않도록 syslog-ng
또는 rsyslog
구성을 설정해야 합니다. 전체 디스크 시나리오는 설치된 Azure Monitor 에이전트의 함수를 방해합니다.
rsyslog 또는 syslog-ng에 대해 자세히 알아봅니다.
Syslog 데이터가 Log Analytics 작업 영역으로 전달되는지 확인
VM에 로그를 보내도록 Linux 기반 디바이스를 구성한 후 Azure Monitor 에이전트가 작업 영역에 Syslog 데이터를 전달하는지 확인합니다.
Azure Portal에서 Microsoft Sentinel 또는 Azure Monitor를 검색하여 엽니다.
Microsoft Sentinel을 사용하는 경우 적절한 작업 영역을 선택합니다.
일반 아래에서 로그를 선택합니다.
새 쿼리 탭이 표시되도록 쿼리 페이지를 닫습니다.
다음 쿼리를 실행하여 컴퓨터 값을 Linux VM의 이름으로 바꿉니다.
Syslog | where Computer == "vm-linux" | summarize by HostName
리소스 정리
만든 VM과 같은 리소스가 필요한지 여부를 평가합니다. 실행 중인 리소스를 그대로 두면 비용이 부과될 수 있습니다. 필요하지 않은 리소스는 개별적으로 삭제하세요. 리소스 그룹을 삭제하여 만든 모든 리소스를 삭제할 수도 있습니다.