Nagios 튜토리얼 – Nagios를 통한 지속적인 모니터링



Nagios 튜토리얼 : Nagios는 전체 IT 인프라를 모니터링하여 시스템, 애플리케이션, 서비스 및 비즈니스 프로세스가 제대로 작동하는지 확인합니다.

Nagios 튜토리얼 :

Nagios에 대한 게시물은 거의 없으며 인터넷을 통해 사용할 수있는 관련 정보가 많지 않다고 생각합니다. 따라서이 게시물이이 모니터링 도구에 대한 명확한 설명을 제공 할 것이라고 생각합니다. Nagios는 전체 IT 인프라를 모니터링하여 시스템, 애플리케이션, 서비스 및 비즈니스 프로세스가 제대로 작동하는지 확인합니다.DevOps 라이프 사이클의 필수 요소이며 .이 Nagios 튜토리얼에서는 아래 주제를 다룰 것입니다.

  1. 지속적인 모니터링이 필요한 이유
  2. 연속 모니터링이란?
  3. Nagios는 무엇입니까?
  4. Nagios를 설치하는 방법?
  5. NRPE (Nagios Remote Plugin Executor)를 사용하여 원격 서버를 추가하는 방법.

모든 것이 이유 때문에 존재하기 때문에 지속적인 모니터링이 필요한 이유를 이해하면서이 Nagios 자습서를 시작하겠습니다. 그래서 그 이유를 찾아 보도록합시다.





지속적인 모니터링이 필요한 이유

지속적인 모니터링 도구는 비즈니스 생산성에 부정적인 영향을 미치기 전에 모든 시스템 오류 (메모리 부족, 연결할 수없는 서버 등)를 해결합니다.

모니터링 도구를 사용하는 중요한 이유는 다음과 같습니다.



  • 네트워크 또는 서버 문제를 감지합니다.
  • 문제의 근본 원인을 결정합니다.
  • 서비스의 보안 및 가용성을 유지합니다.
  • 서버 성능 문제를 모니터링하고 해결합니다.
  • 오래된 시스템으로 인해 장애가 발생하기 전에 인프라 업그레이드를 계획 할 수 있습니다.
  • 문제의 첫 징후에서 문제에 대응할 수 있습니다.
  • 문제가 감지되면 자동으로 수정하는 데 사용할 수 있습니다.
  • IT 인프라 중단이 조직의 수익에 미치는 영향을 최소화합니다.
  • 전체 인프라 및 비즈니스 프로세스를 모니터링 할 수 있습니다.

네, 멋진 일을 많이하는데 그게 뭔데요?

연속 모니터링이란?

먼저 지속적 모니터링이 DevOps 수명주기에서 어디에 있는지 알려 드리겠습니다. 아래 다이어그램을 고려하세요.

DevOps Life-Cyce-Nagios 튜토리얼-Edureka



다이어그램을 보면 이것이 DevOps 라이프 사이클의 마지막 단계라고 생각할 수 있지만 그렇지 않습니다. DevOps 라이프 사이클에는 끝이 없으며 이것이 무한대 기호의 이유입니다. 애플리케이션이 프로덕션 서버에 배포되면 지속적인 모니터링이 필요합니다.

지속적인 모니터링은 인프라에서 발생하는 공격을 탐지,보고, 대응, 억제 및 완화하는 조직의 능력에 관한 것입니다.

지속적인 모니터링은 실제로 새로운 것이 아니며 한동안 사용되었습니다. 수년 동안 우리의 보안 전문가들은 시스템 로그, 방화벽 로그, IDS 로그, IPS 로그 등에서 정적 분석을 수행하고 있습니다. 그러나 적절한 분석과 대응을 제공하지 못했습니다. 오늘날의 지속적인 모니터링 접근 방식을 사용하면 위에서 논의한 모든 이벤트를 집계하고,이를 공동으로 연결하고, 비교하고, 조직의 위험 상태를 추정 할 수 있습니다.

이 모든 조각을 가져 와서 그들 사이의 상호 연결을 보장한다면. 이것이 지속적인 모니터링의 핵심입니다.

이것을 유스 케이스로 설명하겠습니다.아래 다이어그램을 고려하십시오.

이제 위의 다이어그램을 설명하겠습니다.

  1. 방화벽, IDS, End Point Protection 등 다양한 보안 도구가 있으며 '보안 정보 및 이벤트 관리 시스템'과 연결되어 있습니다.
  2. 지속적인 모니터링을 달성하기 위해서는 모든 부분이 서로 대화해야합니다. 설명해 드리겠습니다.
  3. 따라서 보안 도구와 일련의 '엔드 포인트'가 있으며 여기에는 클라이언트와 서버, 라우터, 스위치, 모바일 장치 등이 포함될 수 있습니다.
  4. 이 두 그룹은 공통 언어를 통해보다 자동화 된 방식으로 SIEM (Security Information and Event Management System)과 통신 할 수 있습니다.
  5. 이 SIEM에는 두 가지 중요한 구성 요소가 있으며 첫 번째는 데이터웨어 하우스입니다. 이제이 데이터웨어 하우스에 '분석'과 '보안 인텔리전스'를 연결하겠습니다.
  6. 보안 인텔리전스 (SI)는 정보를 수집하고 분석하도록 설계된 프로세스, 정책 및 도구뿐만 아니라 외부 및 내부 위협으로부터 조직을 보호하는 데 관련된 정보입니다.
  7. 이 SIEM은 기본적으로 대시 보드를 제공하는 '거버넌스 위험 및 규정 준수 시스템'과도 연결됩니다.
  8. 이 '거버넌스 리스크 및 컴플라이언스 시스템'에 리스크 데이터베이스를 첨부합니다. 이것은 우리에게 '실행 가능한 인텔리전스'를 제공합니다.
  9. 실행 가능한 정보는 행동 할 수있는 정보에 불과하며 할까요 촬영됩니다.

그래서 여기서 우리는 지속적으로 이벤트를 모니터링하고 우리가 경험하는 위험 수준을 결정합니다. 이를 통해 SIEM의 이벤트를 연관시킬 수 있습니다. '분석 엔진'에서 네트워크 동작 및 이상 탐지를 수행 할 수 있습니다. 이것이 지속적인 모니터링의 모든 것입니다.

조직의 통합보안 도구,집계,정규화 및보안 도구에 의해 생성 된 데이터의 상관 관계. 조직의 위험 목표 및 위협 지식을 기반으로 해당 데이터를 분석하고 식별 된 위험에 대한 거의 실시간 대응.

‘측정 할 수 없으면 관리 할 수 ​​없습니다.’ 내가 무슨 말을하는지 아시 길 바랍니다.

다음은 Nagios 튜토리얼에서 가장 유명한 모니터링 도구 인 'Nagios'중 하나를 소개합니다.

Nagios는 무엇입니까?

Nagios는 DevOps 문화에서 시스템, 애플리케이션, 서비스 및 비즈니스 프로세스 등을 지속적으로 모니터링하는 데 사용됩니다. 장애가 발생할 경우 Nagios는 기술 직원에게 문제를 경고하여 중단이 비즈니스 프로세스, 최종 사용자 또는 고객에 영향을 미치기 전에 교정 프로세스를 시작할 수 있습니다. Nagios를 사용하면 보이지 않는 인프라 중단이 조직의 수익에 영향을 미치는 이유를 설명 할 필요가 없습니다.

Nagios가 어떻게 작동하는지 설명하겠습니다.아래 다이어그램을 고려하십시오.

Nagios는 일반적으로 데몬 또는 서비스로 서버에서 실행됩니다.

동일한 서버에있는 플러그인을 주기적으로 실행하고 네트워크 또는 인터넷의 호스트 나 서버에 연결합니다. 웹 인터페이스를 사용하여 상태 정보를 볼 수 있습니다. 또한 어떤 일이 발생하면 이메일 또는 SMS 알림을받을 수 있습니다.
Nagios 데몬은 특정 순간에 특정 스크립트를 실행하는 스케줄러처럼 작동합니다. 이러한 스크립트의 결과를 저장하고 이러한 결과가 변경되면 다른 스크립트를 실행합니다.

