> ## Content Index
> Fetch the complete content index at: https://blog.frostk.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Immich가 진단정보 전송을 껐어요. ML 컨테이너 설정도 확인하세요
- URL: https://blog.frostk.com/immich-telemetry-startup-setting/
- Published: 2026-11-08T01:00:00.000Z
- Updated: 2026-11-08T01:00:00.000Z
- Description: Immich 3.3.6은 사진 분석에 쓰는 ONNX Runtime의 진단정보 전송을 기본으로 꺼요. 다만 이미 넣어 둔 환경변수 값까지 덮어쓰는 수정은 아니에요. 공식 개인정보 문서와 초기화 코드를 대조해 차단 시점과 컨테이너에서 확인할 범위를 나눴어요.
- Author: Cat
- Tags: IT, 보안, 인프라

집 서버에서 사진을 보관하고 분석하는 Immich에서도, 사진 분석용 라이브러리는 따로 외부 통신을 할 수 있어요. Immich는 11월 4일 공개한 **3.3.6에서 ONNX Runtime의 진단정보 전송을 기본으로 껐어요.** 개발팀은 이 라이브러리의 기본값 변경을 놓쳐 ML 컨테이너에서 Microsoft로 익명 지표가 전송됐다며 사과했어요.

ML 컨테이너는 사진 분석용 기계학습 작업을 맡는 서비스예요. 이번 수정은 그 안에서 AI 모델을 실행하는 ONNX Runtime에 적용돼요. 릴리스 공지에 더해 실제 초기화 코드와 ONNX Runtime의 개인정보 문서를 읽어 보니, 끄는 시점과 기존 설정을 보존하는 방식이 눈에 띄었어요.

## 같은 차단이라도 시작 전과 시작 후가 달라요

ONNX Runtime 공식 문서는 진단정보를 전송하는 공식 빌드에서 수집이 기본으로 켜진다고 설명해요. 이번에 문제가 된 Linux 등에서는 1DS라는 전송 구성요소를 사용해요.

차단 방법은 둘인데 범위가 같지 않아요.

| 차단 방법                               | 공식 문서가 설명하는 범위                                |
| ----------------------------------- | --------------------------------------------- |
| 초기화 전에 ORT\_DISABLE\_TELEMETRY=1 설정 | 1DS 업로더와 이벤트, 지속 식별자 생성을 막아요                  |
| 실행 중 전용 API로 차단                     | 비필수 이벤트를 억제하지만, 호출 전 최소 초기화 이벤트가 이미 나갔을 수 있어요 |

그래서 진단정보 전송을 처음부터 막으려면 **초기화 전 설정**이 중요해요. 이 환경변수 설명은 1DS 빌드에 해당하며, 예전 Windows TraceLogging 방식에는 적용되지 않아요.

수정 PR 작성자는 지속 식별자와 OS·CPU·RAM 등의 정보가 전송된다고 설명했어요. 사진 원본이 유출됐다고 확인한 공지는 아니에요. 개별 설치에서 과거에 무엇이 전송됐는지는 별도로 확인해야 해요.

## 업데이트해도 기존의 0은 바꾸지 않아요

Immich 3.3.6의 ML 패키지 초기화 파일에는 다음 줄이 들어 있어요.

```python
os.environ.setdefault("ORT_DISABLE_TELEMETRY", "1")

```

`setdefault`는 값이 없을 때만 기본값을 넣어요. 이미 넣어 둔 값은 보존하죠. 이 코드와 ONNX Runtime 문서를 함께 보면, 기본 시작 경로의 설정을 이렇게 나눌 수 있어요.

| 시작할 때의 환경변수 | 이번 기본값 처리                    |
| ----------- | ---------------------------- |
| 변수 없음       | 1을 넣어요                       |
| 이미 1        | 그대로 둬요                       |
| 이미 0        | 0을 그대로 둬요. 전송 차단 값으로 바꾸지 않아요 |

