passenger-status의 Mackerel 플러그인 모니터링

5371 단어 GoMackerelpassenger
업무 중에는 상태를 관찰하기 위해 Passenger의 매개 변수 조정passenger-status이 필요하지만 이 명령만으로는 계속 감시할 수 없습니다.
우연히 감시 도구에 Macerel을 사용했는데, Passenger를 감시하는 플러그인이 없어서 했습니다.

결실



이런 느낌에서 Passenger의 총 메모리 사용량과 Passenger의 프로세스 수는 Queue에 들어오는 프로세스 수를 감시할 수 있다.

해본 일

passenger-status Go 언어를 통해 명령 출력을 지우고 각 지표를 계산하여 표준 출력으로 출력하는 명령을 실현했다.출력 형식은 Mackerel 플러그인의 사양을 따릅니다.

passenger-status 출력

--no-header에서 여분의 눈썹을 생략하였다.
$ sudo bundle exec passenger-status --no-header
----------- General information -----------
Max pool size : 6
App groups    : 1
Processes     : 3
Requests in top-level queue : 0

----------- Application groups -----------
/path/to/passenger-ruby-sinatra-demo/public (development):
  App root: /path/to/passenger-ruby-sinatra-demo
  Requests in queue: 0
  * PID: 60021   Sessions: 0       Processed: 5       Uptime: 45s
    CPU: 0%      Memory  : 8M      Last used: 21s ago
  * PID: 60022   Sessions: 0       Processed: 0       Uptime: 45s
    CPU: 0%      Memory  : 1M      Last used: 45s ago
  * PID: 60025   Sessions: 0       Processed: 0       Uptime: 45s
    CPU: 0%      Memory  : 1M      Last used: 45s ago
passenger의 샘플 응용 프로그램은
https://github.com/phusion/passenger-ruby-sinatra-demo
사용했습니다.

mackerel-Plugin-passenger 출력

passenger.memory.total_memory   10485760        1513207571
passenger.processes.processes_in_queue  0       1513207571
passenger.processes.total_processes     3       1513207571
여기에 세 개의 도량을 출력한다
첫 줄은passenger 프로세스의 총 메모리 사용량입니다
두 번째 행동passenger 대기열의 요청수 합계
세 번째 줄에서 시작된 패스워드 프로세스의 총 수
네.순서는 출력에 따라 바뀔 수 있을 것 같아요.변했다거나.

실장했어


https://github.com/nabewata07/mackerel-plugin-passenger
여기다 놔.

설치 방법


플러그인의 규격은 표준 출력입니다メトリクス名 値 UNIXタイムスタンプ의 순서대로 출력하면 됩니다. 여러 개의 도량을 건너뛰려면 각각 한 줄씩 줄을 바꾸어 출력하면 됩니다.
따라서 Go 언어 이외의 언어에서도 가능하다.

go-mackerel-plugen을 이용하다


Go 말고도 가능해요. Go 언어라면
https://github.com/mackerelio/go-mackerel-plugin
여기 라이브러리 사용하기
https://mackerel.io/ja/docs/entry/advanced/go-mackerel-plugin
여기 설명을 참고하면 플러그인의 규격에 따라 출력할 수 있어 기분이 좋아서 가볍습니다.

mkr pluggin install에 설치 가능


mackerel은 Giithub에서 플러그인을 직접 설치할 수 있는 명령줄 도구 mkr 를 제공합니다.
https://mackerel.io/ja/docs/entry/advanced/install-plugin-by-mkr
https://mackerel.io/ja/blog/entry/feature/20171116

필요한 일

go-mackerel-plugin 플러그 인 설치 후
https://mackerel.io/ja/docs/entry/advanced/make-plugin-corresponding-to-installer
다만 이쪽의'플러그인을 규격에 맞게 설정하는 작업'을 진행한다.
프로파일을 복사하여 최대 4개의 명령만 수행할 수 있습니다. 매우 간단합니다.

mkr로 설치해 볼게요.


mkr 자체 설치 방법은
https://mackerel.io/ja/docs/entry/advanced/cli
구문을 사용합니다.
실제 mkr로 설치해 보세요.
$ sudo mkr plugin install nabewata07/mackerel-plugin-passenger
           Downloading https://github.com/nabewata07/mackerel-plugin-passenger/releases/download/v0.0.7/mackerel-plugin-passenger_darwin_amd64.zip
           Installing /opt/mackerel-agent/plugins/bin/mackerel-plugin-passenger
           Successfully installed nabewata07/mackerel-plugin-passenger
https://mackerel.io/ja/docs/entry/advanced/install-plugin-by-mkr
여기도 써있어요. Giithub에 있으면...
$ mkr plugin install <owner>/<repo>[@<release_tag>]
구문을 사용합니다./opt/mackerel-agent/plugins/bin/ 다음 설치 명령입니다.
※ 보충 2017/12/28
공식 플러그인 등록표에 들어갔기 때문에.
https://github.com/mackerelio/plugin-registry/pull/14#issuecomment-353944341
창고 소유자를 지정하지 않아도
mkr plugin install mackerel-plugin-passenger
를 참고하십시오.
※ 추기 완료

감상


플러그인 제작을 위한 프로그램 라이브러리가 공개됐고, 공식 페이지에 대한 설명도 충실해 제작부터 시작까지 조작이 빨리 끝났다는 인상을 준다.
또한 goxcghr는 매우 편리하다. 지령을 두 번만 두드리면 각 플랫폼의 실행 2진법을 만들어서 Giithub에 발표할 수 있어서 나는 감동했다.

좋은 웹페이지 즐겨찾기