Prometheus监控实践

Posted gyz0517

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Prometheus监控实践相关的知识,希望对你有一定的参考价值。

prometheus存储的是时序数据,即按相同时序(相同名称和标签),以时间维度存储连续的数据的集合。

一、架构图

技术图片

 

二、部署

1. Prometheus Server端部署
1、解压安装包:(各组件最新版下载地址:https://prometheus.io/download/)
1 mkdir /opt/monitor;cd /opt/monitor
2 unzip prometheus.zip ./
3 tar zxf prometheus-2.11.1.linux-amd64.tar.gz
4 mv prometheus-2.11.1.linux-amd64 prometheus-2.11.1

 

2、添加为系统服务
 1 vim /usr/lib/systemd/system/prometheus-server.service
 2 
 3 [Unit]
 4 Description=prometheus-server
 5 After=network.target
 6  
 7 [Service]
 8 Type=simple
 9 User=root
10 ExecStart=/opt/monitor/prometheus/prometheus-2.11.1/prometheus --config.file=/opt/monitor/prometheus/prometheus-2.11.1/prometheus.yml
11 Restart=on-failure
12  
13 [Install]
14 WantedBy=multi-user.target
 
3、启动并加入开机自启
1 systemctl start prometheus-server
2 systemctl enable prometheus-server

 

4、访问地址
 

2. Prometheus Node端部署
1、将压缩包上传至需要监控的Artifactory服务器节点,并解压
1 cd /opt/monitor/prometheus
2 unzip prometheus.zip ./
3 tar zxf node_exporter-0.18.1.linux-amd64.tar.gz
4 mv node_exporter-0.18.1.linux-amd64 node_exporter-0.18.1

 

2、添加为系统服务:

 1 vim /usr/lib/systemd/system/prometheus-node.service
 2 
 3 [Unit]
 4 Description=prometheus-node
 5 After=network.target
 6  
 7 [Service]
 8 Type=simple
 9 User=root
10 ExecStart=/opt/monitor/prometheus/node_exporter-0.18.1/node_exporter
11 Restart=on-failure
12  
13 [Install]
14 WantedBy=multi-user.target
 
3、启动并加入开机自启(默认启动端口:9100)
1 systemctl start prometheus-node
2 systemctl enable prometheus-node

 

3. Grafana安装
1、 安装
1 wget https://dl.grafana.com/oss/release/grafana-6.2.5-1.x86_64.rpm 
2 yum localinstall grafana-6.2.5-1.x86_64.rpm -y

 

2、 启动/停止/重启/开机自启
1 systemctl start/stop/restart/enable grafana-server

 

3、 访问
http://IP:3000
默认用户名/密码:admin/admin

 1 -------------------------------------
 2 温馨提示:
 3 忘记管理员密码:
 4 找到grafana.db文件,一般在/var/lib/grafana/grafana.db
 5 find / -name "grafana.db"
 6  
 7 打开数据库
 8 sqlite3 /var/lib/grafana/grafana.db
 9  
10 重置admin用户的密码为默认admin
11 update user set password = ‘59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6‘, salt = ‘F3FAxVm33R‘ where login = ‘admin‘;
12  
13 重启grafana
14 -------------------------------------

技术图片

 

三、监控

1. 配置Artifactorty节点系统监控
1、 在Artifactory各个节点安装好Prometheus Node后,修改/opt/monitor/prometheus-2.11.1/prometheus.yml,添加:
1 - job_name: ‘artifactory‘
2       static_configs:
3             - targets: [‘IP1:9100‘,‘IP2:9100‘]

 

2、重启prometheus-server
1 systemctl restart prometheus-server

 

3、查看监控状态及数据查询示例
技术图片
 
4、使用grafana展示,添加模板node-exporter-full_rev14.json
模板下载地址:
 
5、导入模板
技术图片

 

6、Artifactory节点系统监控展示
技术图片

 2. 配置Artifactorty JVM监控

1、下载jmx_prometheus_javaagent-0.12.0.jar
下载地址:
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar
Jar包路径:/opt/monitor/prometueus/jmx_prometheus_javaagent-0.12.0.jar
 
2、添加配置文件

1 vim /opt/monitor/prometheus/jmx_config.yaml
2 
3 ---
4 lowercaseOutputLabelNames: true
5 lowercaseOutputName: true
6  
7 rules:
8 - pattern: ".*"
 
3、修改Artifactory tomcat配置文件
1 vim $ARTIFACTORY_HOME/tomcat/bin/catalina.sh
2 添加:
3 JAVA_OPTS="$JAVA_OPTS -javaagent:/opt/monitor/prometheus/jmx_prometheus_javaagent-0.12.0.jar=30013:/opt/monitor/prometheus/jmx_config.yaml"

 

4、重启Artifactory
 
5、修改/opt/monitor/prometheus/prometheus-2.11.1/prometheus.yml,添加:
1 - job_name: ‘Artifactory-jmx‘
2       static_configs:
3             - targets: [‘IP1:30013‘,‘IP2:30013‘]

 

6、重启prometheus-server
 
7、使用grafana展示,导入模板jvm-dashboard_rev17.json
模板下载地址:
 
8、简单修改模板配置
点击dashbord设置,修改$job的value为Artifactory-jmx

技术图片 技术图片

 9、Artifactory-JMX监控展示

 技术图片

技术图片

10、自定义artifactory指标监控

示例:添加监控存储库总大小(org_jfrog_artifactory_artifactory_artifactstotalsize)
技术图片
在grafana dashboard设置-->Variables中,添加如下内容:
Name:prop

Query:label_values(org_jfrog_artifactory_artifactory_artifactstotalsize{job="$job", instance="$instance"}, prop)
技术图片

技术图片

Add panel
技术图片

技术图片

修改自定义的图表展现形式
技术图片

技术图片

技术图片

完成!

1 -----------------------------------
2 温馨提示:
3 如果导入模板后无数据,需要填写正确的prometheus metric
4 比如编辑Query:
5 os_available_processors{job="$job",instance="$instance"}
6 改为prometheus metric中命名的即可
7 java_lang_operatingsystem_availableprocessors{job="$job",instance="$instance"}
8 -----------------------------------

技术图片

技术图片技术图片

技术图片

 

以上是关于Prometheus监控实践的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus配置文件

2019最新 prometheus视频教程 prometheus监控视频 prometheus入门与实践教程

2019最新 prometheus视频教程 prometheus监控视频 prometheus入门与实践教程

Prometheus监控的最佳实践——关于监控的3项关键指标

Prometheus监控的最佳实践——关于监控的3项关键指标

Prometheus+Grafana监控部署实践