웹사이트 검색

Debian 11에 Sensu 모니터링 솔루션을 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. Sensu 저장소 추가
  3. Sensu 백엔드 설치
  4. Sensuctl 명령줄 설치
  5. Sensu 에이전트 설치
  6. 확인으로 서버 리소스 모니터링\n
  7. 결론

Sensu는 컨테이너 및 비컨테이너 모니터링과 다중 클라우드 인프라용으로 설계된 오픈 소스 인프라 및 애플리케이션 모니터링 시스템입니다. Sensu는 기술 및 서버 인프라를 위한 확장 가능하고 안전한 통합 모니터링 솔루션입니다. 서버, 애플리케이션 상태 및 서비스를 모니터링하고 타사 통합을 통해 여러 대상에 경고 알림을 보내는 데 사용할 수 있습니다.

이 튜토리얼에서는 데비안 11 서버에 Sensu 모니터링 소프트웨어를 설치하는 방법을 배웁니다. 또한 Sensu 관리를 위해 Sensu CLI를 설정하는 방법도 배웁니다. 마지막으로 Sensu Agent를 통해 Sensu로 서버 모니터링을 설정하는 방법을 배웁니다.

전제 조건

이 Sensu 배포에는 다음 요구 사항이 필요합니다.

  • 4GB RAM과 2개의 CPU가 있는 Debian 11 서버 1개. 이 요구 사항은 인프라 환경에 따라 크게 달라집니다.\n
  • sudo/administrator 권한이 있는 루트가 아닌 사용자.\n
  • Linux 머신이 모니터링 대상으로 사용됩니다.

Sensu 저장소 추가

Sensu 설치를 시작하려면 Sensu 백엔드와 대상 서버를 포함한 모든 시스템에 Sensu 패키지 리포지토리를 추가해야 합니다.

Sensu 리포지토리는 packagecloud.io에서 사용할 수 있으며 수동으로 또는 packagecloud.io에서 제공하는 bash 스크립트를 통해 시스템에 추가할 수 있습니다.

Sensu 리포지토리를 추가하기 전에 아래의 apt 명령을 실행하여 기본 패키지 종속성을 설치합니다. 설치를 확인하라는 메시지가 표시되면 Y와 Enter를 누르십시오.

sudo apt install debian-archive-keyring curl gnupg apt-transport-https

이제 다음 명령을 실행하여 Sensu 리포지토리를 추가합니다. 이 bash 스크립트는 Sensu 저장소와 GPG 키를 데비안 서버에 자동으로 추가합니다.

curl -s https://packagecloud.io/install/repositories/sensu/stable/script.deb.sh | sudo bash

Sensu 리포지토리를 수동으로 추가하려면 다음 단계를 따르십시오.

Sensu 리포지토리의 GPG 키를 저장하기 위한 키링 디렉터리를 만듭니다.

mkdir -p /etc/apt/keyrings/
curl -fsSL https://packagecloud.io/sensu/stable/gpgkey | gpg --dearmor > /etc/apt/keyrings/sensu_stable-archive-keyring.gpg

다음 명령을 사용하여 Sensu 리포지토리를 추가합니다. 이 리포지토리는 Debian 11 Bullseye 및 안정적인 최신 버전의 Sensu용입니다.

cat <<EOF | sudo tee /etc/apt/sources.list.d/sensu_stable.list
deb [signed-by=/etc/apt/keyrings/sensu_stable-archive-keyring.gpg] https://packagecloud.io/sensu/stable/debian bullseye main
deb-src [signed-by=/etc/apt/keyrings/sensu_stable-archive-keyring.gpg] https://packagecloud.io/sensu/stable/debian bullseye main
EOF

이제 다음 apt 명령을 사용하여 Debian 패키지 인덱스를 업데이트하고 새로 고칠 수 있습니다.

sudo apt update

Sensu 백엔드 설치

Sensu 모니터링 솔루션의 핵심은 관리자가 "sensuctl" 명령줄을 통해 사용할 수 있는 HTTP API를 제공하는 "Sensu 백엔드"입니다. WebSocket API는 모니터링을 위해 "Sensu Agent"에서 사용되며 Sensu 관리를 위한 웹 UI 대시보드도 제공합니다.

또한 Sensu는 특히 대규모 Sensu 클러스터 배포에서 데이터 저장을 위해 "etcd"를 사용했습니다.

Sensu Backend를 설치하려면 아래의 apt 명령을 실행하십시오. 설치가 자동으로 시작됩니다.

sudo apt install sensu-go-backend

설치가 완료되면 Sensu 백엔드 구성 샘플을 "/etc/sensu/backend.yml"에 다운로드합니다. 그런 다음 다음 명령을 사용하여 "/etc/sensu/backend.yml" 파일을 편집합니다.

