이 Python 스크립트는 Shelly Shelly Pro 3EM 장치에서 측정항목을 수집하도록 설계되었습니다.
모니터링을 위해 Prometheus에 노출합니다. 스크립트는 Flask를 사용하여 Prometheus가 메트릭을 스크랩할 수 있는 웹 서버를 생성하고 Prometheus 클라이언트 라이브러리를 사용하여 메트릭을 정의하고 업데이트합니다.
Python 3.6 or higher
Flask
prometheus_client
requests
Install required packages:
pip install flask prometheus_client requests
Run the script:
python shelly_exporter.py
스크립트가 실행 중인지 확인하십시오. 웹 브라우저를 열고 http://<your_server_ip>:8004/metrics로 이동하십시오. Prometheus 측정항목이 노출되는 것을 볼 수 있습니다.
Prometheus 구성 파일(prometheus.yml)에 다음 작업을 추가합니다.
scrape_configs:
- job_name: 'shelly'
static_configs:
- targets: ['<your_server_ip>:8004']
sudo systemctl restart prometheus
Prometheus의 웹 인터페이스를 열고 "Targets" 페이지(http://<your_prometheus_ip>:9090/targets)로 이동합니다. Shelly 내보내기 대상이 나열되고 "UP"으로 표시되어 있는지 확인하세요.
Grafana를 열고 "구성" > "데이터 소스"로 이동합니다. "데이터 소스 추가"를 클릭하고 "Prometheus"를 선택하십시오. URL을 http://<your_prometheus_ip>:9090으로 설정하고 "저장 및 테스트"를 클릭하세요.
Shelly Pro 3EM 장치를 모니터링하기 위해 사전 구성된 Grafana 대시보드를 가져오려면 다음 단계를 따르세요.
Grafana 인스턴스가 작동되어 실행 중인지 확인하세요. Prometheus 데이터 소스는 Shelly Pro 3EM 내보내기의 메트릭을 사용하여 Grafana에서 구성되어야 합니다.
대시보드 가져오기: 왼쪽 메뉴에서 만들기 > 가져오기를 클릭합니다. 대시보드 JSON을 붙여넣거나, JSON 파일을 업로드하거나, Grafana 대시보드 ID( 21725 )를 입력하라는 메시지가 표시됩니다. 로컬 시스템에서 shelly_pro_3em_dashboard.json 파일을 업로드하는 옵션을 선택하세요.
데이터 소스 구성: 업로드 후 Prometheus 데이터 소스를 선택하라는 메시지가 표시될 수 있습니다. Shelly Pro 3EM 측정항목에 대해 구성된 올바른 데이터 소스를 선택하세요.
대시보드 저장 및 보기: 가져온 후 저장을 클릭하여 대시보드를 저장합니다. 이제 Grafana 대시보드에서 Shelly Pro 3EM 장치의 실시간 지표와 기록 데이터를 볼 수 있습니다.
대시보드 사용자 정의 대시보드는 완전히 사용자 정의할 수 있습니다. 필요에 따라 패널을 추가, 제거 또는 수정할 수 있습니다. 추가 구성을 원하거나 개선에 기여하려면 언제든지 끌어오기 요청을 제출하거나 문제를 열어주세요.
"저장"을 클릭하고 대시보드 이름을 지정하세요. 이제 Grafana에서 Shelly 장치 측정항목을 모니터링할 수 있습니다.
다음 단계를 수행하면 Prometheus 및 Grafana를 사용하여 Shelly 장치에서 측정항목을 모니터링할 수 있습니다.