监控tomcat
https://github.com/nlighten/tomcat_exporter
cat Dockerfile
#FROM tomcat:8.5.73-jdk11-corretto
FROM tomcat:8.5.73
LABEL maintainer="jack 2973707860@qq.com"
ADD server.xml /usr/local/tomcat/conf/server.xml
RUN mkdir /data/tomcat/webapps -p
ADD myapp /data/tomcat/webapps/myapp
ADD metrics.war /data/tomcat/webapps
ADD simpleclient-0.8.0.jar /usr/local/tomcat/lib/
ADD simpleclient_common-0.8.0.jar /usr/local/tomcat/lib/
ADD simpleclient_hotspot-0.8.0.jar /usr/local/tomcat/lib/
ADD simpleclient_servlet-0.8.0.jar /usr/local/tomcat/lib/
ADD tomcat_exporter_client-0.0.12.jar /usr/local/tomcat/lib/
#ADD run_tomcat.sh /apps/tomcat/bin/
EXPOSE 8080 8443 8009
#CMD ["/apps/tomcat/bin/catalina.sh","run"]
#CMD ["/apps/tomcat/bin/run_tomcat.sh"]
镜像制作并上传到harbor:root@k8s-master01:~/prometheus-files/case/app-monitor-case/tomcat/tomcat-image# bash build-command.sh
运行容器并访问:docker run -d --name tomcat -p 8080:8080 harbor.luohw.net/luohw/tomcat-app1:v1
http://192.168.1.27:31080/metrics/
配置Prometheus添加tomcat
- job_name: tomcat-exporter
static_configs:- targets: [“192.168.122.12:31080”]
监控redis
redis-exporter项目地址:https://github.com/oliver006/redis_exporter
应用yaml文件
root@k8s-master01:~/prometheus-files/case/app-monitor-case/redis/yaml# kubectl apply -f .
查看
root@k8s-master01:~/prometheus-files/case/app-monitor-case/redis/yaml# kubectl get svc -n studylinux-net
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
redis-exporter-service NodePort 10.100.146.29 9121:31082/TCP 377d
redis-redis-service NodePort 10.100.203.167 6379:31081/TCP 377d
访问http://192.168.1.27:31082/metrics
Prometheus添加配置
Grafana导入模板,查看监控数据。模板ID:14615
监控mysql
安装mysql
apt install mysql-server -y
mysql授权
CREATE USER 'mysql-exporter'@'localhost' IDENTIFIED BY 'Admin@123' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysql-exporter'@'localhost';
mysql -u mysql-exporter -p -h localhost; #验证权限
部署mysql-exporter
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz
tar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz
mv mysqld_exporter-0.14.0.linux-amd64/mysqld_exporter /usr/bin/
mysqld_exporter -h #查看帮助信息
root@prometheus-node-02:~# mkdir /etc/mysqld-exporter
root@prometheus-node-02:~# cat /etc/mysqld-exporter/.my.cnf
[client]
#指定连接mysql的账户和密码
user = mysql-exporter
password = Admin@123
准备service文件
root@prometheus-node-02:~# cat /lib/systemd/system/mysql-exporter.service
[Unit]
Description=Prometheus Node Exporter
After=network.target
[Service]
ExecStart=/usr/bin/mysqld_exporter --config.my-cnf=/etc/mysqld-exporter/.my.cnf --web.listen-address=192.168.1.21:9104
[Install]
WantedBy=multi-user.target
启动服务
systemctl daemon-reload
systemctl start mysql-exporter.service
systemctl status mysql-exporter.service
systemctl enable mysql-exporter.service
访问
在这里插入图片描述
Prometheus添加配置
监控nginx
机器:192.168.1.22
git clone https://github.com/vozlt/nginx-module-vts.git
tar xf nginx-module-vts-0.2.1.tar.gz -C /usr/local/src/
cp nginx-moduler-vts /usr/local/src
编译安装 nginx
wget http://nginx.org/download/nginx-1.22.1.tar.gz
tar xvf nginx-1.22.1.tar.gz
cd nginx-1.22.1/
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-file-aio \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module \
--add-module=/usr/local/src/nginx-module-vts/
make && make install
编辑nginx配置文件
cd /usr/local/nginx/
http {
vhost_traffic_status_zone; #启用状态页
server {
...
location /status { #状态页面location配置
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}
}
启动nginx: root@k8s-etcd02:/usr/local/nginx/sbin# ./nginx
访问状态页测试
安装nginx export ,监听9913端口
wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
tar xf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
cp nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter /usr/bin/
nginx-vts-exporter -nginx.scrape_uri http://192.168.1.22/status/format/json & #启动
http://192.168.1.22:9913/metrics
1.25配置prometheus
- job_name: "nginx"
static_configs:
- targets: ["192.168.1.22:9913"]
导入模板:2949
监控ingress
http://192.168.1.24:61254/metrics
Prometheus监控案例之blackbox-exporter
blackbox-exporter项目地址:https://github.com/prometheus/blackbox_exporter
安装服务器:192.168.1.22
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.23.0/blackbox_exporter-0.23.0.linux-amd64.tar.gz
解压到apps
root@k8s-etcd02:/apps# systemctl cat blackbox-exporter.service
[Unit]
Description=Prometheus Blackbox Exporter
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/apps/blackbox_exporter/blackbox_exporter
–config.file=/apps/blackbox_exporter/blackbox.yml
–web.listen-address=:9115
Restart=on-failure
[Install]
WantedBy=multi-user.target
1.25 Prometheus添加配置
- job_name: http-status
metrics_path: /probe #指定指标接口
params: #指定查询参数,在Prometheus向target发送Get请求获取指标数据时,会传递到url上
module: [http_2xx]
static_configs:
- targets:
- http://www.baidu.com
- http://www.jd.com
- http://www.magedu.com
labels: #自定义标签,附加在target上
group: web
relabel_configs:
#将标签__address__的值赋值给__param_target标签,以__param开头的标签也会作为查询参数传递Prometheus的Get请求,作用和上面的params配置类似
- source_labels: [__address__]
target_label: __param_target
#将标签__param_target的值赋值给instance标签
- source_labels: [__param_target]
target_label: instance
#将标签__address__的值修改给balckbox-expoter的地址
- target_label: __address__
replacement: 192.168.1.22:9115
#以 http://www.baidu.com为例,最后其对应target的地址就是http://192.168.1.22:9115/probe?module=http_2xx&target=http://www.baidu.com
- job_name: icmp-status #icmp监控
metrics_path: /probe
params:
module: [icmp]
static_configs:
- targets:
- 192.168.1.1
- 192.168.1.100
labels:
group: icmp
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: ip
- target_label: __address__
replacement: 192.168.1.22:9115
- job_name: tcp-port-status #端口监控
metrics_path: /probe
params:
module: [tcp_connect]
static_configs:
- targets:
- 18.167.84.165:22
- 192.168.1.26:6443
labels:
group: tcp-port-status
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: ip
- target_label: __address__
replacement: 192.168.1.22:9115
grafana 9115添加
pushgateway
wget https://github.com/prometheus/pushgateway/releases/download/v1.5.1/pushgateway-1.5.1.linux-amd64.tar.gz
tar xvf pushgateway-1.5.1.linux-amd64.tar.gz
root@k8s-etcd02:~/pushgateway-1.5.1.linux-amd64# mv pushgateway /usr/bin/
root@prometheus-server-01:~# cat /lib/systemd/system/pushgateway.service
[Unit]
Description=Prometheus Pushgateway
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=pushgateway --web.listen-address=:9091
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start pushgateway
systemctl status pushgateway
systemctl enable pushgateway
1.25 Prometheus添加配置
- job_name: pushgateway
honor_labels: true
static_configs:- targets: [“192.168.1.22:9091”]
测试推送数据
echo “my_metrica 2022”| curl --data-binary @- http://192.168.1.22:9091/metrics/job/test-job