이메일 알림을 통한 시스템 모니터링


11

현재 Ubuntu Server 16.04 LTS가 있으며 서버의 리소스 사용량에 대한 정보가 포함 된 전자 메일 알림을 받고 싶습니다. CPU, 메모리, 스왑 등 이름을 지정합니다.

로컬 모니터링에 Glances를 사용할 수 있지만 정보를 항상보고있는 콘솔에 있지는 않습니다. 정상 / 중요한 값을 초과하여 알림을받는 리소스를 알려주는 이메일 알림 만 있으면됩니다.

누구든지 내가 이것을 할 수있는 방법을 알고 있습니까?


netdata는 귀하의 요구 사항에 완벽합니다.
— luv.preet

답변:


13

나는 당신에게 작은 도구 목록을 줄 것입니다-나는 익숙해지면 Nagios 를 개인적으로 추천 할 것입니다. 큰 사용자 기반, 우수한 플러그인 모음 등이 제공되지만 Icinga 에 대해서도 좋은 소식을 들었습니다 .

Nagios 또는 Icinga 를 설정 하면 기존의 모든 서비스를 포함 / 모니터링하는 완벽하게 작동하는 설정이 될 때까지 약간의 시간이 걸립니다. 시작은 그다지 쉽지는 않지만 일단 작동하면 상태가 변경되면보고 / 정의 된 것으로 정의 된 모든 정의 된 서비스에 알리는 멋진 설정입니다.

프로젝트 이름 및 링크

우선 빠른 개요 :

클라이언트 및 서버 설정

다른 흥미로운 소프트웨어

단일 호스트 설정

추가 정보

나지 오스 소개

위키피디아 글

Nagios Core로 알려진 Nagios / ˈnɑːɡiːoʊs /는 시스템, 네트워크 및 인프라를 모니터링하는 무료 오픈 소스 컴퓨터 소프트웨어 응용 프로그램입니다. Nagios는 서버, 스위치, 응용 프로그램 및 서비스에 대한 모니터링 및 경고 서비스를 제공합니다. 문제가 발생하면 사용자에게 경고하고 문제가 해결되면 다시 경고합니다.

이미지 예-여러보기 중 하나를 표시합니다.

여기에 이미지 설명을 입력하십시오

다음은 Nagios 설치 방법에 대한 AskUbuntu 게시물 입니다. Nagios Exchange 는 다양한 플러그인, 애드온, 설명서, 확장 기능 등을 제공합니다.

무닌 소개

위키피디아 글

Munin은 무료 오픈 소스 컴퓨터 시스템 모니터링, 네트워크 모니터링 및 인프라 모니터링 소프트웨어 응용 프로그램입니다. 서버, 스위치, 응용 프로그램, 서비스 등에 대한 모니터링 및 경고 서비스를 제공합니다. 문제가 발생할 경우 사용자에게 경고하고 문제가 해결되면 다시 경고합니다.

이미지 예

여기에 이미지 설명을 입력하십시오

이싱가 소개

위키피디아 글

Icinga는 오픈 소스 컴퓨터 시스템 및 네트워크 모니터링 응용 프로그램입니다. 원래 2009 년 Nagios 시스템 모니터링 응용 프로그램의 포크로 만들어졌습니다.

Icinga는 Nagios의 개발 과정에서 인식 된 단점을 극복하고 최신 웹 2.0 스타일 사용자 인터페이스, 추가 데이터베이스 커넥터 (MySQL, Oracle 및 PostgreSQL 용) 및 REST API와 같은 새로운 기능을 추가하려고합니다. 관리자는 Icinga 코어의 복잡한 수정없이 수많은 확장을 통합 할 수 있습니다.

여러보기 중 하나를 보여주는 이미지 예 :

여기에 이미지 설명을 입력하십시오

Spiceworks 소개

Wikipedia의 글을 참고하세요 :

Spiceworks는 텍사스 오스틴에 본사를 둔 정보 기술 (IT) 산업을위한 전문 네트워크입니다. 이 회사는 2006 년 1 월 Scott Abel, Jay Hallberg, Greg Kattawar 및 Francis Sullivan이 IT 관리 소프트웨어를 구축하기 위해 설립했습니다.

Spiceworks는 사용자가 서로 협업하고 조언을 구할 수 있고 IT 관련 서비스 및 제품을 구매하기 위해 시장에 참여할 수있는 온라인 커뮤니티입니다. 이 네트워크는 600 만 명 이상의 IT 전문가와 3,000 명의 기술 공급 업체에서 사용하는 것으로 추정됩니다.

