OwnTracks와Grafana를 사용하여 오픈소스, 자체 관리형 위치 추적
9075 단어 grafanamonitoringselfhosted
소개하다.
만약 스마트폰에서 어떤 유형의 구글 서비스를 사용한다면 구글은 당신의 위치를 지속적으로 추적하고 당신의 휴대전화Timeline를 업데이트할 가능성이 높다.
( Source )
이것은 매우 멋진 기능으로 나에게 있어서 과거에 내가 갔던 곳을 되돌아보는 것은 매우 재미있다.하지만 구글이 당신의 일상을 어떻게 정확하게 추적하는지도 걱정스럽다.이것이 바로 내가 위치 추적을 닫고 프라이버시를 더욱 중시하는 방법을 채택하기로 결정한 이유이다.
너의 설정
자체적으로 위탁 관리하는 위치 추적 시스템을 구축하려면 기술 전문 분야와 몇 개의 서로 다른 소스 소프트웨어 구성 요소와 작은 서버가 그것들을 위탁 관리해야 한다.
요구 사항 / 구성 요소
자신의 발자국
당신의 위치를 추적하는 첫걸음은 언제 어디서나 기록하는 것입니다.대부분의 사람들이 거의 항상 스마트폰을 휴대하고 있으며, 대부분의 스마트폰은 전 세계 내비게이션 위성 시스템의 센서를 가지고 있기 때문에 선택은 명백하다.유일하게 부족한 것은 적합한 응용 프로그램이다.이곳이 OwnTracks이 작용하는 곳이다.이것은 사용자의 위치를 기록하고 사용자 정의 설정의 MQTT 에이전트나 HTTP 노드에 보내는 모바일 프로그램입니다.안드로이드(Kotlin으로 작성)뿐만 아니라 iOS(Objective-C로 작성)에도 적용되며 개발자 중심documentation이 매우 상세하다.
( Source )
그것은 서로 다른 추적 기능modes을 덧붙여서 기본적으로 발송 위치의 주파수를 지정할 수 있다.이상하게도 이 패턴들은 안드로이드와 iOS에서 다르게 나타난다.
iOS에서 추적
안드로이드에서 추적
이동 모드
x
m(기본값: 100) 또는 t
초(기본값: 300) 이후30초마다
패턴의 중대한 변화
>=500미터와 >=5분 후
>=
x
미터와 >=t
초 후수동 모드
사용자 요청에 응하다
사용자 요청에 응하다
조용 모드
여태껏... 한 적이 없다
여태껏... 한 적이 없다
사실상, 프로그램이 장치 센서에 요청한 위치의 주파수와 발송 위치의 주파수를 구분해야 하기 때문에, 이것은 이것보다 더 복잡하다.또한 필요한 정밀도에 대해 다른 옵션(예를 들어 GPS는 더 정확하지만 사용하는 출력은 더 크다)이 있다.이 밖에 iOS에는 지역 모니터링과 iBeacon 모니터링 모드도 있다.
나는 네가 문서를 자세히 읽고 네 스마트폰 운영체제에 따라 어떤 모델이 너에게 가장 적합한지 결정하는 것을 건의한다.하나, 그러나 안드로이드에서 다음 사용자 정의 설정 변수를 사용하여 중대한 변경을 하기로 결정했습니다.
{
"locatorDisplacement": 25,
"locatorInterval": 60,
"locatorPriority": 2
}
이것은 기본적으로 응용 프로그램에 매번 내가 25미터를 넘게 이동하지만 최대 60초마다 블록급 정밀도(100미터)로 나의 위치를 요청한다는 것을 알려준다.이 설정들은 나에게 있어서 효과가 매우 좋아서, 나는 배터리 소모에 어떤 중대한 영향을 미치는지 의식하지 못했다.서버측 스크립트
클라이언트를 설정한 후에도 OwnTracks 응용 프로그램의 요청을 받을 서버 측 구성 요소가 없습니다.OwnTracks는 itRecorder를 덧붙였습니다. 이것은 C로 작성된 작고 간단한 웹 응용 프로그램입니다. 그러나 저는 그것을 별로 좋아하지 않습니다. 왜냐하면 이것은 특별히 예뻐 보이지 않고 기능이 매우 제한되어 있기 때문입니다.나는 나의 데이터를 그라파나로 가시화하고 싶다.그러나 이를 실현하려면 우선 데이터베이스에 영구화해야 한다.
업데이트: 나는 동시에
owntracks/frontend
를 발견했는데, 이것은 녹화기의 웹 UI보다 훨씬 고급스러운 것 같다.Grafana의 대체품으로 사용하기를 원할 수도 있습니다. 이것은 설정을 더욱 쉽게 할 수 있습니다.심장 박동 요청의 유효 부하는 다음과 같다.
{
"_type": "location",
"acc": 13,
"alt": 163,
"batt": 91,
"bs": 1,
"conn": "w",
"created_at": 1624607444,
"lat": 48.9995682,
"lon": 8.3940805,
"t": "u",
"tid": "l3",
"tst": 1624607139,
"vac": 3,
"vel": 0
}
나는 내 위치의 심장 박동을 기록하고 MySQL 데이터베이스에 쓰기 위해 곧 a little PHP script를 썼다.PHP를 지원하는 모든 웹 서버에서 실행할 수 있습니다. (제가 사용하는 것은 Caddy2 와 php-fpm
.만약 그것이 https://my.server.tld/track.php
아래에 배치된다면, 이것은 OwnTracks 응용 프로그램에서 HTTP 목표 노드로 설정해야 하는 URL입니다.또는 웹 서버 구성에서 HTTP Basic auth를 구성할 수 있습니다.OwnTrack의 클라이언트 응용 프로그램은 이러한 내장 기능을 지원합니다.그라바나 계기판
마지막으로 부족한 부분은 실제 위치 데이터를 시각화하는 것입니다.저는 Grafana의 충실한 팬입니다. 낮은 노력으로 아름다운 가시화 효과를 쉽게 구축할 수 있기 때문입니다.Grafana는 MySQL과 통합되어 데이터 원본으로 사용되기 때문에 이전에 상기 스크립트에서 받은 위치 데이터를 읽을 수 있습니다.grafana-map-panel 플러그인을 사용하여 대시보드에서 지리적 데이터를 시각화할 수 있습니다.그 밖에 나는 또 다른 두 개의 도표를 추가하여 나의 속도와 휴대전화의 배터리 전량이 시간에 따라 변화하는 것을 그리는 데 사용했다.이것이 바로 그것의 최종 모습이다.
지리적 데이터 패널은 다음과 같은 기본 SQL 질의로 생성됩니다.
SELECT
tst AS "time",
lat,
lon,
vel
FROM recordings
WHERE
$__unixEpochFilter(tst) AND
user = '$user' AND
device = '$device'
ORDER BY tst
결론
그렇지!너는 이제 구글의 무료 위치 시간표를 가지고 있다.즐겁게 놀아라!
최초 발표muetsch.io.
Reference
이 문제에 관하여(OwnTracks와Grafana를 사용하여 오픈소스, 자체 관리형 위치 추적), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/n1try/open-source-self-hosted-location-tracking-with-owntracks-and-grafana-3p11텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)