728x90
ZABBIX 로그 파일 모니터링
Zabbix를 사용하여 /var/log/messages 파일을 모니터링합니다.
Zabbix 에이전트를 사용하여 로그 파일에서 특정 문자열을 검색하고 결과를 모니터링하는 방법입니다.
1. Zabbix 템플릿 생성
- Zabbix 웹 인터페이스로 로그인합니다.
- "Configuration" 메뉴에서 "Templates"를 선택하고 "Create template" 버튼을 클릭하여 새 템플릿을 생성합니다.
- 템플릿 이름을 지정하고 필요한 그룹에 템플릿을 할당합니다.
- 템플릿 이름 : System Log Error Detection Template
- 그룹 : temp
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
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
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: 원하는 조건과 동작 설정. 이러한 설정은 트리거가 발동될 때 어떤 통지가 전송될지를 결정합니다.
6. 임의로 에러 로그를 생성
LANG=en_US.utf8
echo "$(date +"%b %d %T") $(hostname) dbus[598]: [Error] log file monitoring test" >> /var/log/messages
7. ZABBIX 이벤트 세부 내용
8. Slack(zabbix) 알람
이렇게 설정하면 Zabbix가 /var/log/messages 파일에서 지정된 문자열을 검색하고 해당 문자열을 모니터링하게 됩니다. 필요한 경우 추가적인 설정 및 액션을 사용하여 원하는 작업을 수행할 수 있습니다.
참고URL
- Zabbix Documentation : 1 Zabbix agent
- Zabbix Documentation : 6 Log file monitoring
728x90
'기타' 카테고리의 다른 글
File system, Raw Device 및 ASM(Automatic Storage Management) 고유한 특징과 장점 (0) | 2023.10.28 |
---|---|
IDS와 IPS의 정의, 개념, 차이점 및 구성 방법 (0) | 2023.10.27 |
SQL과 NoSQL 그리고 Time Series Database의 특징 및 주요 차이점 (0) | 2023.10.25 |
Redis, Memcached, Kafka, Elasticsearch, RabbitMQ, MongoDB의 특징과 주요 차이점 (0) | 2023.10.25 |
데이터 백업 및 복구 솔루션(테이프 라이브러리) (0) | 2023.10.25 |