Prometheus + mtail로 간단한 로그 수집을 시도합니다.

4195 단어 mtailprometheus

할 일



prmetheus와 mtail을 하나의 인스턴스에 넣고 mtail에서 /var/log/messages의 행 수를 계산 한 결과를 prometheus의 메트릭으로 수집합니다.

mtail을 처음 사용하기 때문에, mtail의 사용법을 조사하면서.

환경


  • Instance: t2.micro
  • OS: centos7
  • Prometheus: 2.01
  • mtail: 3.0.0

  • mtail 준비



    아무것도없는 상태에서 시작합니다.

    Go 설치



    우선, Go 설치 (1.7 이상)

    GOPATH 설정 및 작성


    sudo su -
    
    .bash_profile 편집
    vi .bash_profile
    #以下の二行を追加する
    export GOPATH=$HOME/go
    PATH=$PATH:$HOME/bin:$GOPATH/bin
    
    .bash_profile 로딩
    source ~/.bash_profile
    

    GOPATH는 아래에 src 디렉토리 만들기
    mkdir -p $GOPATH/src
    

    Go와 git 설치
    cd $GOPATH/src
    yum install go git
    go get github.com/google/mtail
    cd github.com/google/mtail
    make
    

    프로그램 파일 작성



    mtail의 동작 설정 파일인 프로그램 파일을 작성한다.
    우선, 프로그램 파일을 저장하기 위한 디렉토리를 작성한다.
    어디서나 좋지만 공식을 참고로/etc 아래 작성.
    mkdir /etc/mtail
    

    복잡한 설명이 가능하지만 이번에는 가장 간단한 프로그램 파일을 만듭니다.
    특정 로그 파일의 행 수를 계산하는 프로그램 파일.
    대상의 로그 파일은 mtail 기동시에 지정한다.
    이 때 line_count는 Prometheus에 표시되는 메트릭 이름입니다.
    cd /etc/mtail
    vim test.mtail
    # simple line counter
    counter line_count
    /$/ {
      line_count++
    }
    

    mtail 실행



    작성한 프로그램 파일을 읽도록 mtail을 기동한다.-progs로 읽을 프로그램 파일 지정-logs 에서 참조할 로그 파일 지정
    덧붙여서, 프로그램 파일의 수정은 동적으로 반영됩니다. mtail 프로세스를 다시 시작할 필요가 없습니다.
    # /var/log/messages を対象に、行数カウントのプログラムファイルを指定してmtailを起動
    mtail -progs /etc/mtail/test.mtail -logs /var/log/messages &
    

    mtail이 출력하는 메트릭의 취득은, mtail의 엔드 포인트에 3903 포트로 액세스하면 참조 가능합니다.
    json, prometheus, varz 형식의 데이터로 출력됩니다.

    mtail의 기본 화면은 이런 느낌



    xx.xx.xx.xx:3903에 액세스한 화면


    mtail on :3903
    Build: mtail version v3.0.0-rc5-48-g6e17f80 git revision 6e17f8086ba73fe59c17e2156417bffdc4015d13 go version go1.8.3
    
    Metrics: json, prometheus, varz
    
    Debug: debug/pprof, debug/vars
    
    Program Loader
    test.mtail
    
    No compile errors
    
    Total load errors ; successes: 1
    
    Log Tailer
    /var/log
    
    /var/log/messages
    

    json 형식



    xx.xx.xx.xx:3903/json
    [
      {
        "Name": "line_count",
        "Program": "test.mtail",
        "Kind": 1,
        "Type": 0,
        "LabelValues": [
          {
            "Value": {
              "Value": 0,
              "Time": 0
            }
          }
        ]
      }
    ]
    

    prometheus 형식



    xx.xx.xx.xx:3903/metrics
    # TYPE line_count counter
    # line_count defined at test.mtail:2:9-18
    line_count{prog="test.mtail"} 2
    

    문제없이 mtail이 시작되었으므로 다음은 prometheus 준비

    Prometheus 준비



    모니터링 대상 추가



    Prometheus가 mtail의 끝점을 참조하도록 Prometheus 구성 파일 prometheus.yml를 수정하십시오.
    기본 prometheus.yml에 localhost:3903의 작업을 추가합니다.
        static_configs:
          - targets: ['localhost:9090']
          - targets: ['localhost:3903'] ←追加した行
    

    구성 파일을 수정한 후 Prometheus를 시작하여 지표를 수집할 수 있는지 확인합니다.
    cd ~
    cd prometheus-2.1.0.linux-amd64
    ./prometheus &
    

    prometheus targets 화면
    xx.xx.xx.xx:9090으로 이동하여 확인


    지표 확인



    graph에서 line_counter 메트릭 값 보기 및 보기
    logger에서 테스트 메시지를/var/log/messasges에 출력하여 카운트 값이 증가하는지 확인.
    행수 3으로 스타트해, logger로 적당하게 출력해, 4,5로 증가하는 것을 확인했다.


    이상

    좋은 웹페이지 즐겨찾기