Category: Prometheus

  • Mikrotik 모니터링 하기

    미크로틱과 같은 장비는 SNMP 를 통하여 모니터링 할 수 있다고 한다. 그래서 해봤다.

    snmp_exporter를 도커 컨테이너에서 실행하고자 한다면 9116번과 161번을 열어주는 것이 좋다. 9116은 Prometheus와 통신하기 위함이고 161번은 SNMP 통신의 기본 포트인 것 같다.

    Prometheus의 snmp_exporter는 Github에서 구할 수 있다.

    압축을 풀면 실행 파일과 기본 설정이 있는 snmp.yml 파일을 볼 수 있다. 그냥 실행시켜도 무난하지만 snmp.yml의 경로를 지정하는 것이 좋을 것 같다. 도커 컨테이너가 실행될 때 같이 실행하고 싶으니까 .bashrc 파일을 수정한다.

    /root/snmp_exporter-0.21.0.linux-amd64/snmp_exporter --config.file="/root/snmp_exporter-0.21.0.linux-amd64/snmp.yml" &

    다음으로 prometheus.yml 을 수정한다. 요령을 찾는데 몇 시간은 사용한 것 같다.

    • 10.10.10.1 은 모니터링 대상인 mikrotik 공유기이다.
    • 10.10.10.183은 snmp_exporter를 실행하고 있는 PC 이다.
      - job_name: 'snmp_exporter'
        static_configs:
          - targets: ['10.10.10.1']
        metrics_path: /snmp
        relabel_configs:
          - source_labels: [__address__]
            target_label: __param_target
          - source_labels: [__param_target]
            target_label: instance
          - target_label: __address__
            replacement: 10.10.10.183:9116
  • Prometheus

    node-exporter를 설치하였으니 이제 Prometheus를 설치할 차례이다. 역시 프로그램 파일을 받아서 이용해도 되고 Docker container를 이용해도 된다. Docker를 이용한 방법을 설명한다. 9090번 포트를 이용해서 환경 설정 화면에 들어갈 수 있다.

    sudo docker run \
        -itd \
        -p 9090:9090 \
        --restart always \
        --name prometheus \
        prom/prometheus

    Docker를 이용한다면 promethus.yml 파일을 수정해서 정보를 수집한 시스템을 입력해 주어야 한다. 컨테이너에 접근해도 수정할 수 없으므로 해당 파일을 컨테이너가 설치된 컴퓨터로 복사해서 수정한다. 수정한 후에 다시 컨테이너로 복사해 준다.

    sudo docker cp prometheus:/etc/prometheus/prometheus.yml .
    ...
    nano prometheus.yml
    ...
    sudo docker cp prometheus.yml prometheus:/etc/prometheus/prometheus.yml

    다음과 같이 추가하면 된다. job_name은 적절한 것을 선택하면 된다.

    scrape_configs:
      - job_name: "server"
        static_configs:
          - targets: ["10.10.10.170:9100", "10.10.10.184:9100", "10.10.10.171:9100", "10.10.10.178:9100"]

    1분 정도 시간이 경과한 후 Status – Targets 에서 정보를 수집하고 있는 것을 확인할 수 있다.

    이제 Grafana에서 Prometheus를 등록시켜서 시각화시키면 되는데 이게 처음에는 매우 어렵다.

    여기 하단에 보면 예시가 있는데 이를 이용하면 기본은 할 수 있다.

  • node-exporter

    요즘 모니터링 프로그램 중 하나인 Prometheus 를 많이 사용하는 것 같다. 그래서 이것을 사용해 보기로 했다. 감시 대상에 정보를 추출하는 node-exporter나 다른 exporter를 설치하고, 수집하는 시스템을 Prometheus로 구축한 후 Grafana 등을 이용해서 시각화한다.

    node-exporter는 프로그램 형식으로 이용할 수도 있고, Docker container를 이용할 수도 있다. 둘 다 기본적으로 9100 포트를 이용하는 것을 전제로 한다. Docker 를 이용하려면 다음과 같이 설치한다.

    sudo docker run -itd \
      --net="host" \
      --pid="host" \
          --restart always \
        --name node-exporter \
      -v "/:/host:ro,rslave" \
      quay.io/prometheus/node-exporter:latest \
      --path.rootfs=/host

    이게 Prometheus 홈페이지와 Docker Hub 내용이 조금 다른데 Docker Hub 내용을 기준으로 했다.