콘텐츠로 이동

Proxmox 이메일 알림 설정 가이드

Proxmox VE 이벤트를 SMTP 릴레이로 제출하는 방법입니다. Proxmox VE 8.1 이후 알림 대상 방식과 레거시 sendmail/Postfix 방식은 다르므로 pveversion -v를 기록하고 한 방식의 공식 절차를 선택하세요. 메뉴 이름과 Gmail 앱 비밀번호 제공 여부는 버전·계정·조직 정책에 좌우됩니다.

개요 및 중요성

Proxmox의 이메일 알림 기능은 백업 상태, 디스크 상태, 시스템 이벤트 등을 실시간으로 모니터링할 수 있게 해주는 중요한 기능입니다. 이 기능을 활성화하면 시스템 문제를 즉시 파악하고 대응할 수 있어 Proxmox를 사용하는 경우 필수적으로 설정하는 것이 좋습니다.

Gmail을 이용한 이메일 알림 설정

가장 일반적으로 사용되는 Gmail을 기준으로 설정 방법을 설명하겠습니다. 다른 이메일 서비스도 유사한 방법으로 설정 가능합니다.

1. Gmail 앱 비밀번호 생성

Gmail에서 2단계 인증을 사용 중인 경우, 앱 비밀번호를 생성해야 합니다.

  1. Google 계정 관리로 이동합니다
  2. 보안 → 2단계 인증 메뉴로 이동합니다
  3. 2단계 인증이 사용 설정되어 있지 않다면 사용 설정으로 변경합니다
  4. 페이지 하단의 "앱 비밀번호" 설정으로 이동합니다
  5. 앱 비밀번호가 보이지 않는 경우 다음 URL로 직접 이동할 수 있습니다: https://accounts.google.com/v3/signin/challenge/pwd?continue=https://myaccount.google.com/apppasswords&service=accountsettings
  6. 앱 이름을 입력하고(예: "Proxmox") "만들기"를 클릭합니다
  7. 생성된 앱 비밀번호를 기록해둡니다(예: "htlumtimtpuoxhil")

2. Postfix 설치 및 설정

이메일 발송에는 Postfix를 사용합니다. SSH나 Proxmox 웹 콘솔을 통해 쉘에 접속한 후 다음 단계를 진행합니다.

2.1 필요한 패키지 설치

apt-get update
apt-get install postfix mailutils libsasl2-modules -y

일부 시스템에서는 libsasl2-modules 패키지를 찾을 수 없다는 오류가 발생할 수 있습니다. 이 경우 다음 명령어를 시도해보세요:

apt install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules

2.2 발신 이메일 정보 등록

vim /etc/postfix/sasl_passwd
또는 nano를 사용하는 경우:
nano /etc/postfix/sasl_passwd

파일에 다음 내용을 입력합니다:

[smtp.gmail.com]:587 [이메일주소]@gmail.com:[앱비밀번호]

예: smtp.gmail.com [email protected]:htlumtimtpuoxhil

파일을 저장한 후 다음 명령어를 실행하여 계정 정보를 해시 처리하고 권한을 변경합니다:

chown root:root /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
postmap hash:/etc/postfix/sasl_passwd
chown root:root /etc/postfix/sasl_passwd.db
chmod 600 /etc/postfix/sasl_passwd.db

2.3 Postfix 설정 변경

이제 Postfix 설정 파일을 수정합니다:

vim /etc/postfix/main.cf
또는:
nano /etc/postfix/main.cf

