그래픽의 시스템 지표를 수집하기 위해 Ubuntu 14.04에 Collectd를 구성하는 방법

그래픽의 시스템 지표를 수집하기 위해 Ubuntu 14.04에 Collectd를 구성하는 방법

2022-06-01 last update

8 minutes reading System Tools Monitoring Ubuntu

소개


데이터를 수집하고 시각화하는 것은 서버와 프로젝트에 대해 현명한 결정을 내리는 중요한 방식이다.
previous guide에서 서버에서 데이터를 시각화하기 위해 Graphite를 설치하고 설정하는 방법에 대해 논의했습니다.그러나 우리는 데이터를 수집할 좋은 방법이 하나도 없고 심지어는 그래픽에 데이터를 전달할 수도 없다.
이 안내서에서 우리는collectd의 설치와 사용을 토론할 것이다.collectd는 시스템 통계 데이터 수집기로서 서버와 운행 서비스에 관한 지표를 수집하고 조직할 수 있다.
그래픽에 데이터를 전달하기 위해collectd를 설치하고 설정하는 방법을 보여 드리겠습니다.Graphite를 설치하고 Ubuntu 14.04 서버에서 실행했다고 가정합니다. 이전 설명서에서 보듯이

Collectd 설치


우리가 해야 할 첫 번째 일은collectd를 설치하는 것이다.기본 저장소에서 이 정보를 얻을 수 있습니다.
로컬 패키지 인덱스를 새로 고치고 설치할 내용을 입력합니다.
sudo apt-get update
sudo apt-get install collectd collectd-utils
이것은 수호 프로그램과 조수 제어 인터페이스를 설치할 것이다.수집된 데이터를 Graphite에 전달하는 방법을 알기 위해 설정이 필요합니다.

Collectd 구성


먼저 편집기에서 root 권한으로 collectd 프로필을 엽니다.
sudo nano /etc/collectd/collectd.conf
우리가 설정해야 할 첫 번째 일은 우리가 있는 기계의 호스트 이름이다.Collectd는 정보를 원격 Graphite 서버로 보내는 데 사용할 수 있지만, 이 안내서를 작성하기 위해 같은 기계에서 사용합니다.이름을 선택할 수 있습니다.
<예>
호스트 이름 " 그래픽 호스트"

실제 도메인 이름을 설정하면 이 동작을 건너뛸 수 있습니다. 서버가 DNS 시스템을 사용하여 정확한 도메인을 가져올 수 있도록 toeFQDNLookup를 떠나면 됩니다.
"Interval"은 호스트에서 데이터를 조회하기 전에 기다리는 시간 간격의 매개 변수가 있음을 알 수 있습니다.기본값은 10초입니다.Graphite 글에 관심을 가지면 Graphite 추적 통계 데이터의 가장 짧은 시간 간격이라는 것을 알 수 있습니다.이 두 값은 반드시 일치해야만 믿을 수 있게 데이터를 기록할 수 있다.
다음은 Collectd에 직접 들어가 정보를 수집하는 서비스입니다.Collectd는 플러그인을 사용하여 이 작업을 수행합니다.대부분의 플러그인은 시스템에서 정보를 읽는 데 사용되지만, 플러그인은 정보의 발송 위치를 정의하는 데도 사용된다.Graphite는 이러한 쓰기 플러그인 중 하나입니다.
이 안내서에서 다음 플러그인을 사용하도록 하겠습니다.다른 플러그인에 대해 주석을 달거나 호스트에서 테스트하거나 올바르게 구성할 수 있습니다.
LoadPlugin apache
LoadPlugin cpu
LoadPlugin df
LoadPlugin entropy
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin processes
LoadPlugin rrdtool
LoadPlugin users
LoadPlugin write_graphite
그중 일부는 배치가 필요하고, 그 중 일부는 상자를 열면 바로 사용할 수 있는 상황에서 잘 일할 수 있다.
파일을 계속 내려다보면 플러그인의 설정 부분에 들어갑니다.플러그인은 각 구성 부분에 블록을 정의하여 구성됩니다.이것은 아파치가 블록에서 명령을 구분하는 방식과 약간 비슷하다.대부분의 플러그인이 정상적으로 작동할 수 있기 때문에 우리는 그 중의 일부분만 볼 것이다.
Graphite를 서비스하기 위해 Apache 플러그인을 설치했기 때문에 Apache 플러그인을 사용합니다.다음과 같이 간단한 섹션으로 Apache 플러그인을 구성할 수 있습니다.
<예>
<플러그인apache>
<인스턴스 "Graphite">
URL "http:///span class="highlight"> 도메인 이름 또는 IP 서버 상태?자동
서버 "apache"



