웹사이트 검색

시스템 모니터링을 위해 CentOS VPS에서 이메일 알림을 보내는 방법


소개

이메일 알림을 보내는 기능은 모든 VPS의 일상적인 관리에 필수적입니다. 시스템 관리자(및 사용자 모두)에게 이 [새로운] 가능성을 활용할 수 있다는 것은 작업을 더 쉽게 할 뿐만 아니라 만들 수 있는 트리거를 사용하여 도둑이나 다운타임과의 전투에서 많은 동맹을 제공합니다.

이 DigitalOcean 기사에서는 CentOS VPS에서 단순히 이메일 알림을 보내는 방법을 배우고 전반적으로 더 나은 보안을 설정하고 원활하게 실행되는 시스템을 유지하기 위해 설정할 수 있는 다양한 트리거에 대해 이야기할 것입니다. 이메일의 기본 사항을 이해하고 설정할 수 있는 다양한 이메일 경고 트리거의 예와 함께 필요한 애플리케이션을 살펴보고 추가 생성을 위한 중요한 요구 사항을 식별하는 논리를 통해 이를 수행합니다.

이메일 이해

우리가 사용하는 횟수에 관계없이 이메일 송수신의 복잡성은 회사에서 간단한 온라인 이메일 서비스의 형태로 추상화되는 복잡성으로 인해 거의 생각되지 않습니다. 단순히 전자 메일 메시지(이메일)를 보내고자 하는 모든 사람에게 엄청난 노력을 들인 스팸 메시지 퇴치를 위한 노력은 더욱 그러했습니다.

전자 메일(또는 전자 메일)은 한 당사자에서 다른 당사자에게 전자적으로 배포되는 메시지 유형 또는 방법으로 간주될 수 있습니다. 이것은 로컬 네트워크 또는 (보통) 내장 도구를 통해 동일한 시스템(예: VPS)에서 발생할 수 있으므로 인터넷을 통해 확산되는 온라인 프로세스일 필요는 없습니다. 그러나 인터넷을 통해 전자 메일을 보내야 하는 경우 메시지 전송 에이전트를 시작으로 많은 구성 요소가 작동합니다.

메시지 전송 에이전트(또는 메시지 전송 에이전트)

"메시지 전송 에이전트\는 동일한 시스템 또는 다른 위치(즉, 인터넷 또는 LAN을 통해)에 있는 사용자(들)에 연결된 (이메일) 메시지 전달을 실제로 수행하는 응용 프로그램입니다. MTA 응용 프로그램은 일반적으로 다양한 Linux 배포판과 함께 기본적으로 제공되며 전자 메일 클라이언트에서 일반적으로 SMTP 프로토콜을 사용하여 호스트 간에 메시지를 보내는 데 사용됩니다.

메일 사용자 에이전트(이메일 클라이언트)

수많은 "메일 사용자 에이전트\는 사용자(즉, 귀하) 또는 다른 애플리케이션이 이메일을 보내고 받는 데 사용하는 애플리케이션입니다. 작동하려면 메시지 전송 에이전트(MTA)에 의존합니다. 온라인에서 작동하는 Microsoft Outlook, Mozilla Thunderbird 또는 Gmail까지도 모두 메일 사용자 에이전트에 적합한 예입니다.

단순 메일 전송 프로토콜(SMTP)

호스트 간에 메시지를 전송하려면 서로 통신할 수 있도록 공통 언어(즉, 프로토콜)를 설정해야 합니다. 수십 년 전에 만들어지고 표준화된 SMTP는 메시지를 보내는 방법이 되었습니다. MTA는 SMTP 프로토콜을 사용하여 이메일을 배달합니다.

Heirloom mailx로 간단하게 이메일 보내기

오늘날 위에서 설명한 아키텍처는 전자 메일 교환의 복잡한 특성 중 일부만을 다루고 있습니다. \적절한\ 시스템이 작동하려면 훨씬 더 많은 작업을 수행해야 하며 불행하게도 전자 메일이 받은 편지함과 스팸 폴더로 배달될 가능성이 보장되지 않습니다.

그러나 이 기사에서는 극도의 단순성에 초점을 맞출 것입니다. 우리는 귀하가 실제 작업, 시스템 관리 및 받은 편지함에서 알림 수신에 집중할 수 있도록 단 몇 분 만에 귀하를 시작하고 실행할 수 있도록 하는 것을 목표로 합니다.

