log keyword / line append 감시 등록 방법

Print

개요

  • ZMON 의 log keyword 및 line append 설치 및 감시 등록에 대한 가이드이다.
  • 별도의 스크립트를 실행하여 해당 결과를 influxdb 에 저장하는 방식이므로, 설치와 설정, 감시 등록 방법에 대해 설명한다.
  • 현재는 linux 에 대해서만 실행이 가능하다.


1. 스크립트 설치방법

  • 설치 방법 안내
    • 2019/11/20 이후 ZMON 설치 시 해당 스크립트가 포함되어 설치됨. (default 경로 : /etc/telegraf/execsh)
    • 수동 설치의 경우 다음의 command 를 실행하면 되며, telegraf default 설치 경로를 /etc/telegraf 로 가정하여 이후 설명을 진행함.

    • execsh 수동 설치

      # 모든 설치는 root 권한으로 실행이 되어야 함.
      $ cd /etc/telegraf
      $ mkdir execsh
      $ cd execsh
      $ curl -fsSL http://agent.zmon.cloud/agents/scripts/execLog.sh -o execLog.sh
      $ curl -fsSL http://agent.zmon.cloud/agents/scripts/logMonitoring.sh -o logMonitoring.sh
      $ chmod +x *.sh
  • 파일 설명
    • /etc/telegraf/execsh/logMonitoring.sh
      • execLog.sh 를 실행하기 위한 호출 스크립트
      • MONITORING_TARGET 값에 모니터링 대상 파일의 절대경로와 grep pattern 을 설정 해야함.
    • /etc/telegraf/execsh/execLog.sh
      • 실제 실행 스크립트
      • default 경로대로 설치하였을 경우, 추가 설정을 위해 파일을 수정하지 않아도 됨.
      • logMonitoring.sh 에서 호출 시 arguments 를 함께 전송하면 pattern grep / 없으면 line append 방식으로 동작함.

2. 스크립트 설정 방법

  • telegraf.conf (default : /etc/telegraf/telegraf.conf) 의 파일 내 inputs.exec 에 아래와 같이 설정한다.

    [[inputs.exec]]
      commands = [
        "sh /etc/telegraf/execsh/logMonitoring.sh"
      ]
      timeout = "5s"
      name_suffix = "_mycollector"
      data_format = "influx"
  • logMonitoring Sample (default : /etc/telegraf/execsh/logMonitoring.sh)

    ...
    #### 실행 스크립트 위치
    SH_PATH='/etc/telegraf/execsh'
    SH_NAME='execLog.sh'
    LOG_PATH='/var/log/telegraf'
    LOG_NAME='logMonitoring.log'
     
    #### 감시 대상 log 절대 경로 및 임계값
    #### 혹은 line append 감시 파일
    ### SAMPLE
    ### 1) "{절대경로} {reg_exp 형태의 문자열-띄어쓰기 동작 안함.}"
    ###   -- 아래 sample 에서 E! 가 검출될 경우 event 발생
    ###   -- 문자열에 대한 alert, 여러 개의 문자열일 경우 | 로 공백 없이 구분하여 입력할 것
    ###   -- egrep 을 사용하므로 reg_exp 사용 가능
    ### 2) {절대경로}
    ###   -- line append 새로운 라인이 추가가 되면 정상적으로 등록 됨.
    ###   -- 다만 대상 파일이 존재해야 하므로 빈파일로라도 생성해둘 것.
     
    MONITORING_TARGET=(
      "/var/log/telegraf/telegraf.log E!"
      "/var/log/telegraf/logMonitoring.log"
    )
    ...
  • 3~4 줄 : 실행 스크립트 경로 설정
  • 20~21 줄 : 감시 등록에 대한 sample. 대상 파일에 대해 절대경로로 "" 안에 넣어야 함.
    여러 항목에 대해서 줄 바꿈으로 구분하여 등록할 것. (,나 ; 등의 구분문자 없음. )
    • 20 줄 : pattern 감시 설정 예시 
      • /var/log/telegraf/telgraf.log 파일에 E! 문자열이 발생되면 event 발생. 
    • 21 줄 : line append 감시 설정 예시
      • /var/log/telegraf/logMonitoring.log 파일에 새 라인이 생성될 때 마다 event 발생
    • 대상 파일이 존재하지 않을 경우 에러가 발생되므로, touch 등을 통해 빈파일이라도 생성을 해야 함.

