본문 바로가기

기타

ZABBIX 로그 파일 모니터링

728x90

ZABBIX 로그 파일 모니터링

Zabbix를 사용하여 /var/log/messages 파일을 모니터링합니다.

Zabbix 에이전트를 사용하여 로그 파일에서 특정 문자열을 검색하고 결과를 모니터링하는 방법입니다.

1. Zabbix 템플릿 생성

  • Zabbix 웹 인터페이스로 로그인합니다.
  • "Configuration" 메뉴에서 "Templates"를 선택하고 "Create template" 버튼을 클릭하여 새 템플릿을 생성합니다.
  • 템플릿 이름을 지정하고 필요한 그룹에 템플릿을 할당합니다.
    • 템플릿 이름 : System Log Error Detection Template
    • 그룹 : temp

z1

 

2. 아이템(Item) 설정

  • "Configuration" 메뉴로 이동하고 "Hosts"를 선택하여 해당 호스트(서버)를 찾습니다. 호스트가 없는 경우 먼저 호스트를 생성하고 관련 에이전트 설정을 구성해야 합니다.
  • 호스트를 선택한 후 "Items" 탭으로 이동하고 "Create item" 버튼을 클릭하여 새 아이템을 생성합니다.
  • 아래와 같이 아이템 설정을 구성합니다
    • 이름 : System Log Error Count
    • 종류 : Zabbix 에이전트(액티브)
    • 키 : log[/var/log/messages,<your_search_string>] 형식으로 아이템 키를 설정합니다. <your_search_string> 부분은 /var/log/messages 파일에서 검색할 문자열을 나타냅니다.
    • 데이터형 : 로그
    • 갱신 간격 : 30초
    • 어플리케이션 작성 : System Log

키(Key)

{System Log Error Detection Template:log[/var/log/messages,Failed].strlen()}>0 and
{System Log Error Detection Template:log[/var/log/messages,Failed].nodata(10m)}=0

z2

3. 트리거(Trigger) 설정

  • 필요에 따라 트리거를 생성하여 검색한 문자열이 발견되었을 때 알림을 받을 수 있습니다. "Triggers" 탭으로 이동하고 "Create trigger" 버튼을 클릭하여 새 트리거를 생성합니다.
  • 아래와 같이 트리거 설정을 구성합니다.
    • 이름 : System Error in Log Detected
    • 조건식 : {Host 이름:Log Monitoring - Messages.last()}=1와 같은 표현식을 설정합니다. 이 표현식은 문자열이 발견되면 트리거를 활성화합니다.

조건식

{System Log Error Detection Template:log[/var/log/messages,Failed].strlen()}>0 and
{System Log Error Detection Template:log[/var/log/messages,Failed].nodata(10m)}=0

z3

728x90

로그 파일 모니터링

log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
  • 매개변수
    • file - 로그 파일의 전체 경로와 이름;
    • regexp - 필요한 패턴을 설명하는 정규 표현식;
    • encoding - 코드 페이지 식별자;
    • maxlines - 에이전트가 Zabbix 서버 또는 프록시에 보낼 수 있는 초당 새로운 라인의 최대 수입니다. 이 매개변수는 zabbix_agentd.conf의 'MaxLinesPerSecond'의 값을 무시합니다. mode - 가능한 값: all (기본값) 또는 skip - 이전 데이터 처리를 건너뛰기 (새로 생성된 항목에만 영향을 미침). output - 선택적인 출력 서식 템플릿입니다. \0 이스케이프 시퀀스는 일치하는 텍스트의 일치하는 부분으로 대체됩니다 (일치가 시작되는 첫 문자부터 일치가 끝나는 문자까지). \N (여기서 N은 1에서 9까지의 숫자) 이스케이프 시퀀스는 N번째 일치 그룹으로 대체됩니다 (또는 N이 캡처된 그룹 수를 초과하는 경우 빈 문자열로 대체됩니다).
    • maxdelay - 최대 지연 시간(초). 유형: 부동소수점. 값: 0 - (기본값) 로그 파일 라인을 무시하지 않음; > 0.0 - "maxdelay" 초 내에 가장 최근의 라인을 분석하기 위해 이전 라인을 무시합니다. 사용하기 전에 maxdelay 참고 사항을 읽으세요! options - 추가 옵션: mtime-noreread - 중복 레코드, 파일 크기가 변경될 때만 다시 읽기 (수정 시간 변경 무시). (이 매개변수는 5.0.2부터 폐기되었으며 이제 mtime이 무시됩니다.)
    • persistent dir (Unix 시스템의 zabbix_agentd에서만 지원; Zabbix 에이전트 2에서는 지원되지 않음) - 지속 파일을 저장할 디렉토리의 절대 경로. 지속 파일에 대한 추가 참고 사항도 참조하세요.

4. 액션(Action) 설정

  • 필요한 경우 액션을 생성하여 트리거가 발동될 때 통지를 보낼 수 있습니다. "Actions" 탭으로 이동하고 "Create action" 버튼을 클릭하여 새 액션을 생성합니다.
  • 아래와 같이 액션 설정을 구성합니다.
    • 이름 : 액션의 이름을 지정합니다.
    • Conditions 및 Operations: 원하는 조건과 동작 설정. 이러한 설정은 트리거가 발동될 때 어떤 통지가 전송될지를 결정합니다.

z4
z5

 

6. 임의로 에러 로그를 생성

LANG=en_US.utf8
echo "$(date +"%b %d %T") $(hostname) dbus[598]: [Error] log file monitoring test" >> /var/log/messages

 

7. ZABBIX 이벤트 세부 내용

z6

8. Slack(zabbix) 알람

z7

 

이렇게 설정하면 Zabbix가 /var/log/messages 파일에서 지정된 문자열을 검색하고 해당 문자열을 모니터링하게 됩니다. 필요한 경우 추가적인 설정 및 액션을 사용하여 원하는 작업을 수행할 수 있습니다.

 

참고URL

- Zabbix Documentation : 1 Zabbix agent

- Zabbix Documentation : 6 Log file monitoring

 

728x90