우리는 Berkeley Mail에서 파생된 환상적인 메일 사용자 에이전트인 Heirloom mailx와 함께 작업할 것입니다. IMAP, POP3 및 물론 SMTP를 포함하지만 이에 국한되지 않는 여러 프로토콜에 대한 추가 지원을 제공합니다. 경고 및 시스템 경고를 수신하는 데 사용하는 도구입니다.

참고: 온라인 설명서나 포럼을 살펴보면 네일이라는 유사한 애플리케이션을 볼 수 있습니다. 두 프로젝트는 (일종의) 동일하며 nailmailx에 통합됩니다. 따라서 "nail\을 사용하는 전자 메일 명령이 표시되면 "mail\ 또는 "mailx\로 대체하여 실행할 수 있습니다. 또는 mailx에 대한 심볼릭 링크 지점을 만들 수 있습니다. 응용 프로그램. mailx history를 방문하여 mail, Mail, mailx 및 nail의 역사에 대해 자세히 알아볼 수 있습니다. 심볼릭 링크 생성에 대해서는 계속 읽으십시오.

mailx 설치

시스템 업데이트부터 시작하겠습니다.

참고: 안정적인 프로덕션 환경에 있는 경우 실행 중인 애플리케이션을 방해할 수 있으므로 이 단계를 건너뛸 수 있습니다.

시스템을 업데이트하려면 다음을 실행하십시오.

$ yum -y update

mailx를 시작하는 것은 매우 간단합니다. yum 패키지 관리자를 사용하여 다운로드하고 설치합니다.

CentOS/RHEL 시스템에서 다음을 실행합니다.

$ yum install -y mailx

그리고 그게 다야! 이제 "mail\(또는 mailx) 명령을 사용하여 전자 메일 보내기를 시작할 수 있습니다.

심볼릭 링크란 무엇이며 심볼릭 링크를 만드는 방법

심볼릭 링크(symlink)는 다른 기존 파일에 대한 참조로 구성된 파일입니다.

일부 모니터링 스크립트 및 응용 프로그램은 "mail\ 또는 "mailx\ 대신 "email\을 사용하여 이메일을 보낼 수 있습니다. 이러한 상황에 처한 경우 다음을 가리키는 기호 링크를 만들 수 있습니다. (참조) mailx.

아래에서 "mailx\를 실행하기 위해 "mail\에 대한 심볼릭 링크를 만들고 있습니다.

심볼릭 링크를 생성하려면 다음을 실행합니다(/bin/email을 필요한 링크 이름으로 대체).

$ ln -s /bin/mailx /bin/email

전자 메일을 릴레이하도록 외부 SMTP 서버를 설정하는 방법

위에서 언급한 바와 같이 이 린 솔루션을 사용하면 일부 전자 메일이 스팸 폴더에 들어갈 수 있습니다. 경고에 대한 간단한 응용 프로그램을 목표로 하므로 문제가 되지 않습니다. 그러나 배달 속도를 높이려면(예: 받은 편지함으로) 메시지를 외부 SMTP 서버(예: 전자 메일 공급자 또는 상업용 전자 메일 서비스)를 통해 릴레이하도록 선택할 수 있습니다.

"mailx\가 사용할 SMTP 서버 [구성]을 설정하려면 응용 프로그램의 [특정] 설정이 있는 /etc/mail.rc 파일의 내용을 편집해야 합니다. "nano” 텍스트 편집기를 사용하여 이 파일을 열고 설정을 상단에 추가할 것입니다.

"nano\를 사용하여 "mail.rc\를 엽니다.

$ nano /etc/mail.rc

아래에서 "mail.rc\의 맨 위에 추가하기 전에 공급자와 일치하도록 수정해야 하는 SMTP 설정의 예를 찾을 수 있습니다. # 기호로 시작하는 줄은 주석 처리됩니다. 즉, 적용되지 않습니다. -- 그리고 구조로 구성됩니다. 다음 줄은 SMTP 서버 세부 정보와 일치하도록 적절하게 교체해야 하는 줄입니다.

예:

