[Deprecated] 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

      Generic

  • 파일 설명

    • /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 = [    "bash /etc/telegraf/execsh/logMonitoring.sh"  ]  timeout = "5s"  name_suffix = "_mycollector"  data_format = "influx"

    Generic

  • 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")...

    Generic

  • 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 AND "log"!='[NO DATA]' GROUP BY "host", "target", "pattern"
    ORDER BY time DESC

    SQL

  • 실제 event alert 은 ZMC (ZMON Management Console)에서 설정함.

3.2. ZMC (ZMON Management Console) 에서 Event Alert 설정

3.2.1 ZMC Alert Rule Set 추가 방법

1)Alert Rule Set 메뉴를 클릭한다

2)Add버튼을 클릭한다

3)Alert Rule Set Name 을 입력한다 

4)Notify Channel 선택하여 입력한다.(Channel을 생성하지 않았다면, 건너뛸 수 있다)

5)Save 버튼을 클릭하여 저장한다

6)Alert rule 을 설정할 수 있는 화면으로 전환 된다.

 (Name 및 Channel 변경시 Save 버튼이 표시되고, 버튼클릭시 저장된다)


3.2.2 ZMC Alert Rule 설정방법

1)이미 생성된 Alert Rule Set은 Alert Rule Set 명을 클릭시 Alert Rule 을 설정할 수 있는 화면으로 전환된다.

2)Add 버튼을 클릭하면 신규 Alert rule을 추가 할 수 있는 설정창이 나타난다.

3)신규 Alert Rule 설정시 Template을 선택한다. 

4)템플릿 선택시 각 템플릿별 설정 항목들이 셋팅된다. 

◎ LOG EXE Collector (target + Status Condition)

(Preview 버튼 마우스 오버시 확인가능)

  • Metric : 알람 메시지 전송시 org명/Metric명을 표기하므로 정확한 명칭을 입력한다

  • Rules(수식입력방식) : 

    • Target(procstat_lookup.pattern) : logMonitoring.sh에 설정한 MONITORING_TARGET 을 ""를  포함하여 입력한다. 한 개의 target만 입력할 수 있다. 여러 개의 target을 감시하고 자 할 경우, Alert rule을 추가하여 감시해야 한다. 

    • Status Coundition : 좌변은 수집 field가 표시되고, 해당 수집값에 대한 임계치를 수식으로 입력한다. 예로 좌변이 seq가 표기되었고, >= 를 선택하고, 우변에 1을 입력한경우 입력한 target에 대한 seq값이 1이상일경우 알람이 발생한다. (설정한 로그가 발생하면 1이상이 수집되므로 seq >=1로 설정한다.)

    • Duration : 설정한 임계치에 도달하더라도 Duration에 설정한 시간동안 임계치가 유지되어야 알람을 발생한다. 예로 Duration 을 1분을 설정 했을 경우 1분동안 임계치가 유지되어야 알람이 발생한다. 1분이 되기 전에 수치가 떨어지면 알람이 발생하지 않는다. 

    • Level : 임계치에 도달할경우 알람을 주의로 보낼지 경고로 보낼지 선택한다. 

  • Message : 기본 메시지에 추가로 알람 메세지를 설정 할 수 있다.   Preview버튼을 마우스오버 하면 설정된 Alert rule에 대해 알람이 발생했을 때 예시 알람을 확인할 수 있다.

  • Monitoring List : 설정한 Alert Rule을 적용할 대상을 추가한다. Add 버튼을 클릭하면 추가할 대상을 선택할 수 있는 Monitoring List팝업이 뜬다. 해당 목록에서 추가할 대상을 선택하고 Select 버튼을 클릭하면 Alert Rule 설정창에 선택한 대상이 표기된다. 단, Alert Rule 설정창의 리스트는 팝업에서 최종적으로 선택한 리스트만 표기된다. Alert rule설정을 저장하고 난뒤에는 해당 설정창에서 이미 추가된 리스트는 확인 할 수 없다. (이미 추가된 리스트는 Alert Rule Set 상세화면에서 Alert rule선택시 하위 monitoring list에서 확인 가능하다.)

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

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