54、Prometheus、Grafana部署
1、Prometheus-部署
1.1、准备软件
1.1.1、下载软件地址
prometheus https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz alertmanager https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz blackbox_exporter https://github.com/prometheus/blackbox_exporter/releases/download/v0.23.0/blackbox_exporter-0.23.0.linux-amd64.tar.gz mysqld_exporter https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz node_exporter https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz pushgateway【暂时没有用到】 https://github.com/prometheus/pushgateway/releases/download/v1.5.1/pushgateway-1.5.1.linux-amd64.tar.gz grafana https://dl.grafana.com/enterprise/release/grafana-enterprise-8.5.22.linux-amd64.tar.gz
1.1.2、开始下载软件
mkdir /data/{server,softs} -p && cd /data/softs wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.23.0/blackbox_exporter-0.23.0.linux-amd64.tar.gz wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz wget https://github.com/prometheus/pushgateway/releases/download/v1.5.1/pushgateway-1.5.1.linux-amd64.tar.gz wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.5.22.linux-amd64.tar.gz
1.2、安装prometheus
1.2.1、解压软件
mkdir /data/server/prometheus && tar xvf prometheus-2.43.0.linux-amd64.tar.gz -C /data/server/prometheus ln -s /data/server/prometheus-2.43.0.linux-amd64 /data/server/prometheus
1.2.2、配置文件解析
prometheus-server ~]# cat /data/server/prometheus/etc/prometheus.yml | grep -Ev '^#|^$' global: scrape_interval: 15s # 每15秒抓取一次。默认值为每1分钟 evaluation_interval: 15s # 每15秒评估一次规则。默认值为每1分钟 # scrape_timeout is set to the global default (10s). # 捉取的超时时间 alerting: # 指定 prometheus 将报警规则推送到指定的alertmanager 实例地址 alertmanagers: - static_configs: - targets: # - alertmanager:9093 rule_files: # prometheus 根据这些规则信息,会推送报警信息到alertmanager中。 # - "first_rules.yml" # - "second_rules.yml" scrape_configs: # 一个 scrape_config 片段指定一组目标和参数, 目标就是实例,指定采集的端点 # 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"] # 目前保持默认配置文件即可
1.2.3、环境变量配置
cat >/etc/profile.d/prometheus.sh<<'EOF' #!/bin/bash export PROMETHEUS_HOME=/data/server/prometheus export PATH=$PATH:${PROMETHEUS_HOME}/bin EOF source /etc/profile.d/prometheus.sh chmod +x /etc/profile.d/prometheus.sh
1.2.4、设置systemd
cat > /usr/lib/systemd/system/prometheus.service <<'EOF' [Unit] Description=prometheus server project After=network.target [Service] Type=simple ExecStart=/data/server/prometheus/bin/prometheus \ --config.file=/data/server/prometheus/etc/prometheus.yml \ --storage.tsdb.path=/data/server/prometheus/data Restart=on-failure [Install] WantedBy=multi-user.target EOF # 注意:其它的参数,我们可以基于prometheus --help 查看更多
1.2.5、启动服务
systemctl daemon-reload systemctl start prometheus.service systemctl status prometheus.service systemctl enable prometheus.service prometheus-server ~]# netstat -tunlp | grep -i prom tcp6 0 0 :::9090 :::* LISTEN 16825/prometheus
1.2.6、总结
Prometheus部署
- 软件解压、环境变量配置、配置文件修改、服务配置、启动服务
1.3、Prometheus-Web界面简介
1.3.1、访问:http://192.168.10.34:9090-Web页面报错的处理
报错信息:
Warning: Error fetching server time: Detected 23074.275000095367 seconds time difference between your browser and the server.
Prometheus relies on accurate time and time drift might cause unexpected query results. 原因:
由于数据的一致性原因,prometheus 所有的数据都是使用的 UTC 时间,所以我们默认打开的dashboard 中,可能会有这样一个警告,我们需要在查询的时候指定我们当前的时间才可以。 解决方法: 同步服务器的时间,刷新页面即可解决。 yum install ntpdate -y timedatectl set-timezone Asia/Shanghai cat >> /var/spool/cron/root <<'EOF' */1 * * * * /sbin/ntpdate ntp5.aliyun.com &>/dev/null EOF
1.3.2、Web界面菜单介绍
一级目录 Alerts # Prometheus的告警信息菜单 Graph # Prometheus的图形展示界面,这是prometheus默认访问的界面 Status # Prometheus的状态数据界面 Help # Prometheus的帮助信息界面 Status子菜单: Runtime & Build Information # 服务主机的运行状态信息及内部的监控项基本信息 TSDB Status # 时间序列数据库状态 Command-Line Flags # 启动时候从配置文件中加载的属性信息 Configuration # 配置文件的具体内容(yaml格式) Rules # 查询、告警、可视化等数据分析动作的规则记录 Targets # 监控的目标对象,包括主机、服务等以endpoint形式存在 Service Discovery # 自动发现的各种Targets对象列表
1.3.3、Graph-详细介绍
1.3.4、显示Graph图形
1.3.5、总结
界面简介
- 一级菜单、二级菜单、简单操作
2、Grafana-部署
2.1、简介
Grafana是一个开源的度量分析与可视化套件,它基于go语言开发。经常被用作基础设施的时间序列数据和应用程序分析的可视化,应用场景非常多。
Grafana不仅仅支持很多类型的时序数据库数据源,比如Graphite、InfluxDB、Prometheus、Elasticsearch等,虽然每种数据源都有独立的查询语言和能力,但是Grafana的查询编辑器支持所有的数 据源,而且能很好的支持每种数据源的特性。通过该查询编辑器可以对所有数据进行整合,而且还可以在同一个dashboard上进行综合展示。
尤其是Grafana最具特色的就是各种各样漂亮的可视化界面,在Grafana提供了各种定制好的,可以直接给各种软件直接使用的展示界面模板,我们可以在 https://grafana.com/dashboards/ 页面查询到我们想要的各种dashboard模板。
默认监听于TCP协议的3000端口,支持集成其他认证服务,且能够通过/metrics输出内建指标;
2.2、Grafana部署
2.2.1、解压安装
tar xvf grafana-enterprise-8.5.22.linux-amd64.tar.gz -C /data/server/ ln -s /data/server/grafana-8.5.22 /data/server/grafana mkdir /data/server/grafana/{data,log,plugins} -p
2.2.2、修改配置文件
# 修改配置文件 ]# vi /data/server/grafana/conf/sample.ini [paths] data = /data/server/grafana/data logs = /data/server/grafana/log plugins = /data/server/grafana/plugins
2.2.3、设置systemd
cat > /usr/lib/systemd/system/grafana.service << 'EOF' [Unit] Description=grafana Server After=network.target [Service] User=root Group=root Environment="grafana_home=/data/server/grafana" ExecStart=/bin/bash -c "${grafana_home}/bin/grafana-server \ -config ${grafana_home}/conf/sample.ini \ -homepath ${grafana_home}" ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID Restart=on-failure [Install] WantedBy=multi-user.target EOF
2.2.4、启动服务
systemctl daemon-reload systemctl start grafana prometheus-server ~]# netstat -tunlp | grep gra Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 :::3000 :::* LISTEN 17293/grafana-serve
2.2.5、配置环境变量
cat >/etc/profile.d/grafana.sh<<'EOF' #!/bin/bash export PROMETHEUS_HOME=/data/server/grafana export PATH=$PATH:${PROMETHEUS_HOME}/bin EOF source /etc/profile.d/grafana.sh chmod +x /etc/profile.d/grafana.sh
2.2.6、插件的安装
# 查询远程插件 grafana-cli plugins list-remote # 安装面板插件 grafana-cli plugins install grafana-piechart-panel # 查询已安装插件 grafana-cli plugins ls # 重启服务生效插件 systemctl restart grafana
2.2.7、浏览器访问
http://192.168.10.34:3000/ 默认帐号/密码 : admin/admin
2.2.8、重置密码
2.2.9、登陆成功-进入主页
3、prometheus、grafana结合
3.1、grafana增加prometheus数据源
3.1.1、配置数据源
3.1.2、增加数据源
3.1.3、选择prometheus的数据源
3.1.4、配置prometheus数据源地址
3.1.5、保存并且测试
3.1.6、查询配置完成的数据源
3.2、grafana导入dashboard模板
3.2.1、查询模板的地址
# 官网地址查询对应的显示模板 https://grafana.com/grafana/dashboards/ # 这里使用 https://grafana.com/grafana/dashboards/1860 注意: 选择dashboard的时候,一定要选择合适版本的否则会导致无法正常使用
3.2.2、选择导入
3.2.3、在线加载1860模板配置
3.2.4、给1860模板选择prometheus数据源并且导入
3.2.5、查询1860显示的模板
为什么没有显示具体数据图形,因为我们还没有安装node_exporter,后面我们安装后,再查询看看