생산 환경에서 인증층 뒤에서 서버 통계 정보를 보호하기를 원할 수도 있습니다.파일의 이 부분에 있는 주석 코드를 보고 작업 원리를 이해할 수 있습니다.간단하게 보기 위해서, 우리는 신분 검증을 거치지 않은 개방적인 설정을 보여 줄 것이다.
Apache를 위해 server-status 페이지를 만들고 나중에 필요한 세부 정보를 제공합니다.df 플러그인에서 디스크가 얼마나 가득 찼는지 알려주므로 다음과 같은 간단한 구성을 추가할 수 있습니다.
<예>
<플러그인 df>
장치 "/dev"/vda
마운트 포인트 "/"
FSType“ext3”


시스템에 있는 드라이브의 장치 이름을 가리켜야 합니다.터미널에 명령을 입력하여 다음을 찾을 수 있습니다.
<예>
회사 명

<예>
사용된 파일 시스템 1K 블록% 불러오기 사용 가능
개발/vda 61796348 1766820 56867416 4%/
시스템/fs/cgroup 없음
udev 2013364 12 2013352 1%/개발
tmpfs 404836 340 404496 1%/운영
5120 없음 5120%/실행/잠금
없음 20241680 20241680%/작동/shm
1024000 1024000%/운영/사용자 없음

모니터링할 네트워크 인터페이스 선택:
<예>
<플러그인 커넥터>
인터페이스 "eth0"
IgnoreSelected 가짜


마지막으로 Graphite 플러그인을 살펴보겠습니다.이것은 collectd가 Graphite에 어떻게 연결되는지 알려 줍니다.이 섹션을 다음과 같이 표시합니다.
<예>

도형화
호스트 "localhost"
포트 "2003"
프로토콜 "tcp"
LogSendErrors true
접두사 "collected"
실제 스토리지 비율
AlwaysAppends 오류
EscapeCharacter“\u”



이것은 우리의 수호 프로세스가 데이터를 전달하기 위해 Carbon에 어떻게 연결되는지 알려준다.우리는 포트 2003의 로컬 컴퓨터를 봐야 한다고 지정합니다. Carbon은 이 컴퓨터를 사용하여 TCP 연결을 탐지합니다.
다음은 이 프로토콜을 사용하여 데이터를 Carbon에 신뢰성 있게 전달하는 것을 알려 드리겠습니다.우리는 이관에 관한 오류를 기록한 후에 데이터에 접두사를 설정하라고 알려 주었다.이 값은 점으로 끝나기 때문에, 이 호스트의 모든collectdstats는'collectd'디렉터리에 저장됩니다.
저장 속도는 통계 데이터가 통과하기 전에 계기로 변환되는지 여부를 결정한다.활성화되면, append 데이터 소스 줄은 노드 이름을 도량에 추가합니다.이스케이프 문자는 탄소가 디렉터리로 분리되지 않도록 점이 있는 값을 변환하는 방법을 결정합니다.
완료되면 파일을 저장하고 닫습니다.

통계를 보고하도록 Apache 구성


구성 파일에서 Apache stats 추적을 사용합니다.그러나 이렇게 할 수 있도록 아파치를 설정해야 합니다.
Graphite를 위한 아파치 가상 호스트 파일에 간단한 위치 블록을 추가하여 아파치에 통계 데이터를 보고할 수 있습니다.
텍스트 편집기에서 파일을 열려면 다음과 같이 하십시오.
sudo nano /etc/apache2/sites-available/apache2-graphite.conf
컨텐츠 위치 블록 아래에 아파치가 /server-status 페이지에 통계를 제공하기 위해 다른 블록을 추가합니다.다음 섹션을 추가합니다.
<예>
별칭/내용//usr/공유/graphite 웹/정적/
<위치/내용/>
SetHandler 없음

