agemo
(agemo)
6월 17, 2025, 11:08오전
1
앱에 진입하는 명령어 ./launcher enter app를 실행하고
apt install net-tools
명령어를 실행했습니다.
하지만 작동하지 않습니다.
저는 discourse 설정을 그대로 두는 편을 선호하지만, 최근 서버 부하가 증가한 것(사용자 수요 증가)을 확인해야 해서 앱에 진입한 후 netstat를 실행해야 한다고 생각했습니다.
그런데 기본적으로 설치되어 있지 않고, 설치도 할 수 없더군요.
이건 꽤 초보적인 질문이라는 걸 압니다. 여기서는 뭔가 아주 명백한 것을 놓치고 있는 것 같습니다. 혹시 앱 안에 있을 필요가 없는 걸까요?
Discourse 컨테이너는 app.yml 템플릿을 사용하여 빌드되며, 필요한 패키지는 이미지 빌드 과정(즉, ./launcher rebuild app 실행 시) 중에 설치되어야 합니다. 실행 중인 컨테이너 내에서 패키지를 대화형으로 설치할 수 없습니다.
이로 인해 net-tools(netstat를 제공하는 패키지)와 같은 일반적인 도구는 기본적으로 포함되지 않으며, 컨테이너가 실행된 후 쉽게 추가할 수도 없습니다.
컨테이너 내부에서 netstat가 필요한 경우, app.yml에 해당 항목을 추가한 뒤 컨테이너를 다시 빌드해야 합니다.
agemo
(agemo)
6월 17, 2025, 1:03오후
3
아, 알겠습니다. 그 통찰을 알려주셔서 감사합니다.
사실 그래서 저는 그 부분을 거의 건드리지 않는 편입니다. 저는 그런 작업을 해본 경험이 거의 없고, 플러그인 설치나 기본 app.yml 파일의 간단한 커스터마이징 정도만 해봤거든요.
더 심도 있는 app.yml 관련 내용을 다루는 메타 가이드가 있을까요?
Falco
(Falco)
6월 17, 2025, 1:28오후
4
왜 컨테이너가 아닌 호스트에 설치하지 않는 건가요? 서버 부하를 확인하려면 호스트 레벨에서 확인하는 것이 합리적입니다.
agemo
(agemo)
6월 17, 2025, 10:09오후
5
호스트라고 하셨을 때, OS/Linux 레벨을 의미하시나요?
저는 Ubuntu OS에서 netstat를 사용하고 있지만, 제 이해가 맞다면 모든 마법이 일어나는 컨테이너(nginx 등) 내부에서 필요할 것 같았습니다.
이 다른 사용자 사례(Discourse overloaded real traffic or DDOS? 100% CPU usage despite of decent traffic and high specs server )와 유사하거나 동일한 문제가 우리 드롭렛에서도 발생하고 있는지 파악해 보고 있었습니다.
Ed_S
(Ed S)
6월 19, 2025, 12:06오후
6
실제로, 외부 레벨에서 모니터링을 설치해야 합니다. 컨테이너를 '격리’로 생각하십시오. 컨테이너 내부의 요소가 외부의 요소를 손상시킬 수 없도록 하는 것이 핵심입니다. 하지만 외부 레벨에서는 내부에서 일어나는 모든 것을 볼 수 있습니다. 모든 네트워크 트래픽, CPU 활동, 메모리 압력까지도요.