Blog

  • DCMTK  

    DICOM 서버에 파일을 직접 전송해야 할 경우가 있다. 이럴 경우에 사용하는 패키지이다.

    apt install dcmtk

    파일을 전송할 때 사용하는 프로그램은 storescu 이다.

    storescu [options] peer port dcmfile-in...

    사용방법은 매우 단순하다. 나의 경우에는 다음과 같이 사용한다.

    storescu rcc02.work 4242 /tmp/RAW/echo_new.dcm
  • 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
  • 부팅 후 특정 웹 사이트 항상 열기

    Grafana 사이트에 접속하여 상태를 보여줄 수 있는 컴퓨터가 없어서 라즈베리 파이 하나 남아 있는 여유분으로 이 사이트를 보기로 했다. 라즈베리 파이의 경우 항상 시작하게 하려면 다음과 같이 한다.

    sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

    다음의 내용을 추가한다.

    @xset s off
    @xset -dpms
    @xset s noblank
    @chromium-browser --kiosk http://rcc.work:4000/

    마우스 커서도 없애고 싶으면 unclutter 를 먼저 설치하고 다음의 내용을 추가한다.

    @unclutter -idle 0.1 -root
    

    2025-03-18 추가함

    최신 버전에서는 이상하게 위의 코드가 먹히지 않는다.

    일단 .bashrc 에 unclutter 와 chromium-browser –kiosk 를 실행시키도록 해서 해결하고 있다.

  • 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를 등록시켜서 시각화시키면 되는데 이게 처음에는 매우 어렵다.

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