Prometheus로 munin에서 마이그레이션을 검토 ④ ~ 마이그레이션 검토 그 1 ~
4389 단어 모니터링 도구prometheus
prometheus 설정
grafana 설정
alertmanager 설정
munin에서는 기본 부분 외에 Nginx나 phpfpm도 감시하고 있으므로,
비슷한 일을 할 수 있는지 확인합니다.
대상 추가
마이그레이션 검토가 프론트 서버이므로 Nginx와 phpfpm의 감시가 가능한지 확인한다.
nginx 설정
원래 status 정보를 얻을 수 없으면 감시 할 수 없기 때문에,
nginx 자체의 구성 파일에 다음을 추가했습니다.
# Server Status
location = /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
wget등으로 로컬로부터 「 http://127.0.0.1/nginx_status
」를 확인해 값이 취해지면 exporter의 설정을 실시합니다.
아래에서 다운로드했습니다.
nginx_exporter
그대로 실행할 수 있었으므로 nginx_exporter 디렉토리로 이동하여 다음과 같이했습니다.
※자신의 환경에서는 이하가 부족했기 때문에 「go get」로 취득해 실행하고 있습니다.
- go get github.com/prometheus/client_golang/prometheus
- go get github.com/prometheus/common/log
php-fpm 설정
값은 http 액세스로 취했기 때문에, nginx의 설정 파일의 변경이 필요했습니다.
location = /phpfpm_status {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
allow 127.0.0.1;
deny all;
}
이런 느낌입니다.
nginx와 마찬가지로 로컬에서 "http://127.0.0.1/phpfpm_status
"를 확인했습니다.
다음에 php-fpm용의 exporter를 찾은 결과, 이하가 발견되었으므로 이용합니다.
php-fpm-exporter
다만, bug도 있었으므로 약간 개수해 이용했습니다.
# Server Status
location = /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location = /phpfpm_status {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
allow 127.0.0.1;
deny all;
}
이 시점에서는 master가 아니라 최신 리포지토리로 하고 있습니다.
또, zap를 사용하고 있는 개소를 코멘트로 해 대응했습니다.
(더 나은 exporter가있을 수 있습니다)
이쪽도 다운로드한 것을 그대로 실행할 수 있었으므로,
php-fpm-exporter 디렉토리로 이동하여 다음과 같이했습니다.
값 획득
nginx와 php-fpm의 값을 얻을 수 있게 되었으므로,
prometheus로 가져와 grafana로 그려보세요.
우선 netstat에서 대기 포트 확인입니다.
nginx와 php-fpm 외에 node-exporter도 기동하고 있으므로 그 확인을합니다.
그런 다음 prometheus.yml의 scrape_configs에 설정을 추가했습니다.
- job_name: 'test_front1'
static_configs:
- targets: ['対象サーバのIP:9100']
- targets: ['対象サーバのIP:9113']
- targets: ['対象サーバのIP:9913']
이런 느낌입니다.브라우저 측에서 확인
prometheus 화면(grafana가 아님)에서 값을 얻었는지 여부를 확인합니다.
"Execute"버튼 옆의 풀다운에서 "nginx_"나 "phpfpm_"를 확인할 수 있다고 생각합니다.
※이런 느낌으로 php-fpm도 있는 것을 확인했습니다.
메뉴에 있는 Status의 Targets에서 Endpoint의 State가 「UP」으로 되어 있는 것도 확인할 수 있습니다.
grafana에서 대시보드 추가
값이 잡혀 있으므로 다음을 Grafana Lab에서 다운로드하여 적용합니다.
더 좋은 대시보드가 있을지도 모르지만 이것을 사용하게 했습니다.
요약
기본 리소스 모니터링은 "Node Exporter Full",
그리고 프런트 사용하고 있는 미들웨어로 「Nginx Overview」나 「PHP-FPM」을 사용했습니다.
어쩌면 DB라든지의 정보도 exporter로 데이터를 취해 dashboard로 표시라는 흐름은 변하지 않는다고 생각하기 때문에,
응용할 수 있다고 생각합니다.
Reference
이 문제에 관하여(Prometheus로 munin에서 마이그레이션을 검토 ④ ~ 마이그레이션 검토 그 1 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kohei-okamura/items/b6d6c8c2a46ae5b1b9ae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Prometheus로 munin에서 마이그레이션을 검토 ④ ~ 마이그레이션 검토 그 1 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kohei-okamura/items/b6d6c8c2a46ae5b1b9ae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)