sudo curl -L https://docs.sensu.io/sensu-go/latest/files/backend.yml -o /etc/sensu/backend.yml
sudo nano /etc/sensu/backend.yml

다음 구성의 주석을 제거하십시오.

cache-dir: "/var/cache/sensu/sensu-backend"
config-file: "/etc/sensu/backend.yml"

log-level: "debug"
state-dir: "/var/lib/sensu/sensu-backend"

완료되면 파일을 저장하고 닫습니다.

그런 다음 다음 systemctl 명령을 실행하여 Sensu Backend 서비스를 시작하고 활성화합니다. 그리고 Sensu Backend 서비스는 시스템 시작 시 자동으로 실행됩니다.

sudo systemctl start sensu-backend
sudo systemctl enable sensu-backend

아래 명령을 사용하여 Sensu 백엔드 서비스를 확인하고 확인합니다. Sensu Backend 서비스가 현재 실행 중이고 활성화되어 있어야 합니다.

sudo systemctl status sensu-backend

Sensu 백엔드가 실행되면 이제 Sensu 백엔드 설치 및 구성을 초기화합니다. Sensu Backend 패키지에서 제공하는 "sensu-backend init" 명령줄을 사용하여 이 작업을 수행할 수 있습니다.

또한 Sensu 백엔드 초기화 중에 Sensu 모니터링 솔루션에 대한 관리 사용자 및 암호를 설정합니다.

다음 명령을 실행하여 Sensu 관리 사용자 및 암호에 대한 새 시스템 환경 변수를 만듭니다. 이 예에서는 비밀번호가 "SensuRocks"인 새 Sensu 관리자 "adminsensu"를 만듭니다.

export SENSU_BACKEND_CLUSTER_ADMIN_USERNAME=adminsensu
export SENSU_BACKEND_CLUSTER_ADMIN_PASSWORD=SensuRocks

이제 아래 명령을 사용하여 Sensu 백엔드 초기화를 시작합니다. 초기화 프로세스가 표시되고 Sensu가 "etcd" 데이터 저장소에 데이터를 저장합니다.

sensu-backend init

Sensu 백엔드 설치를 확인하고 확인하려면 기본 포트 "8080"에서 실행되는 Sensu HTTP API에 curl 명령을 통해 Sensu 상태 확인을 수행합니다.

아래 curl 명령을 실행하여 Sensu 백엔드 설치 상태를 확인하십시오. "health: OK"와 같은 출력 메시지가 터미널 화면에 표시되어야 합니다.

curl http://127.0.0.1:8080/health