<span class="highlight">&lt;Location "/server-status"&gt;</span>
    <span class="highlight">SetHandler server-status</span>
    <span class="highlight">Require all granted</span>
<span class="highlight">&lt;/Location&gt;</span>

ErrorLog ${APACHE_LOG_DIR}/graphite-web_error.log

완료되면 파일을 저장하고 닫습니다.
이제 새 통계에 액세스하기 위해 Apache를 다시 로드할 수 있습니다.
sudo service apache2 reload
웹 브라우저의 페이지를 방문하면 모든 것이 정상적인지 확인할 수 있습니다.도메인으로 이동하기만 하면 됩니다 /server-status.
<예>
http:///span class="highlight"> 도메인 이름 또는 IP 서버 상태

다음 페이지가 표시됩니다.

스토리지 아키텍처 및 통합 설정


현재, 우리는collectd를 서비스에 대한 통계 정보를 수집하기 위해 설정했고, Graphite를 조정하여 수신한 데이터를 정확하게 처리해야 합니다.
스토리지 아키텍처 정의를 작성하는 것부터 시작하겠습니다.스토리지 아키텍처 구성 파일 열기:
sudo nano /etc/carbon/storage-schemas.conf
내부적으로, 우리는 정보를 저장하는 시간과 데이터의 각 단계에 대한 상세도를 규정하는 정의를 추가해야 한다.
Graphite는 수집된 정보를 하루에 10초 간격으로 저장하고, 1분 간격으로 7일, 10분 간격으로 1년 동안 저장한다고 알려 드리겠습니다.
이것은 우리로 하여금 최근 활동의 상세한 정보와 장기적인 전체적인 추세 사이에 좋은 균형을 얻게 할 것이다.Collectd는 문자열collectd에서 시작하는 도량을 전달하기 때문에 이 모드와 일치합니다.
우리가 기술한 정책은 이 줄을 추가하여 추가할 수 있다.이 정책을 기본 정책에 추가하지 않으면 다음 정책이 적용되지 않는다는 점을 명심하십시오.
[collectd]
pattern = ^collectd.*
retentions = 10s:1d,1m:7d,10m:1y
완료되면 파일을 저장하고 닫습니다.

서비스 다시 로드


현재collectd가 설정되어 있습니다. Graphite는 데이터를 어떻게 처리하는지 알고 있습니다. 서비스를 다시 불러올 수 있습니다.
우선 Carbon 서비스를 다시 시작합니다."restart"명령이 아니라 "stop"과 "start"명령을 몇 초 간격으로 사용하는 것이 좋습니다.이렇게 하면 재부팅하기 전에 데이터를 완전히 새로 고칠 수 있습니다.
sudo service carbon-cache stop          ## wait a few seconds here
sudo service carbon-cache start
탄소 서비스가 시작되고 다시 실행되면, 우리는collectd에 대해 같은 작업을 수행할 수 있습니다.이 서비스가 아직 실행되지 않았을 수도 있지만, 이것은 데이터가 정확하게 처리되는지 확인합니다.
sudo service collectd stop
sudo service collectd start
그러면 도메인에 다시 액세스하여 수집한 정보가 포함된 새 트리를 볼 수 있습니다.

결론


우리의 수집 설정은 이미 완성되었고, 우리의 통계 데이터는 이미 기록되었다!현재, 우리는 서버와 서비스를 추적하기 위해 수호 프로세스를 설정했다.
우리는 필요에 따라collectd를 설정하거나 다른 플러그인을 작성할 수 있습니다.collectd가 있는 다른 서버도 데이터를 저희 Graphite 서버로 보낼 수 있습니다.Collectd는 주로 공공 서비스와 전체 기계에 대한 통계 정보를 수집하는 데 사용된다.
next article 에서 StatsD를 설정합니다. 이것은 데이터를 Graphite로 갱신하기 전에 데이터를 캐시할 수 있는 서비스입니다.이것은 우리가 통계 데이터를 보낼 때 데이터가 분실되는 문제를 해결할 수 있도록 할 것이다. 우리는 이전 글에서 이 문제를 묘사했다.그것은 또한 우리에게 자신의 계획과 프로젝트의 통계 데이터를 추적할 수 있는 인터페이스를 제공할 것이다.
저스틴 엘린우드