# set smtp=smtp://smtp.server.tld:port_number
set smtp=smtp://smtp.example.com:543
# tell mailx that it needs to authorise
set smtp-auth=login
# set the user for SMTP
# set smtp-auth-user=user@domain.tld
set smtp-auth-user=user.name@example.com
# set the password for authorisation
set smtp-auth-password=enter-password-here-1234

"CTRL+X\를 누르고 "Y\를 확인하여 저장하고 종료합니다.

이제부터 전송되는 모든 메일은 방금 설정한 구성을 사용하여 릴레이됩니다.

팁: Gmail 서버 사용을 고려하거나 매달 수천 개의 메일을 무료로 보낼 수 있는 MANDRILL과 같은 사용하기 쉬운 전문 메일 서비스의 SMTP 서버를 제공할 수 있습니다.

메일(또는 mailx)로 이메일 보내기

MTA sendmail과 직접 상호 작용할 수 있지만 "mailx\를 설치하면 무엇보다도 많은 단순성과 필요할 때 [향후에] 구성할 수 있는 가능한 옵션을 제공합니다.

다음은 Heirloom mailx에서 사용할 수 있는 옵션 중 일부입니다.

  • -a 파일 주어진 파일을 이메일에 첨부할 수 있습니다.
  • -b 주소 쉼표로 구분된 전자 메일 주소 목록에 숨은 참조를 보냅니다.
  • -c address 사용자 목록에 사본을 보냅니다.
  • -q 파일 주어진 파일에서 메시지 내용을 설정합니다.
  • -r from address 보낼 이메일의 보낸 사람 주소를 설정합니다.
  • -s 제목 이메일 제목 설정

전체 옵션 목록을 보려면 여기를 클릭하여 관련 문서를 참조하십시오.

사용 예:

간단한 메시지 보내기:

 echo "Your message" | mail -s "Message Subject" email@address

첨부 파일이 있는 메시지 보내기:

 echo "Message" | mail -s "Subject" -a /loc/to/attachment.txt email@address

파일에서 메시지 본문 읽기:

 echo | mail -s "Subject" -r from@address -q /loc/to/body.txt email@address

참고: 외부 SMTP 서버를 설정하지 않은 경우 위에서 설명한 대로 전자 메일이 스팸 폴더에 들어갈 가능성이 높으며 계속 수신하려면 받은 편지함으로 수동으로 리디렉션해야 합니다.

완전한 Heirloom mailx 문서를 보려면 http://heirloom.sourceforge.net/mailx.html에 있는 공식 웹 사이트를 방문하십시오.

시스템 모니터링, 경고 및 보안 경보에 대한 경고 설정

모든 준비가 완료되었으므로 이제 서버에서 발행하고 이메일로 보낼 수 있는 몇 가지 다양한 경고 예를 살펴볼 수 있습니다.

포트 및 소켓 모니터링

포트 및 소켓 모니터링에 대해 자세히 알아보려면 주제에 대해 알아보고 작업에 대한 Linux 소켓 모니터를 빠르게 설정할 수 있는 다음 문서를 참조하십시오. 이 작업은 "mailx\를 사용하여 새 포트/소켓이 열릴 때 알려줍니다. .

DigitalOcean 커뮤니티 라이브러리의 CentOS 6.4에 LSM(Linux Socket Monitor)을 설치하는 방법

Bash 스크립트를 사용하는 기타 모니터링 옵션:

특정 요구사항(예: 메모리 부족, 디스크 공간, 로그인 등 모니터링)이 있는 경우 이제 다양한 bash 스크립트를 검색하여 작업을 수행할 수 있으며 수천 개의 스크립트를 찾을 수 있습니다. 사용 가능!

Bash 스크립트란 무엇입니까?

Bash 스크립트(또는 쉘 스크립트, bash 프로그램)는 빠른 작업을 수행하는 데 사용되는 작은 응용 프로그램입니다. 생성 및 사용이 간단하기 때문에 많이 선호되고 시스템 관리를 위한 훌륭한 도구가 됩니다.

하나를 찾으면(필요한 작업에 대해) 실행 가능한 bash 스크립트로 저장할 빈 파일을 만들어야 합니다.

예:

디스크 공간이 부족해지면 이메일 알림을 받고 싶습니다. 이를 위해 "Send an Email Alert When Your Disk Space Gets Low\와 같이 빠른 Google 검색을 수행합니다. 다양한 결과 중에서 Linux Jornal의 결과를 볼 수 있습니다. URL을 클릭하면 bash 스크립트가 표시됩니다. 페이지에 문서화되어 있습니다.