플러그인 : 이들상태 또는 호스트 또는 서비스를 확인하기 위해 명령 줄에서 실행할 수있는 컴파일 된 실행 파일 또는 스크립트 (Perl 스크립트, 쉘 스크립트 등)입니다. Nagios는 플러그인의 결과를 사용하여 네트워크에있는 호스트 및 서비스의 현재 상태를 확인합니다.

이제 아키텍처에 대해 논의하겠습니다.

Nagios 아키텍처 :

  • Nagios는 서버 / 에이전트 아키텍처를 기반으로합니다.
  • 일반적으로 네트워크에서 Nagios 서버는 호스트에서 실행되고 플러그인은 모니터링해야하는 로컬 및 모든 원격 호스트와 상호 작용합니다.
  • 이러한 플러그인은 GUI에 정보를 표시하는 스케줄러에 정보를 보냅니다.

NRPE (Nagios Remote Plugin Executor)도 설명해야합니다.

NRPE 애드온은 원격 Linux / Unix 시스템에서 Nagios 플러그인을 실행할 수 있도록 설계되었습니다. 이렇게하는 주된 이유는 Nagios가 원격 컴퓨터에서 '로컬'리소스 (예 : CPU로드, 메모리 사용량 등)를 모니터링 할 수 있도록하기 위함입니다. 이러한 공용 리소스는 일반적으로 외부 시스템에 노출되지 않으므로 NRPE와 같은 에이전트를 원격 Linux / Unix 시스템에 설치해야합니다.

아래 다이어그램을 고려하십시오.

  • check_nrpe 플러그인은 로컬 모니터링 시스템에 있습니다.
  • NRPE 데몬은 원격 Linux / Unix 시스템에서 실행됩니다.
  • 위의 다이어그램과 같이 모니터링 호스트와 원격 호스트간에 SSL (Secure Socket Layer) 연결이 있습니다.

이제이 Nagios 튜토리얼에서는 실습 .

Nagios Core 설치부터 시작하겠습니다.

Nagios Core 설치 :

Nagios를 설치하는 전체 프로세스는 다음 4 단계로 요약 할 수 있습니다.

  1. 모니터링 서버에 필수 패키지 설치
  2. Nagios Core, Nagios 플러그인 및 NRPE (Nagios 원격 플러그인 실행기) 설치
  3. 웹 인터페이스에 액세스하기위한 Nagios 암호 설정
  4. 클라이언트에 NRPE 설치

단계 – 1 : 모니터링 서버에 필수 패키지 설치 :

웹 사이트를 방문하십시오 : http://dl.fedoraproject.org/pub/epel/6/

i386을 클릭하면 페이지로 리디렉션됩니다.

CentOS 6을 사용하고 있으므로 오른쪽 클릭하여‘ epel-release-6-8.noarch.rpm ', 위의 스크린 샷에 표시된대로.

터미널을 열고 사용 rpm -Uvh 명령하고 링크를 붙여 넣습니다.

리포지토리를 하나 더 다운로드해야합니다. 웹 사이트‘ http://rpms.famillecollet.com/enterprise/ '

마우스 오른쪽 버튼을 클릭하고‘ 레미 릴리스 -6.rpm '

다시 터미널을 열고 사용 rpm -Uvh 명령하고 링크를 붙여 넣습니다.

좋아, 우리는 전제 조건을 완료했습니다. 다음 단계로 넘어가겠습니다.

단계 – 2 : Nagios Core, Nagios 플러그인 및 NRPE (Nagios 원격 플러그인 실행기) 설치 :

터미널에서 아래 명령을 실행하십시오.

yum -y 설치 nagios nagios-plugins-all nagios-plugins-nrpe nrpe httpd php

그러면 Nagios, Nagios 플러그인, NRPE, NRPE, Apache 및 PHP 용 플러그인이 설치됩니다.

현재 웹 서버 상태를 모니터링하려면 Apache 웹 서버가 필요합니다.

Php는 사이트 날짜의 동적 콘텐츠를 처리하는 데 사용됩니다.

다음으로 Apache 및 Nagios 서비스를 활성화해야합니다.

chkconfig httpd on && chkconfig nagios on

다음 단계는 Nagios와 Apache를 시작하는 것입니다.

