MySQL 모니터링 · 2 min read · Jan 29, 2026
원격 MySQL 성능 및 쿼리 모니터링
원격 MySQL 성능 및 쿼리 모니터링
원격으로 MySQL 서버를 모니터링해야 하는 상황이 있을 수 있습니다. 성능 및 쿼리 모니터링을 위해 로컬에서 사용할 수 있는 몇 가지 리눅스 도구가 있으며, 이러한 도구는 원격으로 모니터링하는 데에도 사용할 수 있지만, 암호화되지 않은 경우에만 가능합니다! 또한 MySQL은 종종 루프백 인터페이스에서만 수신 대기하므로, 보안 관점에서 볼 때 원격으로 네트워크를 통해 접근할 수 없습니다. 그러나 리눅스 세계에는 간단한 해결책이 있습니다.
사전 참고 사항 + 면책 조항
다음 기사는 제가 소프트웨어를 설치하고 사용하는 방법을 설명합니다. 같은 방법이 귀하에게도 작동할 것이라는 보장은 하지 않습니다. 셸에서 작업하는 기본 지식이 필요합니다.
SSH
한때 SSH는 가난한 사람의 VPN이라고 불렸지만, 매우 다재다능하고 유용한 기능이 많으며 설정이 매우 쉽습니다. 리눅스 박스를 관리할 때 SSH를 이미 사용하고 있을 가능성이 높습니다. 그렇다면 원격 MySQL 데이터베이스를 관리하는 작업에서 이를 활용하지 않을 이유가 무엇일까요?!
MySQL 도구
mysqlreport
mysqlreport는 Howtoforge의 기사 “Getting MySQL Status Values With mysqlreport”에서 소개되었으며, 이 보고서를 이해하는 가이드인 mysqlreportguide도 언급되었습니다.
mysqlreport는 다음과 같은 명령줄 매개변수를 사용하여 원격 사이트에 접속하는 데 사용할 수 있습니다.
mysqlreport --host 127.0.0.1 --port 3306 --user root --password ...원격 MySQL 서버에 접속할 수 있지만, 암호화되지 않은 경우에만 가능합니다.
mytop
mytop은 몇 초마다 다양한 상태 페이지를 제공하는 top과 유사한 애플리케이션입니다. 기본적인 원격 기능도 있지만, 암호화되지 않은 상태에서 다음과 같은 명령줄 매개변수를 사용합니다.
mytop --host 127.0.0.1 --port 3306 --user root --password ...innotop
innotop은 MySQL의 Inno-DB 엔진에 중점을 둔 도구입니다. mytop과 유사한 방식으로 작동하며, 다음과 같은 스타일의 기본 네트워킹 기능도 제공합니다.
innotop -u root -p ... -h 127.0.0.1이 도구들에 대해서는 그 가능성에 대한 더 깊은 지식을 얻기 위해 매뉴얼 페이지를 살펴보아야 합니다.
SSH
이 도구들은 기본 네트워크 기능을 가진 MySQL 관리 및 모니터링 도구들이 더 있을 것이라고 상상할 수 있으며, SSH의 힘과 쉽게 결합될 수 있습니다. SSH는 원격 사이트에 대한 연결을 실시간으로 암호화하여 비밀번호와 같은 귀중한 정보가 도청되는 것을 방지합니다. SSH 터널은 localhost에서만 수신 대기하는 서비스에 안전하게 접속하는 방법이 될 수 있습니다.
- 서버에서 SSH 데몬이 실행 중이어야 합니다.
- 가능하다면 비밀번호 없이 로그인하기 위해 공개 키를 서버에 내보냈어야 합니다.
- 다음과 같은 방식으로 SSH를 사용하여 서버와 안전하고 암호화된 터널을 설정해야 합니다.
ssh -v -L33066:localhost:3306 -N [email protected]로컬 포트 포워딩을 수행합니다. 다음 명령어를 입력하여 이를 확인할 수 있습니다.
netstat -an | grep 33066그리고 다음과 같은 출력을 얻습니다.
tcp 0 0 127.0.0.1:33066 0.0.0.0:* LISTEN
tcp6 0 0 ::1:33066 :::* LISTEN이 경우 두 개의 수신 대기 포트가 있으며, 하나는 IPv4이고 다른 하나는 IPv6입니다. 그러나 ::1은 IPv6에서의 localhost이며, 127.0.0.1은 IPv4에서의 localhost입니다.
- 그런 다음 암호화된 터널을 통해 로컬에 설치된 클라이언트 소프트웨어로 MySQL 대상에 안전하게 연결할 수 있습니다. 다음과 같은 방식으로 연결합니다.
mysqlreport --host 127.0.0.1 --port 33066 --user root --password ...또는
innotop -u root -p ... -h 127.0.0.1:33066또는
mytop --host 127.0.0.1 --port 33066 --user root --password ...이러한 종류의 연결은 유명한 PuTTY 또는 다른 SSH 클라이언트를 사용하여 설정할 수 있으며, 원격 관리가 가능한 더 많은 MySQL 관리 도구와도 연결할 수 있습니다.
추가 자료
저는 독일의 전 장관이자 전 의사인 폰 구텐베르크가 그의 논문에서 정보 출처를 올바르게 인용하지 않아 박사 학위가 취소된 것과는 다릅니다. 여기 제 정보 출처, 즉 각주(그가 넘어졌던 곳)가 있습니다 :) :
- Getting MySQL Status Values With mysqlreport
- mysqlreportguide
- Password-less logins with OpenSSH
그리고, “폰 구텐베르크” 사건과 관련하여, 위의 내용은 논문이 아니라 기술적인 Howto 또는 요리법의 일종임을 분명히 하고자 합니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.