bash 스크립트에 nano를 사용하여 새 텍스트 파일을 만듭니다.

$ nano monitor_disk_space.sh

URL에서 콘텐츠를 복사하여 붙여넣습니다.

#!/bin/bash
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=90

if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
    mail -s 'Disk Space Alert' mailid@domainname.com << EOF
Your root partition remaining free space is critically low. Used: $CURRENT%
EOF
fi

참고: mailid@domainname.com을 귀하의 이메일 주소로 바꾸는 것을 잊지 마십시오. 또한 제목 줄도 수정할 수 있음을 기억하십시오.

파일을 저장하고 종료하려면 "CTRL+X\를 누르고 "Y\를 눌러 확인하십시오.

이제 원하는 이름을 지정할 수 있는 monitor_disk_space.sh라는 작은 bash 프로그램을 만들었습니다.

이 파일이 실행 파일임을 운영 체제에 계속 알려야 합니다.

"chmod\를 사용하여 파일 실행 가능 권한을 부여합니다.

$ chmod +x monitor_disk_space.sh

파일을 실행하여 실행할 수 있습니다: ./monitor_disk_space.sh

이 작은 프로그램이 시스템 모니터처럼 작동하도록 하려면 유틸리티 도구 cron을 사용하여 일정 간격으로 실행되도록 예약해야 합니다.

특정 작업에 대한 cron 예약에 대해 알아보려면 VPS에서 작업을 자동화하기 위해 Cron을 사용하는 방법에 대한 다음 문서를 읽으십시오.

그리고 첫 번째 모니터링 스크립트 작성이 완료되었습니다!

예 2:

[디스크] 공간 사용을 모니터링하고 특정 임계값을 초과할 때 이메일을 받으려면 Linix.com에서 이 훌륭한 예를 참조할 수 있습니다.

빈 셸 스크립트 파일을 만드는 것으로 시작하겠습니다.

$ nano monitor_space_usage.sh

이 자체 설명 스크립트의 내용을 복사하여 붙여넣으십시오.

#!/bin/bash

LIMIT='80'
#Here we declare variable LIMIT with max of used spave

DIR='/var'
#Here we declare variable DIR with name of directory

MAILTO='monitor@gmail.com'
#Here we declare variable MAILTO with email address

SUBJECT="$DIR disk usage"
#Here we declare variable SUBJECT with subject of email

MAILX='mailx'
#Here we declare variable MAILX with mailx command that will send email

which $MAILX > /dev/null 2>&1
#Here we check if mailx command exist

if ! [ $? -eq 0 ]
#We check exit status of previous command if exit status not 0 this mean that mailx is not installed on system
then
          echo "Please install $MAILX"
#Here we warn user that mailx not installed
          exit 1
#Here we will exit from script
fi

cd $DIR
#To check real used size, we need to navigate to folder

USED=`df . | awk '{print $5}' | sed -ne 2p | cut -d"%" -f1`    
#This line will get used space of partition where we currently, this will use df command, and get used space in %, and after cut % from value.

if [ $USED -gt $LIMIT ]
#If used space is bigger than LIMIT

then
      du -sh ${DIR}/* | $MAILX -s "$SUBJECT" "$MAILTO"
#This will print space usage by each directory inside directory $DIR, and after MAILX will send email with SUBJECT to MAILTO
fi

필요에 맞게 수정했는지 확인한 후(MAILTO 변수를 수정하여 이메일 주소를 수신자로 설정) "CTRL+X\를 누르고 "Y\를 눌러 저장할 수 있습니다.

파일을 실행 가능으로 다시 설정하면 두 번째 Linux 시스템 모니터링 도구가 준비됩니다.

파일 실행 권한을 부여하려면 다음을 실행하십시오.

$ chmod +x monitor_space_usage.sh

노트:

모니터링에 대한 더 많은 쉘 스크립트를 보려면 http://linoxide.com/category/linux-shell-script/를 방문하십시오.

일반적인 쉘 스크립트에 대한 자세한 내용은 http://www.linoxide.com/guide/scripts-pdf.html을 참조하십시오.

제출자: