一、环境准备与安全隔离
1.1 创建专用运行账户
监控系统应采用独立用户运行以增强安全性,建议创建无登录权限的系统账户:
# 创建非交互式用户并设置目录权限sudo useradd --no-create-home --system --shell /sbin/nologin prometheussudo mkdir -p /etc/prometheus/{config,rules} /var/lib/prometheus/{data,wal}sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
关键设计说明:
/etc/prometheus/config:主配置文件目录/etc/prometheus/rules:告警规则存储/var/lib/prometheus/wal:预写日志目录/var/lib/prometheus/data:时序数据存储
1.2 依赖环境检查
确认系统满足以下基础条件:
- Linux内核版本 ≥ 3.10
- 可用磁盘空间 ≥ 50GB(生产环境建议)
- 内存配置 ≥ 4GB(根据监控目标数量调整)
- 网络防火墙开放端口:9090(Prometheus)、3000(Grafana)
二、核心组件安装部署
2.1 Prometheus二进制安装
采用官方预编译包进行安装:
# 下载并解压安装包cd /optexport VERSION=3.5.0wget https://dl.cdn.example.com/prometheus-${VERSION}.linux-amd64.tar.gztar -xzf prometheus-*.tar.gzmv prometheus-${VERSION}.linux-amd64 prometheus# 安装核心组件sudo cp prometheus/prometheus prometheus/promtool /usr/local/bin/sudo cp -r prometheus/console_libraries prometheus/consoles /etc/prometheus/
版本管理建议:
- 使用环境变量管理版本号
- 保留原始压缩包作为备份
- 创建符号链接便于升级:
ln -s /opt/prometheus /usr/local/prometheus
2.2 Grafana安装配置
通过包管理器安装最新稳定版:
# Ubuntu/Debian系统sudo apt-get install -y adduser libfontconfig1wget https://dl.grafana.com/oss/release/grafana_12.0.0_amd64.debsudo dpkg -i grafana_*.deb# CentOS/RHEL系统sudo yum install -y initscripts fontconfigwget https://dl.grafana.com/oss/release/grafana-12.0.0-1.x86_64.rpmsudo rpm -ivh grafana-*.rpm
存储配置优化:
- 修改
/etc/grafana/grafana.ini中的[paths]段:[paths]data = /var/lib/grafanalogs = /var/log/grafanaplugins = /var/lib/grafana/pluginsprovisioning = /etc/grafana/provisioning
三、服务管理配置
3.1 Systemd服务单元
创建Prometheus服务文件/etc/systemd/system/prometheus.service:
[Unit]Description=Prometheus Time Series DatabaseAfter=network.target[Service]User=prometheusGroup=prometheusType=simpleExecStart=/usr/local/bin/prometheus \--config.file=/etc/prometheus/prometheus.yml \--storage.tsdb.path=/var/lib/prometheus/data \--storage.tsdb.retention.time=30d \--web.console.templates=/etc/prometheus/consoles \--web.console.libraries=/etc/prometheus/console_librariesRestart=on-failureRestartSec=5s[Install]WantedBy=multi-user.target
Grafana服务配置/etc/systemd/system/grafana-server.service:
[Unit]Description=Grafana instanceAfter=network.target[Service]User=grafanaGroup=grafanaType=notifyExecStart=/usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pidRestart=on-failureRestartSec=5s[Install]WantedBy=multi-user.target
3.2 日志管理方案
推荐使用journald进行日志集中管理:
# 修改服务文件添加日志配置systemctl edit prometheus.service# 添加以下内容:[Service]StandardOutput=syslogStandardError=syslogSyslogIdentifier=prometheus# 配置日志轮转cat > /etc/logrotate.d/prometheus <<EOF/var/log/prometheus/*.log {weeklymissingokrotate 4compressdelaycompressnotifemptycreate 640 prometheus adm}EOF
四、初始配置与验证
4.1 Prometheus基础配置
编辑/etc/prometheus/prometheus.yml:
global:scrape_interval: 15sevaluation_interval: 15sscrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']- job_name: 'node'static_configs:- targets: ['localhost:9100']
验证配置语法:
promtool check config /etc/prometheus/prometheus.yml
4.2 Grafana初始化
启动服务后执行初始设置:
# 启动服务sudo systemctl daemon-reloadsudo systemctl start prometheus grafana-serversudo systemctl enable prometheus grafana-server# 获取初始密码(根据实际安装方式调整)sudo grafana-cli admin reset-admin-password --homepath "/usr/share/grafana" newpassword
访问管理界面:
- 地址:
http://<服务器IP>:3000 - 默认凭证:admin/newpassword(建议立即修改)
五、生产环境优化建议
5.1 高可用架构
- 部署联邦集群:使用
--cluster.*参数配置 - 对象存储集成:配置
--storage.tsdb.path指向分布式存储 - 告警多副本:配置多个Alertmanager实例
5.2 安全加固
- 启用TLS加密:修改
web.config部分 - 配置基本认证:使用Nginx反向代理
- 定期更新:设置自动更新脚本
5.3 性能调优
关键参数调整示例:
# prometetheus.yml片段global:scrape_timeout: 10s# 命令行参数--storage.tsdb.retention.size=512MB # 磁盘使用限制--web.max-connections=1024 # 并发连接数--query.max-samples=50000000 # 查询样本限制
六、常见问题处理
6.1 启动失败排查
- 检查服务状态:
systemctl status prometheus - 查看日志:
journalctl -u prometheus -f - 验证配置文件:
promtool check config
6.2 数据持久化问题
- 确保
/var/lib/prometheus有足够空间 - 检查文件系统权限:
ls -ld /var/lib/prometheus - 验证WAL目录完整性:
ls /var/lib/prometheus/wal/
6.3 Grafana面板不显示数据
- 检查数据源配置
- 验证查询语句语法
- 确认时间范围选择正确
通过以上步骤,读者可以完成从基础安装到生产环境优化的完整监控系统部署。建议根据实际业务需求调整配置参数,并定期进行健康检查和性能监控。