一、CentOS系统基础环境准备
在开始部署Prometheus之前,必须确保CentOS系统满足基本运行要求。推荐使用CentOS 7或8版本,系统需配置至少2GB内存和20GB磁盘空间。需要更新系统软件包:yum update -y
,安装必要的依赖组件如wget和tar。考虑到Prometheus默认使用9090端口,需要确保防火墙放行该端口:firewall-cmd --permanent --add-port=9090/tcp
。对于生产环境,建议配置SELinux策略或临时将其设置为permissive模式。这些基础工作将为后续Prometheus的顺利运行奠定坚实基础。
二、Prometheus核心组件安装与配置
Prometheus的安装可以通过直接下载预编译二进制包或使用容器化部署。本文采用二进制方式,从官网下载最新稳定版:wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
。解压后目录中包含prometheus主程序和promtool配置检查工具。关键的配置文件prometheus.yml定义了监控目标和采集规则,初始配置应包含对Prometheus自身的监控。通过systemd创建服务单元文件可以确保服务自动启动,配置中需要特别注意scrape_interval(采集间隔)和evaluation_interval(规则评估间隔)参数的合理设置。
三、Node Exporter系统指标采集配置
Node Exporter是收集主机级指标的标准组件,需要部署在所有被监控节点上。安装过程与Prometheus类似,下载解压后运行./node_exporter
即可启动服务,默认监听9100端口。在Prometheus配置文件中添加新的job来采集这些指标:scrape_configs: - job_name: 'node' static_configs: - targets: ['localhost:9100']
。Node Exporter提供了丰富的系统指标,包括CPU、内存、磁盘、网络等使用情况。对于特定需求,可以通过--collector参数启用或禁用特定采集器,禁用内存统计:--no-collector.meminfo
。
四、服务发现与动态监控配置
在大型环境中,静态配置监控目标效率低下,Prometheus支持多种服务发现机制。对于运行在CentOS上的Kubernetes集群,可以配置kubernetes_sd_configs实现自动发现;对于传统服务,可以使用file_sd_configs通过JSON文件动态更新目标列表。Consul服务发现也是常见选择,配置示例:scrape_configs: - job_name: 'consul-services' consul_sd_configs: - server: 'localhost:8500'
。合理的relabel_config配置可以优化指标标签,将__meta_consul_service标签转换为更易读的service标签。这种动态发现机制大大简化了大规模环境的监控管理。
五、指标存储与持久化配置
Prometheus默认将监控数据存储在本地TSDB(时间序列数据库)中,在CentOS上需要确保数据目录有足够空间。通过--storage.tsdb.path参数可以指定自定义存储位置,建议使用高性能SSD存储。对于长期数据存储,可以配置remote_write将数据发送到VictoriaMetrics或Thanos等远程存储系统。重要的retention参数控制数据保留时间,生产环境通常设置为30d或更长:--storage.tsdb.retention.time=30d
。定期监控TSDB状态指标如prometheus_tsdb_head_samples_appended_total可以帮助评估系统健康状态。
六、告警规则与Alertmanager集成
完整的监控系统需要告警功能,Prometheus通过Alertmanager实现多通道告警分发。在Prometheus配置中定义告警规则文件:rule_files: - 'alert.rules'
,配置alertmanager.yml指定邮件、Slack等通知方式。典型的CPU告警规则示例:groups: - name: example rules: - alert: HighCpuUsage expr: 100 - (avg by(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m])) 100) > 90 for: 5m labels: severity: critical
。Alertmanager还支持告警抑制、分组和静默等高级功能,这些配置都需要在CentOS环境中进行适当调整以适应实际需求。