서비스 httpd 시작 && 서비스 nagios 시작

이제 최소 1GB의 스왑 메모리를 활성화하겠습니다. dd 명령을 사용하여 스왑 파일 자체를 만들 차례입니다.

dd if = / dev / zero of = / swap bs = 1024 count = 2097152

스왑은 기본적으로 RAM에서 자주 액세스하지 않는 일부 정보를 비우고 하드 드라이브의 특정 파티션으로 이동하는 데 사용됩니다.

이제 스왑 파티션을 만들었으므로 다음 명령을 사용하십시오. mkswap 스왑 파티션을 설정합니다. 이것은 리눅스 스왑 영역을 생성하여 스왑 파일을 준비 할 것입니다.

mkswap / swap

파일을 세계에서 읽을 수 없도록하려면 스왑 파일에 올바른 권한을 설정해야합니다.

다진 뿌리. / swap chmod 0600 / swap

오류가 표시되지 않으면 스왑 공간을 사용할 준비가 된 것입니다. 즉시 활성화하려면 다음을 입력하십시오.

스왑 온 / 스왑

이 파일은 머신이 재부팅 될 때까지 가상 사설 서버에서 유지됩니다. fstab 파일에 추가하여 스왑이 영구적인지 확인할 수 있습니다.

echo / swap 스왑 스왑 기본값 0 0 >> / etc / fstab

운영 체제 커널은 다음과 같은 구성 매개 변수를 통해 스왑에 의존하는 빈도를 조정할 수 있습니다. 교환 .

현재 swappiness 설정을 찾으려면 다음을 입력하십시오.

고양이 / proc / sys / vm / swappiness

Swapiness는 0에서 100까지의 값이 될 수 있습니다. Swappiness가 100에 가까움은 운영 체제가 자주 그리고 일반적으로 너무 빨리 교체됨을 의미합니다. 스왑은 추가 리소스를 제공하지만 RAM은 스왑 공간보다 훨씬 빠릅니다. RAM에서 스왑으로 무언가를 이동할 때마다 속도가 느려집니다.

swappiness 값이 0이면 운영이 절대적으로 필요할 때만 스왑에 의존 함을 의미합니다. sysctl 명령으로 swappiness를 조정할 수 있습니다. VPS가 부팅 할 때마다이 설정을 자동으로 적용하도록하려면 설정을 /etc/sysctl.conf에 추가 할 수 있습니다.파일:

echo vm.swappiness = 0 >> /etc/sysctl.conf && sysctl -p

마지막으로 두 번째 단계가 완료되었습니다.

계속해서 웹 인터페이스에 액세스하기 위해 Nagios 암호를 설정하겠습니다.

단계 – 3 : 웹 인터페이스에 액세스하기위한 Nagios 암호 설정 :

웹 인터페이스에 액세스하려면 암호를 설정하고 아래 명령을 사용하십시오.

htpasswd -c / etc / nagios / passwd nagiosadmin

암호를 입력하고 다시 입력하여 확인합니다.

이제 브라우저를 엽니 다. 여기에 공용 IP 또는 호스트 이름 / nagios를 입력하십시오. 아래 예를 고려하십시오.

여기에 사용자 이름과 암호를 입력하십시오. 기본적으로 사용자 이름은 nagiosadmin, 암호는 이전 단계에서 설정 한 것입니다. 마지막으로 확인을 누릅니다.

그런 다음 Nagios Core 대시 보드로 이동합니다.

호스트를 클릭하면 현재 Nagios Core가 모니터링하고있는 모든 호스트를 볼 수 있습니다.

하나의 호스트, 즉 localhost 만 모니터링하고 있음을 알 수 있습니다. Nagios Core가 원격 호스트를 모니터링하도록하려면 해당 원격 호스트에 NRPE를 설치해야합니다. 그러면 다음 단계 인 Nagios가 모니터링 할 클라이언트 / 머신에 NRPE를 설치합니다.

단계 – 4 : 클라이언트에 NRPE 설치 :

이제 클라이언트 컴퓨터에 NRPE를 설치하겠습니다.