기존의 relayhost= 라인을 찾아 주석 처리(앞에 #을 추가)한 후, 파일 하단에 다음 내용을 추가합니다:

inet_protocols = all
relayhost = [smtp.gmail.com]:587
smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/Entrust_Root_Certification_Authority.pem
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_tls_session_cache_timeout = 3600s

일부 시스템에서는 Entrust_Root_Certification_Authority.pem 파일이 없을 수 있습니다. 이 경우 다음과 같이 대체할 수 있습니다:

smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

변경사항을 저장한 후 Postfix를 재시작합니다:

systemctl reload postfix
또는:
postfix reload

3. 이메일 발송 테스트

설정이 제대로 되었는지 테스트하기 위해 다음 명령어를 실행합니다:

echo "테스트 이메일" | mail -s "테스트 메일 제목" 수신자이메일주소@example.com

이메일이 정상적으로 전송되지 않는 경우, 로그 파일을 확인하여 문제를 해결할 수 있습니다:

cat /var/log/mail.log

4. 보낸 사람 이름 변경 (선택사항)

기본적으로 이메일은 'root'라는 이름으로 전송됩니다. 보낸 사람 이름을 변경하려면 다음 단계를 따릅니다:

nano /etc/postfix/header_check

파일에 다음 내용을 입력합니다:

/From:.*/ REPLACE From: [보낸사람 이름] 

예: /From:.*/ REPLACE From: Proxmox Alert

저장한 후 /etc/postfix/main.cf 파일에 다음 라인을 추가합니다:

smtp_header_checks = regexp:/etc/postfix/header_check

변경사항을 적용하기 위해 Postfix를 재시작합니다:

postfix reload

Proxmox 웹 UI에서 이메일 설정

Proxmox 웹 UI를 통해서도 일부 이메일 설정을 할 수 있습니다:

  1. Proxmox 웹 UI에 로그인합니다
  2. 데이터센터 > 옵션으로 이동합니다
  3. 'Email from address' 필드를 더블클릭합니다
  4. Proxmox가 발신할 이메일 주소를 입력하고 OK를 클릭합니다
  5. 사용자별 이메일 주소 설정: 데이터센터 > 권한 > 사용자로 이동한 후 사용자를 더블클릭하여 이메일 필드를 채웁니다

디스코드를 통한 알림 설정 (대안)

이메일 대신 디스코드로 알림을 받고 싶다면, 다음과 같이 설정할 수 있습니다:

  1. 디스코드에서 알림을 받을 채널에 웹훅을 생성하고 URL을 복사합니다
  2. Proxmox 서버에 필요한 패키지를 설치합니다:
    apt-get update && apt-get install jq -y
    
  3. 디스코드 연동 스크립트를 생성합니다:
    vi /usr/bin/discord.sh
    
  4. 스크립트에 다음 내용을 입력합니다:
    #!/bin/sh
    WEBHOOK_URL="웹훅URL"
    SERVERNAME="Proxmox"
    BODY="$(cat)"
    JSON=$(jq -n --arg body_oneline "$BODY" '{ "content": null, "embeds": [ { "title": "Proxmox", "description": $body_oneline } ] }')
    curl -d "$JSON" -H "Content-Type: application/json" "$WEBHOOK_URL"
    
  5. 스크립트에 실행 권한을 부여합니다:
    chmod +x /usr/bin/discord.sh
    
  6. /root/.forward 파일을 수정하여 디스코드로 포워딩합니다:
    vi /root/.forward
    
    파일에 다음 내용을 추가합니다:
    |/usr/bin/discord.sh
    
  7. 테스트를 수행합니다:
    echo "디스코드 알람 테스트" | mail -s "디스코드 알람" [email protected]
    

Proxmox 8.1 이상에서의 알림 시스템

Proxmox VE 8.1부터는 새로운 알림 시스템이 도입되었습니다:

  1. 알림 타겟은 Sendmail, SMTP, Gotify 등 여러 유형이 있습니다
  2. 데이터센터 > 알림 메뉴에서 설정할 수 있습니다
  3. 백업 작업에는 알림 모드가 있어, 새 알림 시스템과 레거시 모드 중 선택할 수 있습니다
  4. 설정은 /etc/pve/notifications.cfg/etc/pve/priv/notifications.cfg에 저장됩니다

완료, 실패 및 롤백 증거

내장 테스트와 실제 백업 성공·실패 이벤트를 각각 발생시켜 이벤트 ID, Postfix 큐 ID, 제공자 응답, 실제 수신 시각을 연결합니다. mail 종료 성공은 큐 접수일 수 있으며 전달 완료가 아닙니다. 실패 시 이전 main.cf와 알림 구성을 복원하고 노출 가능한 앱 비밀번호나 webhook을 폐기합니다.

문제 해결 팁

  1. 이메일이 전송되지 않는 경우 /var/log/mail.log를 확인하여 오류를 분석합니다
  2. 앱 비밀번호가 올바르게 입력되었는지 확인합니다
  3. 계정 정책에서 앱 비밀번호 또는 조직 SMTP 릴레이가 허용되는지 확인합니다
  4. Postfix 설정 파일에서 오타나 잘못된 경로가 없는지 확인합니다
  5. 필요한 패키지가 모두 설치되어 있는지 확인합니다