monit 소개

위키피디아 글

Monit은 Unix 및 Linux를위한 무료 오픈 소스 프로세스 감독 도구입니다. Monit를 사용하면 시스템 상태를 명령 줄 또는 기본 HTTP (S) 웹 서버를 통해 직접 볼 수 있습니다. Monit은 Ruby on Rails와 Mongrel 웹 서버로 인기를 얻었습니다. 확장 가능한 Ruby on Rails 사이트를 지원하기 위해 실행해야하는 동일한 Mongrel 프로세스를 관리 할 수있는 도구가 필요했으며 Monit은 상당히 독특했습니다. Ruby on Rails 커뮤니티의 요구에 적합합니다. Twitter 및 scribd를 포함하여 많은 유명한 Rails 사이트에서 Monit을 사용했습니다.

선인장 소개

Wikipedia의 글을 참고하세요 :

Cacti는 공개 소스, 업계 표준 데이터 로깅 도구 RRDtool의 프론트 엔드 애플리케이션으로 설계된 공개 소스 웹 기반 네트워크 모니터링 및 그래프 도구입니다. Cacti는 사용자가 미리 결정된 간격으로 서비스를 폴링하고 결과 데이터를 그래프로 표시 할 수 있습니다. 일반적으로 CPU로드 및 네트워크 대역폭 사용률과 같은 메트릭의 시계열 데이터를 그래프로 표시하는 데 사용됩니다. 일반적으로 SNMP (Simple Network Management Protocol)를 통해 네트워크 스위치 또는 라우터 인터페이스를 폴링하여 네트워크 트래픽을 모니터링합니다.

프런트 엔드는 각각 고유 한 그래프 세트를 가진 여러 사용자를 처리 할 수 ​​있으므로 웹 호스팅 공급자 (특히 전용 서버, 가상 개인 서버 및 배열 공급자)가 고객에 대한 대역폭 통계를 표시하는 데 종종 사용됩니다. RRDtool을 수동으로 구성하지 않고도 특정 설정을 모니터링 할 수 있도록 데이터 수집 자체를 구성하는 데 사용할 수 있습니다. 쉘 스크립트와 실행 파일을 통해 모든 소스를 모니터링하도록 Cacti를 확장 할 수 있습니다.

Zabbix 소개

Wikpedia의 글을 참고 하세요 :

Zabbix는 Alexei Vladishev가 만든 네트워크 및 애플리케이션을위한 엔터프라이즈 오픈 소스 모니터링 소프트웨어입니다. 다양한 네트워크 서비스, 서버 및 기타 네트워크 하드웨어의 상태를 모니터링하고 추적하도록 설계되었습니다.

Zabbix는 MySQL, PostgreSQL, SQLite, Oracle 또는 IBM DB2를 사용하여 데이터를 저장합니다. 백엔드는 C로 작성되고 웹 프론트 엔드는 PHP로 작성됩니다. Zabbix는 여러 모니터링 옵션을 제공합니다


4

여러 가지 솔루션을 사용할 수 있습니다. 그들 중 하나는입니다 monit.

명령 행에서 다음 명령을 실행하십시오.

sudo apt-get install monit

다음 URL 중 하나를 통해 Monit을 설치하고 액세스 할 수 있습니다.

http://localhost:2812
http://IPADDRESS:2812 (local network IP)
http://domain.com:2812 (if you have domain name pointing to your server)

모니터 구성

Monit자동 서버 모니터링에 사용하기 전에 몇 가지 기본 구성을 수행해야합니다. 먼저 Monit다음 명령을 사용하여 기존 기본 구성을 백업하십시오 .

sudo mv /etc/monit/monitrc /etc/monit/monitrc.bak

다음 monitrc명령을 사용하여 새 파일을 만듭니다

sudo /etc/monit/monitrc 

다음 내용을 복사하십시오.

# How often in seconds should monit check your services.
set daemon 120

set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state

# Configure your SMTP out server. 
set mailserver smtp-server.columbus.rr.com port 25,localhost

set eventqueue
    basedir /var/lib/monit/events # set the base directory where events will be stored
    # optionally limit the queue size
    slots 100 

# Use one of the following 2 lines. The second line alerts on every little change and can be annoying.
set alert admin@domain.com but not on { instance, pid, ppid } #does not send alert on pid changes
#set alert admin@domain.com 

set httpd port 2812 and
    #Change username and password
    allow Username:Password
    # To enable SSL for WebUI uncomment the next 2 lines
    #ssl enable
    #pemfile /path/to/unified/certificate.pem
    # To restrict access to localhost only uncomment the following line
    #allow localhost