3. 감시 등록 방법

3-1. telegraf.conf 

  • 최초 logMonitoring.sh 의 MONITORING_TARGET 의 값을 기준으로 log 모니터링을 수행하게 되므로 별도의 설정은 필요 없음.
  • ZMON dashboard 에서 수집되는 로그를 보고 싶으면 첨부한 logAlertPanel.json 파일을 추가(json 파일을 import 할 때 각 org 에 따라 datasource 와 server 는 수정해야 할 필요가 있음.)하거나, 직접 아래의 쿼리를 추가할 수 있음.
  • DASHBOARD QUERY
    SELECT "seq", "log" FROM "logexec_mycollector" 
    WHERE ("host" =~ /^$server$/) AND $timeFilter GROUP BY "host", "target", "pattern" 
    ORDER BY time DESC
  • 실제 event alert 은 ZMC (ZMON Management Console)에서 설정함.

3-2. ZMC (ZMON Management Console) 에서 Event Alert 설정

  • Rule Set 신규 등록

  1. [Alert Rule Set] 메뉴 - [Alert Rule Set] 탭의 [Add] 버튼 클릭
  2. 'Alert Rule Set Name' 과 'Notify Channel' 입력 후 [Save] 버튼 클릭
    • 'Alert Rule Set Name' 항목 - 신규 Rule Set 의 이름
    • 'Notify Channel' 항목 - 미리 연결해 둔 Notification Channel 목록이 보이며, 신규 Rule Set 에 연결할 channel 을 선택한다.
  3. 생성된 Rule Set 에 추가할 Rule 등록 - [Add] 버튼 클릭
  4. 'Template' 등록 [Configuration] 메뉴에서 'LOG EXEC Collector [LINUX]' 선택 후 우측 상단의 [Save] 버튼 클릭
  5. [Monitoring List] 항목의 'Add' 버튼 클릭
    • [Monitoring LIst] 팝업 창에서 대상 선택 후 하단의 [Select] 버튼 클릭
  6. 'Metric' 과 'Rules' 을 설정한 후 우측 상단의 [Save] 버튼을 누르면 설정이 완료됨.
    • 'Metric' 항목 -Rule event 가 발생되었을 때, Rule 의 구분을 할 수 있도록 작성하는 rule 의 이름
    • 'Rules'
      • 'Name' 항목 - logMonitoring.sh 파일에 설정한 감시 대상의 절대경로에 "" (double quote) 를 붙여 작성함.
        line append 가 아닌 pattern 검색 감시에 대해서도 pattern 을 제외하고 절대경로만 "" 로 감싸서 작성함.
      • 'Status Condition' 항목 - Rule event 가 발생되기 위한 조건, 위 이미지와 같이 설정하면 1 보다 크면 event 가 발생함.
      • 'Duration' 항목 - event 가 발생되기 위해서 'Status Condition' 에서 설정한 조건이 지속되어야 하는 기간
      • 'Level' 항목 - event 등급 (경고 > 주의)
    • 'Message' 항목 - Rule event 가 발생되었을 때, 발생되는 메시지
  • 기존 Rule Set 에 추가 등록 

  1. [Alert Rule Set] 메뉴 - [Alert Rule Set] 탭의 목록 중 추가할 Rule Set 을 클릭
  2. [Alert Rule] 항목의 agent 를 추가할 'Metrics' 를 클릭
  3. 상단의 5번 항목과 이하 동일


이 답변이 유용합니까? 아니오

Send feedback
도움을 드리지 못해 죄송합니다. 피드백을 주시면 이 문서의 품질을 높이겠습니다.