我主页有k8s+docker部署

三台一起创建

mkdir prom

yum install -y unzip

第一台master拖入kube-prometheus.zip

cd prom

unzip kube-prometheus.zip

cd kube-prometheus

安装prometheus Operator

kubectl apply --server-side -f manifests/setup

然后在三台都传images.zip

unzip images.zip

cd images

导入镜像

sh imp_docker_img.sh

cd prom/kube-prometheus/

kubectl apply --server-side -f manifests/

查看空间下的所有资源:

kubectl get all -n monitoring

查看容器的状态:

kubectl get pod -n monitoring

cd

kubectl edit svc grafana -n monitoring

type:NodePort #36

查看所有

kubectl get svc -n monitoring

查看指定

kubectl get svc grafana -n monitoring

访问grafana

http://192.168.10.40:30782

修改Prometheus的Service类型修改

查看prometheus的类型

kubectl get svc -n monitoring prometheus-k8s

kubectl edit svc prometheus-k8s -n monitoring

type:NodePort #48

再次查看类型

访问prometheus

http://192.168.10.40:32323

查看监控目标

配置 Grafana Dashbord

选择数据源

添加图表

输入官方的监控模板id:13105

选择图表数据源

添加云原生监控项

添加监控组件ETCD

查看状态:

kubectl get pod -n kube-system

查看之前创建的 servicemonitors资源

kubectl get servicemonitors -A

通过 ClusterIP 访问测试

curl --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/healthcheck-client.crt --key /etc/kubernetes/pki/etcd/healthcheck-client.key https://192.168.10.40:2379/metrics

创建 ETCD 证书的 Secre

kubectl -n monitoring create secret generic etcd-certs --from-file=/etc/kubernetes/pki/etcd/ca.crt --from-file=/etc/kubernetes/pki/etcd/healthcheck-client.crt --from-file=/etc/kubernetes/pki/etcd/healthcheck-client.key

修改 prometheus 资源,应用上一步创建的 secre

kubectl edit prometheus k8s -n monitoring

在未行添加

secrets:

- etcd-certs

查看证书

kubectl -n monitoring exec -it prometheus-k8s-0 -c prometheus -- sh

ls /etc/prometheus/secrets/etcd-certs/

创建 ETCD ServiceMonitor

kubectl get pod -A | grep etcd

kubectl expose pod -n kube-system etcd-master --name=etcd-k8s --port=2379 --target-port=2379

kubectl edit svc etcd-k8s -n kube-system

创建 Etcd-ServiceMonitor.yaml

vim Etcd-ServiceMonitor.yaml

启用文件:

kubectlapply -f Etcd-ServiceMonitor.yaml

浏览器查看监控目标:

来到http://192.168.10.30:32702/

这里正常的是应该有数据的我这里是个人原因

就可以监控到etcd图表了

添加非云原生监控项

在Kubernetes中安装一个mysql

 kubectl create eploy mysql --image=mysql:5.7.23

设置mysql密码

kubectl setenv deploy/mysql

MYSQL_ROOT_PASSWORD=pwd123

查看pod的状态

kubectl get pod

创建service,暴露mysql端口

kubectl expose deployment mysql --type NodePort --port=3306

kubectl getsvc -l app=mysql

访问测试

yum -yinstall mysql

进入数据库

mysql -uroot -ppwd123 -h 192.168.10.30 -P 30369

退出;

配置mysql exporter采集mysql监控文件

vim  mysql-exporter.yaml

kubectl create -f mysql-exporter.yaml

kubectl get -f mysql-exporter.yaml

测试能否获取metrics数据

使用上个命令查看的IP和端口

curl 10.1.236.118:9104/metrics | tail -1

配置ServiceMonitor

vim mysql-sm.yaml

应用文件

kubectl apply -f mysql.sm.yaml

访问查看监控目标

创建模板Id:6239 查看图表

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