공식 Compose 파일에서 확인할 서비스는 `immich-machine-learning`이에요. 별도 장비에서 ML 서비스를 돌린다면 그쪽도 봐야 해요. 다음 명령은 해당 컨테이너의 변수 하나만 확인해요. 비밀번호까지 포함할 수 있는 전체 환경변수를 출력할 필요는 없어요.

```sh
docker compose exec immich-machine-learning printenv ORT_DISABLE_TELEMETRY

```

여기서 값이 안 나왔다고 곧바로 차단 실패로 판단하면 안 돼요. 이 명령은 새 프로세스를 열어 컨테이너에 주어진 환경변수를 읽어요. 반면 위의 기본값은 ML의 Python 프로세스가 시작되면서 넣는 값이에요. **컨테이너에 변수를 명시했는지와 실행 중인 앱이 기본값을 넣었는지는 다른 질문**이에요.

명시적인 `0`이 있다면 의도한 설정인지 확인하세요. 전송을 막으려는 구성이라면 ML 서비스에 `1`을 전달하고 컨테이너를 다시 만들어 적용해야 해요. Compose 설정을 고쳤을 때는 `docker compose up -d immich-machine-learning`으로 변경을 반영할 수 있어요. 실제 전송 차단까지 확인하려면 이 설정 확인에 더해 네트워크 관찰이 필요해요.

## 확인한 범위

- 기준일: 2026-11-08
- 직접 한 것: 3.3.6 릴리스와 ML 초기화 파일·Compose 구성을 대조하고, ONNX Runtime의 환경변수 차단과 API 차단 범위 차이를 확인했어요. Docker 문서로 Compose 변경 적용과 새 프로세스의 환경변수 확인 의미도 대조했어요.
- 읽은 것: Immich 릴리스·수정 PR·태그 고정 소스, ONNX Runtime 개인정보 문서, Docker 공식 문서.
- 확인하지 못한 것: Immich를 실행하거나 통신을 캡처하지 않았어요. 모든 구버전 설치가 정보를 전송했다거나, 특정 설치의 과거 전송이 없었다고 판단할 수는 없어요.

## 출처

[Release v3.3.6 · immich-app/immichUnfortunately we missed that onnxruntime enabled telemetry by default in a recent release, resulting in the ML container automatically sending anonymous metric data to Microsoft. We have now disabl…![](https://blog.frostk.com/content/images/icon/favicon-4bb28fb0-0acc-4d8a-9276-8056e67967ff.png)GitHub![](https://blog.frostk.com/content/images/thumbnail/v3.3-29ef1393-ac81-419f-a933-7d080e3b8583.png)](https://github.com/immich-app/immich/releases/tag/v3.3.6?ref=blog.frostk.com)

[onnxruntime/docs/Privacy.md at main · microsoft/onnxruntimeONNX Runtime: cross-platform, high performance ML inferencing and training accelerator - microsoft/onnxruntime![](https://blog.frostk.com/content/images/icon/favicon-ce2501ca-a1f6-46e0-99ef-bdc15d787491.png)GitHub![](https://blog.frostk.com/content/images/thumbnail/37b1cb00-864b-11eb-8220-76153935f7da-45fd7adc-43c2-4728-bfe2-2045ea66fc7e.png)](https://github.com/microsoft/onnxruntime/blob/main/docs/Privacy.md?ref=blog.frostk.com)

초기화와 배포 구성: [ML 초기화 파일](https://github.com/immich-app/immich/blob/v3.3.6/machine-learning/immich%5Fml/%5F%5Finit%5F%5F.py?ref=blog.frostk.com), [공식 Compose 파일](https://github.com/immich-app/immich/blob/v3.3.6/docker/docker-compose.yml?ref=blog.frostk.com), [수정 PR](https://github.com/immich-app/immich/pull/32956?ref=blog.frostk.com).

Docker 동작: [Compose exec](https://docs.docker.com/reference/cli/docker/compose/exec/?ref=blog.frostk.com), [Compose up](https://docs.docker.com/reference/cli/docker/compose/up/?ref=blog.frostk.com).