include /etc/monit/conf.d/*

#으로 시작하는 줄은 구성을 사용자 정의하는 데 도움이되는 주석입니다. 최소한 관리자 이메일, SMTP 서버 및 SMTP 포트가 올바르게 구성되어 있는지 확인하십시오. Monit WebUI 사용자 이름 및 비밀번호 변경도 고려해야합니다. SSL 인증서가있는 경우 HTTPS 액세스에도 사용할 수 있습니다.

Monit이 제대로 작동하도록하려면 다음 명령을 사용하십시오.

Monit구문 오류에 대한 구성 을 테스트하려면 다음을 수행하십시오 .

sudo monit -t

Monit를 시작하려면 :

sudo monit

Monit 상태를 확인하려면 :

sudo monit status

Monit를 사용한 시스템로드 모니터링

적절한 /etc/monit/monitrc파일 이있는 Monit 인스턴스가 작동해야 합니다. 다양한 서비스에 대한 Monit 구성이 /etc/monit/conf.d폴더 에서로드됩니다 . 로 서버로드를 모니터링하려면 다음 명령을 사용하여 구성 파일을 Monit작성하십시오 Monit.

sudo /etc/monit/conf.d/systemload

다음 내용을 복사하여 저장하고 종료하십시오.

# domain.com could be IP, hostname, or localhost
check System domain.com
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if swap usage > 25% then alert
    if cpu usage (user) > 80% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert

이 코드는 Monit위의 조건 중 하나가 충족 될 때 (예 : 평균로드가 >41 분 이상이거나 75% RAM가득 찼을 때) 이메일 알림 을 보내도록합니다 . 위의 규칙을 원하는대로 사용자 정의 할 수 있습니다. 다음은 경고를 Monit일으킨 조건에 대한 설명과 함께 전송 된 이메일 경고의 예 입니다.

Monit 테스트 및 새로 고침

변경 한 후에는 Monit구성 을 테스트해야 합니다.

sudo monit -t

다음과 같은 메시지가 나타납니다. Control File Syntax OK.

그런 Monit다음 다음 명령을 사용하여 이미 실행 중인지 확인하십시오 .

sudo /etc/init.d/monit status

Monit실행중인 경우 Monit다음 명령을 사용하여 구성을 다시로드 하십시오.

sudo /etc/init.d/monit reload

이제 Monit 구성 방법에 따라 웹 브라우저를 시작하고 다음 URL 중 하나를 방문하십시오 (올바른 포트 번호를 사용해야합니다).

http://localhost:2812
http://IPADDRESS:2812 (local network IP)
http://domain.com:2812 (if you have domain name pointing to your server)

시스템 상태,로드, CPU로드, 메모리로드 및 스왑로드가 표시되어야합니다.

Monit을 사용한 스토리지 모니터링

다음으로, Monit적절한 /etc/monit/monitrc파일 이있는 작업 인스턴스가 있어야 합니다. Monit다양한 서비스 구성이 /etc/monit/conf.d폴더 에서로드됩니다 . Monit, create a다음 명령을 사용하여 Monit` 구성 파일을 사용한 드라이브 공간 모니터링의 경우 :

sudo /etc/monit/conf.d/storagespace

다음 내용을 복사하여 저장하고 종료하십시오.

# add each drive you want to monitor below
check filesystem Ubuntu with path /dev/sda1
    if space usage > 90% then alert
check filesystem Home with path /dev/sda3
    if space usage > 90% then alert
check filesystem Media with path /dev/sdb1
    if space usage > 90% then alert

위의 코드는 2 개의 드라이브에서 3 개의 파티션에있는 하드 드라이브 공간을 모니터링합니다. 그들 중 하나가 90 % 이상 가득 차면 경고를 받게됩니다.

또한 특정 서비스를 모니터링 할 수 있습니다.

Monit으로 Apache 서버 모니터링

Apache 서버 모니터링 설정 Monit은 Monit’s사전 구성된 구성 템플리트를 사용합니다. 기존 템플릿 /etc/monit/monitrc.d을 /etc/monit/conf.d폴더로 복사 하기 만하면됩니다.

sudo cp /etc/monit/monitrc.d/apache2 /etc/monit/conf.d/

복사하는 대신 심볼릭 링크를 만들 수도 있습니다. 아파치 웹 서버 프로세스가 생성 apache2.pid됩니다. 위의 코드 모니터 apache2.pid파일이 존재하지 않으면 MonitApache를 다시 시작하려고합니다. 다시 시작하면 이메일 알림이 트리거됩니다. 재시작이 여러 번 실패하면 Monit은 Apache 서버 모니터링을 중지합니다.

...


2

또한 한 번 봐 가질 수 강치 당신은 또한, 당신은 또한뿐만 아니라 그들을 위해 자신의 통계 및 구성 알림을 추가 할 수 있습니다 CPU 사용량, 메모리 등의 경고를 사용자 설정할 수 있습니다. 또한 특정 간격으로 명령이 실행되도록 예약하고 타임 라인 디스플레이에서 해당 출력을 볼 수 있습니다. 자세한 내용은 여기를 참조 하십시오 .


1

위의 도구는 모두 전자 메일 생성에 탁월합니다. 하루 종일 앉아서 대시 보드를보고 싶지 않기 때문에 매일 모니터링 할 수있는 이메일을 선호합니다. 문제는 당신이 전자 우편으로 넘쳐지고 무언가 잘못되었을 때에 만 관심이 있다는 것입니다. 또한 어떤 이유로 전자 메일이 배달되지 않았으며 모든 것이 제대로 작동한다고 생각하는지 어떻게 알 수 있습니까?

오랜 시간 동안 검색 한 결과 보고서 전자 메일을 읽고 조치를 취해야 할 때 경고 할 수있는 2 개의 제품을 발견했습니다.

  1. PRTG 특정 단어가 포함 된 전자 메일을 검색하도록 메일 필터를 설정할 수 있습니다. 조금 복잡했습니다.
  2. wwww.smtpviewer.com이라는 온라인 도구는 실제로 작업을 수행하며 시간 초과 설정이있어 모니터링되는 장치의 전자 메일이 정해진 시간 동안 도착하지 않았을 때 경고합니다.

많은 메일 클라이언트에는 이미 메일을 필터링, 정렬, 태그 지정하는 기능이 있습니다. 따라서 실제로 외부 솔루션이 필요하지 않습니다. 예를 들어, 썬더 버드의 필터를 사용하여 몇 년 동안 이것을 해왔습니다. 메일 서버가 지원하는 경우, Sieve 스크립트 를 사용 하여 서버에서 직접 메일을 필터링, 정렬, 태그 등을 지정할 수 있습니다 .
— Henning Kockerbeck

0

우리 학교에서 선생님은 우리에게 서버 모니터링, 응용 프로그램 및 네트워크까지 포함하는 모니터링 솔루션 인 Pandora FMS 교육을 제공했습니다!

나는 당시까지 Zabbix와 Nagios를 알고 있었지만 이전에는이 ​​솔루션에 대해 들어 본 적이 없었지만 이제는 추가 기능으로 인해 프로젝트를 기반으로하고 있습니다. 서버 모니터링 부분은 매우 성숙하여 제 생각에 성능 통계를 최대한 빨리 구성하고 얻는 것이 더 간단합니다. http://pandorafms.com/monitoring-solutions/server-monitoring/


-1 상용 패키지 ...
— Fabby

0

그것이 바로 당신이 원하는 것을 정확하게하지는 않지만, 나는 logwatch매우 유용하지만 간단한 도구 라는 것을 알았습니다 .

/var/log디렉토리 에서 발생한 모든 이벤트 와 현재 디스크 공간과 같은 다른 중요한 시스템 정보를 매일 요약 합니다. 누락 된 것은 매우 간단하게 추가 할 수 있습니다 (예 : 특정 데몬이 여전히 실행 중인지 확인하는 스크립트를 추가했습니다).


0

내가 이해 한 바에 따르면 귀하의 필요는 매우 기본입니다. 특정 키워드에 대한 전자 메일 내용을 텍스트로 검색 한 다음 이러한 상황이 발생하면 알림을 받으려고합니다. 따라서 예를 들어 이메일에 실패라는 단어가 포함 된 경우에만 성공을 알리는 것이 아니라 알림을 받으려고합니다. 또한 John Grobbelaar가 언급 한대로 www.smtpviewer.com을 사용하여 알림을받습니다. 온라인 도구를 사용하면 이메일이 도착하지 않을 때 항상 알림을받을 수 있다는 장점이 있습니다. 내가 가지고있는 모든 메일 모니터 도구에서 가장 간단하고이 작업 만 수행합니다.


이것은 질문에 대답하지 않는 것 같습니다. 질문에 답변하려면이 문구를 바꾸거나이 답변을 삭제하거나 의견으로 이동하십시오. 감사합니다. Ask Ubuntu에 오신 것을 환영합니다!
— zwork
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.