prometheus+grafana应用监控配置

配置Prometheus

官方地址:Download | Prometheus

(wegt下载压缩包,解压并重命名prometheus,文件放于/data/prometheus即可)

配置 service方法(文件放于 /etc/systemd/system/prometheus.service):

[Unit]

Description=Prometheus Server

Documentation=https://prometheus.io/docs/introduction/overview/

After=network-online.target

[Service]

Type=simple

User=prometheus
Group=prometheus

ExecStart=/data/prometheus/prometheus/prometheus \
  --config.file=/data/prometheus/prometheus/prometheus.yml \
  --storage.tsdb.path=/data/prometheus/prometheus/data \
  --storage.tsdb.retention.time=60d \
  --web.enable-lifecycle


Restart=on-failure

[Install]

WantedBy=multi-user.target

授权给用户 prometheus

# 创建用户 -M 不创建源目录 -s 指定 shell
useradd -M -s /usr/sbin/nologin prometheus

# 赋权
chown prometheus:prometheus -R /data/prometheus

启动运行并检查状态

# 启动
systemctl start prometheus.service

# 检查
systemctl status prometheus.service

# 开启自启动
systemctl enable prometheus.service

# 修改单元文件,重新加载systemd配置 
sudo systemctl daemon-reload

# 检查日志方法
journalctl -u prometheus.service -f

重新加载 prometheus

# -X  指定 POST 请求
curl -X POST http://localhost:9090/-/reload  

访问web地址9090:

# ip:9090 访问
prometheus    http://xxx.xxx.xxx.xxx:9090 

监控指标       http://xxx.xxx.xxx.xxx:9090/metrics

配置 alertmanager

配置文件

[Unit]

Description=Alert Manager

Wants=network-online.target
After=network-online.target

[Service]

Type=simple

User=prometheus
Group=prometheus

ExecStart=/data/prometheus/alertmanager/alertmanager \
  --config.file=/data/prometheus/alertmanager/alertmanager.yml \
  --storage.path=/data/prometheus/prometheus/data \


Restart=always

[Install]

WantedBy=multi-user.target

访问:web端口9093

配置alert服务器告警提示:

root@pass:~# cat /data/prometheus/prometheus/alert.yml

groups:
- name: Prometheus alert
  rules:
  - alert: 服务告警
    expr: up == 0
    for: 30s
    labels:
        severity: critical
    annotations:
        instance: "{{ $labels.instance }}"
        description: "{{ $labels.job }} 服务器"

访问web检查:

检查yml文件配置方法promtool工具:

root@pass:~# cd /data/prometheus/prometheus/
root@pass:/data/prometheus/prometheus# ./promtool check config prometheus.yml
Checking prometheus.yml
  SUCCESS: 1 rule files found
 SUCCESS: prometheus.yml is valid prometheus config file syntax

Checking alert.yml
  SUCCESS: 1 rules found

配置grafana

下载地址:Download Grafana | Grafana Labs

配置service文件:

[Unit]
Description=Grafana server

Documentation=http://docs.grafana.org
 
[Service]
Type=simple
User=prometheus
Group=prometheus
Restart=on-failure
ExecStart= /data/prometheus/grafana/bin/grafana-server \
	--config=/data/prometheus/grafana/conf/defaults.ini \
	--homepath=/data/prometheus/grafana

[Install]
WantedBy=multi-user.target

访问web端口3000:(默认账号及密码admin/admin)

配置node_exporter

下载地址同Prometheus

配置service文件:

[Unit]
Description=node_exporter

Documentation=http://prometheus.io/

After=network.target
 
[Service]
User=prometheus
Group=prometheus
Restart=on-failure
ExecStart= /data/prometheus/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target

访问web端口9100

最后注意记得配置时将需要的配置到Prometheus.yml中:

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
            - localhost:9093 
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  - "alert.yml"
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
       
  - job_name: "node-exporter"
    scrape_interval: 15s
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
        labels:
             instance: Prometheus服务器

web页面展示

手动创建仪表板:官方地址 Grafana dashboards | Grafana Labs

复制需要的ID ,然后导入到granafa图表中即可

第一步:

第二步:

第三步:

展示结果:

相关推荐
武子康2 天前
大数据-218 Prometheus 插件 exporter 与 pushgateway 配置使用 监控服务 使用场景
大数据·hive·hadoop·flink·spark·prometheus
管理大亨2 天前
K8S之Prometheus 部署(二十)
docker·kubernetes·prometheus
ID_云泽3 天前
使用docker部署Prometheus和Grafana去监控mysql和redis
运维·grafana·prometheus·性能监控
福大大架构师每日一题4 天前
30.1 时序数据库TSDB的典型特点
prometheus
聆听--风雨5 天前
多client向同一个pushgateway推送指标被覆盖问题
prometheus
川石课堂软件测试6 天前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
逻辑与&&7 天前
[Prometheus学习笔记]从架构到案例,一站式教程
笔记·学习·prometheus
Walden-20207 天前
构建基于 DCGM-Exporter, Node exporter,PROMETHEUS 和 GRAFANA 构建算力监控系统
docker·容器·grafana·prometheus
牛角上的男孩8 天前
部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio
grafana·prometheus·istio
福大大架构师每日一题9 天前
文心一言 VS 讯飞星火 VS chatgpt (383)-- 算法导论24.5 3题
prometheus