먼저 Nagios 서버 시스템에서했던 것처럼 필요한 패키지를 설치해야합니다. 따라서 동일한 명령을 실행하고 아래 스크린 샷을 고려하십시오.

이제 클라이언트에 Nagios, Nagios 플러그인 및 NRPE를 설치합니다.

yum -y nagios nagios-plugins-all nrpe 설치

설치되면 NRPE 서비스를 활성화합니다.

chkconfig nrpe 켜기


다음 단계는 nrpe.cfg 파일. 나는 우리 다른 편집기도 선택할 수 있습니다.

허용 된 호스트 행에 모니터링 서버의 IP 주소를 추가해야합니다. 아래 스크린 샷을 고려하십시오.

여기서 내 모니터링 서버의 IP 주소는 192.168.56.101입니다.

이제 모니터링 서버와 클라이언트 간의 연결을 허용하는 방화벽 규칙을 설정해야합니다.

iptables -N NRPE

-옵션은 체인 끝에 새 규칙을 추가하는 데 사용됩니다. 체인의 다른 위치에 배치하려면 새 규칙의 위치를 ​​지정할 수있는 -I 옵션을 사용할 수 있습니다.

아래 명령은 포트 5666에서 tcp 요청을 수락합니다..

iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j NRPE iptables -I NRPE -s 192.168.56.101 -j ACCEPT iptables -A NRPE -s 0/0 -j DROP

이것은 기본적으로 특정 호스트 (제 경우에는 192.168.56.101)에서 패킷을 수락하도록 iptables를 구성하고 다른 호스트의 패킷을 삭제합니다.

이제 다음 구성을 저장합니다.

/etc/init.d/iptables 저장

지금 NRPE 서비스를 시작하십시오.

서비스 nrpe 시작

이제 모니터링 서버로 돌아갑니다.

여기서 nagios.cfg 파일을 편집해야합니다.

vi /etc/nagios/nagios.cfg

줄의 주석 처리를 제거하십시오. cfg_dir = etc / nagios / 서버

해당 용도로 '서버'디렉토리 만들기 mkdir 명령.

mkdir / etc / nagios / servers /

작업 디렉토리를 서버로 변경하십시오.

cd / etc / nagios / servers

.cfg 확장자를 사용하여이 디렉토리에 새 파일을 만들고 편집합니다. 이름을 client.cfg로 지정하고 우리 편집자.

vi /etc/nagios/servers/client.cfg

여기에 아래 줄을 추가하십시오.

대학원 졸업장 대 석사

여기에는 기본적으로 모니터링하려는 서비스 종류가 포함됩니다. Nagios가 모니터링 할 머신의 호스트 이름과 IP 주소를 제공합니다.

마찬가지로 모니터링 할 서비스 수를 추가 할 수 있습니다. 동일한 구성을 사용하여 'n'수의 클라이언트를 추가 할 수 있습니다.

마지막 단계, 폴더 권한을 올바르게 설정하고 Nagios를 다시 시작하십시오.

chown -R nagios. / etc / nagios /

이제 Nagios를 다시 시작하십시오.

서비스 nagios 다시 시작

브라우저를 열고 다시 호스트 이름 또는 공용 ip / nagios /. 제 경우에는 localhost / nagios /입니다.

호스트를 클릭하면 Nagios가 현재 모니터링하고있는 모든 머신을 볼 수 있습니다..

여기에서 현재 클라이언트 컴퓨터 (Nagios가 모니터링 할 컴퓨터의 호스트 이름)를 모니터링하고 있음을 알 수 있습니다. 기본적으로 NRPE를 사용하여 원격 호스트를 추가했습니다.

이 Nagios 튜토리얼을 즐겁게 읽으 셨기를 바랍니다. 곧 Nagios에 대한 더 많은 블로그를 만들 것입니다.

이 Nagios 튜토리얼이 관련이 있다고 생각되면 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 Edureka DevOps 인증 교육 과정은 학습자가 SDLC의 여러 단계를 자동화하기위한 Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack 및 GIT와 같은 다양한 DevOps 프로세스 및 도구에 대한 전문 지식을 습득하는 데 도움이됩니다.

질문이 있으십니까? 의견란에 언급 해 주시면 다시 연락 드리겠습니다.