Prometheus 学习笔记 - 监控 Application 案例配置

网友投稿 268 2022-10-02

Prometheus 学习笔记 - 监控 Application 案例配置

Prometheus 除了监控服务器节点,还可以对application和容器进行监控。下面看看4个例子,监控apache,监控 docker daemon,监控docker container和 监控 kubenetes

例1 监控Apache 相关服务

和监控Linux 节点类似,我们也需要安装对应的exporter登陆进apache 服务器,创建新用户,下载exporter,解压,拷贝到可执行目录,更改权限

sudo useradd -M -r -s /bin/false apache_exporter wget https://github.com/Lusitaniae/apache_exporter/releases/download/v0.7.0/apache_exporter-0.7.0.linux-amd64.tar.gz tar xvfz apache_exporter-0.7.0.linux-amd64.tar.gz sudo cp apache_exporter-0.7.0.linux-amd64/apache_exporter /usr/local/bin/ sudo chown apache_exporter:apache_exporter /usr/local/bin/apache_exporter

创建一个systemd的守护进程

sudo vi /etc/systemd/system/apache_exporter.service [Unit] Description=Prometheus Apache Exporter Wants=network-online.target After=network-online.target [Service] User=apache_exporter Group=apache_exporter Type=simple ExecStart=/usr/local/bin/apache_exporter [Install] WantedBy=multi-user.target

启动进程

sudo systemctl enable apache_exporter sudo systemctl start apache_exporter sudo systemctl status apache_exporter

手动查看一下是否成功,他应该会返回大量数据

curl localhost:9117/metrics

接下来,我们登陆prometheus服务器

sudo vi /etc/prometheus/prometheus.yml

添加下面的job

- job_name: 'Apache Server' static_configs: - targets: ['limedrop-apache:9117']

重启prometheus服务

sudo systemctl restart prometheus

例2 监控 Docker Daemon

Docker Daemon 的监控就更容易了。我们只需要打开一个配置文件的设置就行了

sudo vi /etc/docker/daemon.json

添加下面的内容

{ "experimental": true, "metrics-addr": "10.0.1.102:9323" }

重启

sudo systemctl restart docker

查看一下

curl 10.0.1.102:9323/metrics

回到 prometheus服务器修改一下配置文件

sudo vi /etc/prometheus/prometheus.yml

添加内容

- job_name: 'Docker' static_configs: - targets: ['limedrop-docker:9323']

重启

sudo systemctl restart prometheus

访问结果,显示docker的运行状态

例3 监控 docker Container

我们可以用一个叫做 cAdvisor的服务来监控状态直接在host上安装启动这个容器

docker run -d --restart always --name cadvisor -p 8080:8080 -v "/:/rootfs:ro" -v "/var/run:/var/run:rw" -v "/sys:/sys:ro" -v "/var/lib/docker/:/var/lib/docker:ro" google/cadvisor:latest

确认一下

curl localhost:8080/metrics

查看一下当前的容器

cloud_user@ip-10-0-1-102:~$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5a91ebfef3d2 google/cadvisor:latest "/usr/bin/cadvisor -…" 7 minutes ago Up 7 minutes 0.0.0.0:8080->8080/tcp cadvisor 329c59ddfdee nginx "/docker-entrypoint.…" 13 minutes ago Up 13 minutes 80/tcp web2 99926c15aa01 nginx "/docker-entrypoint.…" 13 minutes ago Up 13 minutes 80/tcp web1

切回我们的prometheus 服务器,修改配置

sudo vi /etc/prometheus/prometheus.yml

添加内容

- job_name: 'Docker Containers' static_configs: - targets: ['limedrop-docker:8080']

重启服务

sudo systemctl restart prometheus

查看一下我们的web容器的内存

container_memory_usage_bytes{name=~"web."}

例4 监控 kubernetes

我们使用kube-state-metrics来进行监控,首先从github下载代码,进入文件目录,然后checkout到对应的版本号

git clone https://github.com/kubernetes/kube-state-metrics.git cd kube-state-metrics/ git checkout v1.8.0

执行kubectl 生成对应的服务

kubectl apply -f kubernetes

接下来需要自定义一个nodeport的服务

cd .. vi kube-state-metrics-nodeport-svc.yml

yaml文件如下

kind: Service apiVersion: v1 metadata: namespace: kube-system name: kube-state-nodeport spec: selector: k8s-app: kube-state-metrics ports: - protocol: TCP port: 8080 nodePort: 30000 type: NodePort

执行

kubectl apply -f kube-state-metrics-nodeport-svc.yml

测试

curl localhost:30000/metrics

切换回Prometheus服务器,修改配置

sudo vi /etc/prometheus/prometheus.yml

添加内容

- job_name: 'Kubernetes' static_configs: - targets: ['limedrop-kube:30000']

重启服务

sudo systemctl restart prometheus

访问查看一下我们的pod状态

kube_pod_status_ready{namespace="default",condition="true"}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring IOC容器的Bean管理基于注解属性注入方式
下一篇:Microsoft 365 解决方案:Office 365 Sensitivity Label+Azure Conditional Access打造 SharePoint 数据安全保障
相关文章

 发表评论

暂时没有评论,来抢沙发吧~