Prometheus+Node_exporter+Grafana详细安装
安装Prometheus
Prometheus用Golang实现,因此具有天然可移植性(支持Linux、Windows、macOS和Freebsd)。这里直接使用预编译的二进制文件部署,开箱即用。
wget https://github.com/prometheus/prometheus/releases/download/v1.6.3/prometheus-1.6.3.linux-amd64.tar.gz tar xzvf prometheus-1.6.3.linux-amd64.tar.gz mv prometheus-1.6.3.linux-amd64 /usr/local/prometheus
验证是否安装成功
cd /usr/local/prometheus ./prometheus --version
prometheus, version 1.6.3 (branch: master, revision: c580b60c67f2c5f6b638c3322161bcdf6d68d7fc) build user: root@e54b06e0b22f build date: 20170519-08:00:43 go version: go1.8.1
配置Prometheus
在prometheus目录下有一个名为prometheus.yml
的主配置文件。其中包含大多数标准配置及prometheus的自检控配置,默认配置文件如下:(这个配置下面我们 需要创建一个添加配置的文件)
vi /usr/local/prometheus/prometheus.yml
# 全局配置
global:
scrape_interval: 15s # 默认抓取间隔, 15秒向目标抓取一次数据。
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# 这个标签是在本机上每一条时间序列上都会默认产生的,主要可以用于联合查询、远程存储、Alertmanger时使用。
external_labels:
monitor: 'codelab-monitor'
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first.rules"
# - "second.rules"
# 这里就表示抓取对象的配置
# 这里是抓去promethues自身的配置
scrape_configs:
- job_name: 'node'
file_sd_configs:
- refresh_interval: 10s
files:
- "/usr/local/prometheus/sd_config/*.yml"
添加被监控主机信息前 我们先创建主机信息的配置文件
mkdir /usr/local/prometheus/sd_config
vi /usr/local/prometheus/sd_config/node.yml
添加被监控主机信息
- targets: - localhost:9100 labels: app: manager instance: openeuler service: node_exporter - targets: - localhost:9090 labels: app: node1 instance: openeuler service: node_exporter
之后就不用重启了,更改node.yml配置文件就可以实现发现主机了
创建用户
这里单独创建一个专门用于运行prometheus的用户,不用root运行程序是一种好习惯。
groupadd prometheus useradd -g prometheus -m -d /var/lib/prometheus -s /sbin/nologin prometheus
创建Systemd服务
vi /etc/systemd/system/prometheus.service [Unit] Description=prometheus After=network.target [Service] Type=simple User=prometheus ExecStart=/usr/local/prometheus/prometheus -config.file=/usr/local/prometheus/prometheus.yml -storage.local.path=/var/lib/prometheus Restart=on-failure [Install] WantedBy=multi-user.target
启动Prometheus
systemctl start prometheus
验证Prometheus是否启动成功
systemctl status prometheus
● prometheus.service - prometheus Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2017-05-22 11:13:36 CST; 18s ago Main PID: 9175 (prometheus) Tasks: 9 Memory: 15.8M CPU: 207ms CGroup: /system.slice/prometheus.service └─9175 /usr/local/prometheus/prometheus -config.file=/usr/local/prometheus/prometheus.yml -storage.local.path=/var/lib/prometheus
访问自带Web 自带Web默认在http://ip:9090
http://ip:9090/metrics
可以查看从exporter中能具体抓到哪些数据。
服务端安装过程有监控目标主机一样 请参考下面的安装方式
重启Prometheus
systemctl restart prometheus
访问Prometheus Web,在Status->Targets页面下,我们可以看到我们配置的两个Target,它们的State为UP。
被监控的主机上安装
被监控端下载安装Node exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local cd /usr/local mv node_exporter-1.3.1.linux-amd64/ node_exporter groupadd prometheus #创建用户组 useradd -g prometheus -s /sbin/nologin prometheus #创建用户禁止登录 chown -Rf prometheus:prometheus /usr/local/node_exporter #更改权限
配置服务
vi /usr/lib/systemd/system/node_exporter.service Description= node_exporter Documentation=https://prometheus.io After=network.target [Service] Type=simple User=prometheus ExecStart=/usr/local/node_exporter/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target
让配置生效,重起服务
systemctl daemon-reload #加载systemd
systemctl restart node_exporter
web页面 输入IP:9100 出现下列数据就对了
http://被监控端IP:9100/metrics 可以查看到node_exporter在被监控端收集的监控信息,回到prometheus服务器的配置文件里添加被监控机器的配置段
给Prometheus添加一个强大的仪表盘
Grafana安装
这里以OpenEuler, Red Hat, CentOS, RHEL, Fedora为例安装
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.5.5-1.x86_64.rpm sudo yum install grafana-enterprise-8.5.5-1.x86_64.rpm
其它系统可在这里下载:https://grafana.com/grafana/download
启动Grafana
systemctl start grafana-server
查看Grafana是否启动成功
systemctl status grafana-server
● grafana-server.service - Grafana instance Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; masked; vendor preset: enabled) Active: active (running) since Mon 2017-05-22 14:57:29 CST; 49min ago Docs: http://docs.grafana.org Main PID: 21735 (grafana-server) CGroup: /system.slice/grafana-server.service └─21735 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile= cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins
访问Grafana
通过http://ip:3000
访问Grafana Web界面(缺省帐号/密码为admin/admin)
在Grafana中添加Prometheus数据源
Name:Prometheus Type:Prometheus Url:http://localhost:9090/ Access:proxy
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~