tag 标签: Prometheus

相关博文
  • 热度 5
    2024-3-6 12:10
    882 次阅读|
    0 个评论
    要在Docker中持久化Prometheus数据,您可以使用Docker卷(Volume)或Docker Compose来配置数据持久化。以下是使用Docker卷实现Prometheus数据持久化的步骤: 创建一个Docker卷来存储Prometheus数据。您可以使用以下命令创建一个名为prometheus-data的卷: bash 复制代码 docker volume create prometheus-data 运行Prometheus容器时,将Prometheus的数据目录挂载到该卷上。您可以使用-v参数将宿主机的目录或Docker卷挂载到容器内的目录。以下是一个示例命令,将prometheus-data卷挂载到容器内的/prometheus目录: bash 复制代码 docker run -p 9090:9090 -v prometheus-data:/prometheus prom/prometheus 这样,Prometheus将在容器内的/prometheus目录中存储数据,而该目录将映射到宿主机上的prometheus-data卷。 配置Prometheus以使用持久化存储。默认情况下,Prometheus只能存储15天的数据。要配置持久化存储,您需要在Prometheus的配置文件中设置storage.local.retention参数。该参数指定了数据保留的时间长度。例如,要将数据保留一周,您可以将该参数设置为168h。 如果您使用的是Docker容器,则可以通过在启动容器时传递配置参数来配置Prometheus。例如,以下命令将启动一个Prometheus容器,并将数据保留时间设置为一周: bash 复制代码 docker run -p 9090:9090 -v prometheus-data:/prometheus -e STORAGE_LOCAL_RETENTION=168h prom/prometheus 请注意,上述命令中的-e参数用于设置环境变量STORAGE_LOCAL_RETENTION,该环境变量将覆盖Prometheus默认的配置值。 这样,当您重新启动Prometheus容器时,它将从持久化存储中加载数据,并继续记录新的监控数据。 请注意,上述步骤是一个基本的示例,您可以根据您的实际需求进行进一步的配置和调整。此外,如果您使用Docker Compose来管理多个容器,您可以在docker-compose.yml文件中配置卷和环境变量,以简化Prometheus的部署和配置过程。
相关资源
  • 所需E币: 0
    时间: 2024-2-22 17:05
    大小: 3.06KB
    一、Prometheus的概念和发展史Prometheus是一个开源的完整监控解决方案,本文将从指标抓取到查询及可视化展示,以及最后的监控告警,对Prometheus做一个基本的认识。Prometheus发展速度很快,12年开发完成,16年加入CNCF,成为继K8s之后第二个CNCF托管的项目,目前Github42k的,而且社区很活跃,维护频率很高,基本稳定在1个月1个小版本的迭代速度。二、Prometheus的特点多维数据模型:由度量名称和键值对标识的时间序列数据时序数据,是在一段时间内通过重复测量(measurement)而获得的观测值的集合;将这些观测值绘制于图形之上,它会有一个数据轴和一个时间轴;服务器指标数据、应用程序性能监控数据、网络数据等也都是时序数据;1.内置时间序列(pimeseries)数据库:Prometheus;外置的远端存储通常会用:InfluxDB、openTsDB等2.promQL一种灵活的查询语言,可以利用多维数据完成复杂查询3.基于HTTP的pull(拉取)方式采集时间序列数据4.同时支持PushGateway组件收集数据5.通过服务发现或者静态配置,来发现目标服务对象6.支持作为数据源接入Grafana三、Prometheus优势易于管理:Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等);唯一需要的就是本地磁盘,因此不会有潜在级联故障的风险。强大的查询语言PromQL:Prometheus内置一个强大的数据查询语言PromQL,通过PromQL可以实现对监控数据的查询、聚合。同时PromQL也被应用于数据可视化(如Grafana)以及告警中。高效:对于监控系统而言,大量的监控任务必然导致有大量的数据产生。而Prometheus可以高效的处理这些数据。可扩展:Prometheus支持联邦集群,可以让多个Prometheus实例产生一个逻辑集群;当单实例Prometheus处理的任务量过大时,通过使用功能分区(sharding)+联邦集群(federation)可以对其进行扩展。易于集成:目前官网提供了多种语言的客户端SDK,基于这些SDK可以快速让应用程序纳入到监控系统中,同时还支持与其它的监控系统集成。可视化:PrometheusServer自带一个UI,通过这个UI可以方便对数据进行查询和图形化展示;同时还可以对接Grafana可视化工具展示精美监控指标。四、服务注册被监控服务在Prometheus中是一个Job存在,被监控服务的所有实例在Prometheus中是一个target的存在,所以被监控服务的注册就是在Prometheus中注册一个Job和其所有的target,这个注册分为:静态注册动态注册静态注册:静态的将服务的IP和抓取指标的端口号配置在Prometheusyaml文件的scrape_configs配置下scrape_configs: -job_name:"prometheus"  static_configs:  -targets:["localhost:9090"]以上就是注册了一个名为prometheus的服务,这个服务下有一个实例,暴露的抓取地址是localhost:9090 动态注册:动态注册就是在Prometheusyaml文件的scrape_configs配置下配置服务发现的地址和服务名,Prometheus会去该地址,根据你提供的服务名动态发现实例列表,在Prometheus中,支持consul,DNS,文件,K8s等多种服务发现机制。基于consul的服务发现:-job_name:"node_export_consul"  metrics_path:/node_metrics  scheme:http  consul_sd_configs:   -server:localhost:8500    services:     -node_exporter我们consul的地址就是:localhost:8500,服务名是node_exporter,在这个服务下有一个exporter实例:localhost:9600五、Prometheus实战教程:监控mysql数据库安装mysql数据库上传mysql安装包到指定目录下,并创建dataetctmplog目录tar-zxvfmysql-5.7.31.tar.gzcdmysql-5.7.31mkdirdataetctmplog上传my.cnf,修改本地路径后、端口号等,进行保存[mysqld]server_id=2binlog_format=Mixedread_rnd_buffer_size=128Mfederatedbasedir=/app/mysql/mysql-5.7.31        ######################重要!按实际目录配置datadir=/app/mysql/mysql-5.7.31/data           #######################重要!按实际目录配置socket =/app/mysql/mysql-5.7.31/tmp/mysql-5308.sock           ##################按安装目录名+sock,统一放置于/tmp下init_connect='SETcollation_connection=utf8_general_ci'init_connect='SETNAMESutf8'character-set-server=utf8collation-server=utf8_general_ciskip-character-set-client-handshakelower_case_table_names=1max_connections=1000wait_timeout=180sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESport=5308           #######################重要!按实际目录配置#skip-grant-tables#default_authentication_plugin=mysql_native_passwordtmp_table_size=512Mevent_scheduler=1join_buffer_size=512Mlog_bin_trust_function_creators=1read_rnd_buffer_size=32Msort_buffer_size=64Minnodb_buffer_pool_size=2048Minnodb_log_file_size=64Minnodb_file_per_table=1innodb_flush_log_at_trx_commit=1innodb_log_buffer_size=256Mkey_buffer_size=256Mread_buffer_size=32Mmax_allowed_packet=100Mmax_heap_table_size=256M#binlog_expire_logs_seconds=432#query_cache_size=512M`[client]default-character-set=utf8port=5308               #################################根据实际修改[mysql]default-character-set=utf8[mysql.server]user=mysql               #############################在哪个用户下安装就是哪个log-err#loglog-slow-querieslog-update