TCP 포트 "3000"을 통해 Sensu 웹 UI 대시보드를 방문할 수도 있습니다. 웹 브라우저를 열고 포트 3000(예: http://192.168.5.100:3000)을 따라 서버 IP 주소를 방문합니다. 그러면 Sensu 로그인 페이지가 표시됩니다.

비밀번호 "SensuRocks"와 함께 관리 사용자 "adminsensu"를 입력합니다. 그런 다음 "SIGN-IN"을 클릭하여 Sensu 웹 UI 대시보드에 로그인합니다.

이제 Sensu 웹 관리 대시보드가 표시됩니다.

Sensuctl 명령줄 설치

Sensu에서 관리자는 "sensuctl"을 사용하여 Sensu 웹 UI 관리 대시보드 및 명령줄 터미널을 통해 Sensu 모니터링 솔루션을 관리할 수 있습니다.

"sensuctl"은 Sensu 리소스를 관리하기 위한 명령줄 도구입니다. 리소스, 이벤트 및 엔터티를 생성, 읽기 및 삭제할 수 있는 Sensu 백엔드와 통신하기 위해 HTTP API를 사용했습니다.

"sensuctl"은 Linux, Windows 및 macOS와 같은 여러 운영 체제에 설치할 수 있습니다. "sensuctl" 기능은 Sensu 웹 UI 대시보드와 유사하며 로컬 워크스테이션 또는 인프라의 보안 "bastion" 서버에 설치할 수 있습니다.

Debian/Ubuntu 기반 시스템의 경우 아래의 apt 명령을 실행하여 "sensuctl" 명령줄 도구를 설치합니다. 설치가 자동으로 시작됩니다.

sudo apt install sensu-go-cli

설치가 완료되면 다음 "sensuctl" 명령을 실행하여 Sensu Backend 서버의 API 구성 및 연결을 시작합니다.

sensuctl configure

다음 구성을 묻는 메시지가 표시됩니다.

  • 인증 방법으로 "사용자 이름/비밀번호"를 선택합니다.\n
  • 서버의 Sensu 백엔드 API URL을 입력합니다. 이 예에서는 동일한 서버에 "sensuctl"을 설정하므로 호스트는 localhost 또는 "127.0.0.1"이 됩니다. 그리고 Sensu HTTP API의 기본 포트는 \8080\ - http://127.0.0.1:8080입니다.
  • 네임스페이스 구성의 경우 "default"를 선택합니다.\n
  • 출력 형식의 경우 "tabular" 스타일을 선택하거나 "yaml" 출력 형식을 사용할 수 있습니다.\n
  • 마지막으로 Sensu 백엔드에 대한 관리 사용자 및 암호를 입력합니다.\n

이제 "sensuctl" 기본 구성을 완료하고 Sensu Backend API 서버에 연결했습니다.

아래의 "sensuctl" 명령을 실행하여 구성을 확인하십시오. "sensuctl"의 자세한 API 구성이 표시되어야 합니다.

sensuctl config view

또한 "sensuctl"은 셸에 대한 자동 완성 기능도 제공합니다. bash를 사용하는 경우 "bash-completion" 패키지를 설치하고 일부 구성을 "~/.bashrc" 구성 파일에 추가해야 합니다.

다음 apt 명령을 실행하여 "bash-completion" 패키지를 설치하십시오.

sudo apt install bash-completion

이제 다음 명령을 사용하여 "~/.bashrc" 구성을 제거하십시오.

sudo nano ~/.bashrc

파일에 다음 구성을 추가합니다.

if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi

source <(sensuctl completion bash)

완료되면 파일을 저장하고 닫습니다.

다음으로 아래 명령을 사용하여 셸의 현재 세션을 다시 로드합니다.

source ~/.bashrc

마지막으로 "sensuctl" 명령을 입력하고 TAB 버튼을 눌러 사용 가능한 모든 명령 옵션을 가져옵니다. "sensuctl" 명령의 사용 가능한 모든 옵션을 가져와야 합니다.

sensuctl TAB

Sensu 에이전트 설치

Sensu를 사용하여 호스트 또는 시스템을 모니터링하려면 모든 호스트에 Sensu 에이전트 패키지를 설치해야 합니다. Sensu Agent는 대부분의 Linux 배포판 및 Windows에서 사용할 수 있습니다.

Linux 시스템에 Sensu Agent를 설치하려면 Sensu 리포지토리가 추가되었는지 확인하십시오.

Debian/Ubuntu 기반 시스템의 경우 다음 apt 명령을 실행하여 Sensu Agent 패키지를 설치합니다. 이제 설치가 시작됩니다.

sudo apt install sensu-go-agent

설치가 완료되면 Sensu Agent 구성을 "/etc/sensu/agent.yml"에 다운로드합니다. 그런 다음 아래 명령을 사용하여 구성 "/etc/sensu/agent.yml"을 편집합니다.

sudo curl -L https://docs.sensu.io/sensu-go/latest/files/agent.yml -o /etc/sensu/agent.yml
sudo nano /etc/sensu/agent.yml

다음 구성의 주석을 제거하십시오. 여기서 "name"을 시스템 호스트 이름으로 변경하고 "backend-url"을 Sensu 백엔드 서버의 IP 주소로 변경해야 합니다.

이 예에서는 호스트 이름이 "linux-host1"이고 "default" 네임스페이스에서 사용할 수 있는 Debian 머신을 추가합니다. 여기서 Sensu 백엔드 서버는 \192.168.5.100\이며 기본 WebSocket API 포트는 Sensu 백엔드 \8081\입니다.

name: "linux-host1"
namespace: "default"
...
backend-url:
  - "ws://192.168.5.100:8081"
cache-dir: "/var/cache/sensu/sensu-agent"
config-file: "/etc/sensu/agent.yml"

완료되면 파일을 저장하고 닫습니다.

그런 다음 다음 명령을 실행하여 Sensu Agent 서비스를 시작하고 시스템 부팅 시 자동으로 실행되도록 합니다.

sudo systemctl start sensu-agent
sudo systemctl enable sensu-agent

이제 다음 명령을 실행하여 Sensu Agent 서비스를 확인하고 확인합니다. Sensu Agent가 실행 중이고 활성화되어 있어야 합니다.

sudo systemctl status sensu-agent

그런 다음 웹 브라우저로 돌아가서 "default" 네임스페이스를 선택합니다. 그리고 새 엔터티 호스트 "linux-host1"이 사용 가능한지 확인해야 합니다.

아래와 같이 "sensuctl" 명령을 사용하여 터미널 명령줄에서도 확인할 수 있습니다. Sensu Monitoring Solution에 추가된 "linux-host1" 에이전트가 표시되어야 합니다.

sensuctl entity list --format tabular

확인으로 서버 리소스 모니터링

Sensu Agent는 에이전트 노드 또는 대상 서버가 WebSocket API를 통해 Sensu 백엔드에 대한 방법을 제공하기 위해 작동합니다. CPU 사용량, 대역폭 사용량, 디스크 사용량과 같은 서버 리소스를 모니터링하려면 "구독"을 설정하고 그 위에 몇 가지 "확인"을 생성해야 합니다. 그런 다음 Sensu 에이전트 또는 대상 서버에 여러 "구독"을 추가할 수 있습니다.

Sensu를 사용하여 서버 리소스를 모니터링하려면 다음 단계를 수행해야 합니다.

  • 구독 만들기
  • Sensu 런타임 자산 등록
  • 시스템 자원을 검사하기 위한 검사 정의 명령\n

더 진행하기 전에 다음 "sensuctl" 명령을 실행하여 "linux-host1" 엔터티에 대한 "system"이라는 새 구독을 만듭니다.

sensuctl entity update linux-host1

다음과 같은 질문이 표시됩니다.

  • Entity Class\의 경우 기본 \agent\로 두고 Enter 키를 누릅니다.
  • "구독"에 대해 구독 "시스템"의 이름을 입력하고 Enter 키를 누릅니다.\n

Sensu에서 "Checks"는 기본적으로 서버 리소스를 모니터링하는 데 사용할 수 있는 명령을 정의했습니다. "Checks"는 모든 모니터링 요구 사항에 대해 Sensu "Assets" 및 "Subscriptions" 위에서 정의할 수 있는 명령줄입니다. "Checks"를 만들려면 "sensuctl" 명령을 통해 동적 런타임 자산을 설정합니다. 모든 Sensu \자산\은 https://bonsai.sensu.io/에서 찾을 수 있습니다.

이제 아래의 "sensuctl" 명령을 실행하여 Sensu "Assets"를 생성하고 등록하여 CPU 사용량을 모니터링하십시오. " added asset: sensu/check-cpu-usage:0.2.2"와 같은 출력 메시지가 표시되어야 합니다. 이 예에서는 자산의 기본 이름도 "-r" 옵션을 사용하여 "check-cpu-usage"로 바꿉니다.

sensuctl asset add sensu/check-cpu-usage:0.2.2 -r check-cpu-usage

이제 다음 명령을 실행하여 Sensu 자산 목록을 확인하십시오. 자산 "check-cpu-usage"이 Sensu에서 사용 가능한 것으로 표시되어야 합니다.

sensuctl asset list

그런 다음 다음 명령을 실행하여 CPU 사용량을 모니터링하기 위한 "Checks" 명령을 만듭니다. 이 예에서는 "system" 구독에서 사용할 수 있고 자산 "check-cpu- 사용법\. 여기 "--command" 옵션에서 매개변수를 변경할 수도 있습니다. 그리고 "Created"와 같은 출력 메시지를 받아야 합니다.

sensuctl check create check_cpu \
--command 'check-cpu-usage -w 75 -c 90' \
--interval 60 \
--subscriptions system \
--runtime-assets check-cpu-usage

다음 "sensuctl" 명령을 실행하여 "check_cpu"를 확인하고 확인하십시오. 방금 생성한 "check_cpu"의 "Checks" 세부 정보가 표시되어야 합니다.

sensuctl check info check_cpu --format yaml

이제 아래 명령을 사용하여 "check_cpu" 이벤트 모니터링을 확인할 수 있습니다. "linux-host1"에 대한 CPU 사용량 모니터링이 구성되고 완료된 것을 볼 수 있습니다.

sensuctl event list --format tabular

이제 Sensu 관리 대시보드로 이동하고 "기본" 네임스페이스를 선택합니다. "Entity" 메뉴에서 Sensu 모니터링 시스템에 추가된 "linux-host1" 에이전트를 가져와야 합니다.

이제 "linux-host1" 에이전트의 세부 정보를 클릭하면 방금 생성한 "check_cpu"를 모니터링하는 "Checks"가 표시됩니다.

다음으로 모니터링 시스템에 대해 더 많은 "검사"를 추가하고 생성할 수 있습니다.

결론

이제 Debian 11 서버에 Sensu Monitoring Solution 설치를 수행했습니다. 또한 Sensu 백엔드를 관리하기 위한 Sensuctl 명령의 기본 사용법도 배웠습니다. 또한 Sensu Agent를 통해 Linux 호스트 시스템을 성공적으로 모니터링했으며 대상 서버 모니터링을 위한 "checks"를 설정했습니다.