まえがき
https://qiita.com/sinnsa233048/items/e6bcfa97660e38007a93
の続き
Prometheus構築/設定
- kube-prometheusのマニュフェストをk8sクラスタにデプロイ
- prometheus1サーバでのprometheusコンテナ作成
- prometheus1サーバでのgrafanaコンテナ作成
使用した環境
前回からprometheusノードが追加されています。
- 使用OS: CentOS7.8
- masterノード
- ノード名: master1
- ipアドレス: 192.168.10.11
- wokerノード
- ノード名: woker1
- ipアドレス: 192.168.10.21
- prometheusノード
- ノード名: prometheus1
- ipアドレス: 192.168.10.31
kube-prometheusのマニュフェストをk8sクラスタにデプロイ
https://github.com/coreos/kube-prometheus.git
のリポジトリのデプロイメントを使用します。
gitよりクローン
# yum -y install git
# git clone https://github.com/coreos/kube-prometheus.git
# cd kube-prometheus
マニュフェストをデプロイ
alartmanagerは今回用いないので別のディレクトリ等をを作成しておきます。
# mkdir manifests-not-deploy
# mv manifests/alertmanager* manifests-not-deploy/
alartmanager以外のマニュフェストをデプロイ
# kubectl create -f manifests/setup
# kubectl create -f manifests
マニュフェストを修正
今回はprometheusのポートをNodePortで公開し、外部からアクセスを行います。
(grafanaについても今回は公開します。)
- manifests/prometheus-service.yaml
type:NodePort
nodePort: 30090
を追加します。
apiVersion: v1
kind: Service
metadata:
labels:
prometheus: k8s
name: prometheus-k8s
namespace: monitoring
spec:
type: NodePort
ports:
- name: web
port: 9090
targetPort: web
nodePort: 30090
selector:
app: prometheus
prometheus: k8s
sessionAffinity: ClientIP
- manifests/grafana-service.yaml
こちらも同様に
type:NodePort
nodePort: 30090
を追加します。
apiVersion: v1
kind: Service
metadata:
labels:
app: grafana
name: grafana
namespace: monitoring
spec:
type: NodePort
ports:
- name: http
port: 3000
targetPort: http
nodePort: 30080
selector:
app: grafana
prometheus1サーバでのprometheusコンテナ作成
dockerインストール
(k8sクラスタ構築編でも使用した)docker公式のインストールスクリプトを使用します。
$ curl https://get.docker.com | sh
# systemctl enable docker
# systemctl start docker
prometheus設定ファイル作成
k8sクラスタ内に構築したprometheusの情報をすべて取得します。
cat <<EOF > /tmp/prometheus.yml
scrape_configs:
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job=".+"}'
- '{__name__=~".+"}'
static_configs:
- targets:
- '192.168.10.11:30090'
EOF
prometheusコンテナ起動
# docker run -d -p 9090:9090 -v/tmp/prometheus.yml:/etc/prometheus/prometheus.yml
prom/prometheus
prometheus1サーバでのgrafanaコンテナ作成
コンテナ起動
docker run -d --name=grafana -p 3000:3000 grafana/grafana
datasource設定
prometheus
を選択しURLにhttp://localhost:9090
を指定
dashbord設定
k8sクラスタ内に構築したgrafanaにkubernetes-mixin
のタグがつけられたdashbordを
エクスポートし、prometheus1サーバでのgrafanaにインポートして使用。
最後に
2回に渡ってPrometheusでfederationを実現するやり方を紹介させていただきました。
疑問点/ご指摘等は遠慮なくいただければと思います。