Prometheus部署、操作及Grafana展示、告警

目录

一、部署Prometheus

1、环境准备工作

2、普罗米修斯的部署

2.1 上传prometheus安装包并解压

2.2 修改配置文件 

2.3 配置系统启动文件,设置开机自启 

2.4 开启prometheus,并访问网页验证

二、部署Exporters

1、远程监控linux主机

1.1 上传node_exporter安装包

1.2 配置启动文件,设置开机自启

1.3 启动node_exporter

1.4 修改Prometheus服务器的配置文件 (静态配置发现)

1.5 访问prometheus服务器

2、监控远程MySQL

2.1 下载或上传mysqld_exporter组件

2.2 安装mysqld_exporter组件

2.3 安装mysql数据库,并授权 

2.4 创建一个mysqld_exporter配置文件

2.5 配置开机启动文件,启动mysql_exporter 

2.6 修改Prometheus服务器的配置文件

2.7 访问prometheus服务器

3、启动多个node_exporter

3.1 在prometheus服务配置prometheus.yml文件

3.2  在第一个node_exporter服务上操作

3.3 在第2台node_exporter服务上操作并开启

3.4 网页浏览查看监控

三、部署Grafana进行展示

1、下载安装Grafana

2、配置数据源

3、导入模板

4、为数据源做数据展示 

5、导入grafana监控面板 

6、Grafana 图形显示 MySQL 监控数据

7、Grafana+onealert报警

7.1 在Grafana中配置Webhook URL

         7.2、测试cpu负载告警


一、部署Prometheus

1、环境准备工作

服务器类型 IP地址 组件
Prometheus 服务器 192.168.100.20 Prometheus、node_exporter
grafana 服务器 192.168.100.30 Grafana
agent 服务器 192.168.100.40 node_exporter

2、普罗米修斯的部署

prometheus下载地址:

https://prometheus.io/download/

2.1 上传prometheus安装包并解压

mkdir /mnt/prometheus

cd /mnt/prometheus

上传安装包prometheus-2.39.1.linux-amd64.tar.gz

tar zxf prometheus-2.39.1.linux-amd64.tar.gz  解压

ls

mv prometheus-2.39.1.linux-amd64 /usr/local/prometheus 添加到环境中

ls /usr/local/prometheus/

Prometheus部署、操作及Grafana展示、告警_第1张图片

2.2 修改配置文件 

cd /usr/local/prometheus/

cp prometheus.yml prometheus.yml.bak  备份

cat /usr/local/prometheus/prometheus.yml | grep -v "^#"
global:                    #用于prometheus的全局配置,比如采集间隔,抓取超时时间等
  scrape_interval: 15s            #采集目标主机监控数据的时间间隔,默认为1m
  evaluation_interval: 15s         #触发告警生成alert的时间间隔,默认是1m
  # scrape_timeout is set to the global default (10s).
  scrape_timeout: 10s            #数据采集超时时间,默认10s
 
alerting:                #用于alertmanager实例的配置,支持静态配置和动态服务发现的机制
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093
 
rule_files:                #用于加载告警规则相关的文件路径的配置,可以使用文件名通配机制
  # - "first_rules.yml"
  # - "second_rules.yml"
 
scrape_configs:            #用于采集时序数据源的配置
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: "prometheus"        #每个被监控实例的集合用job_name命名,支持静态配置(static_configs)和动态服务发现的机制(*_sd_configs)
 
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
 
    static_configs:                #静态目标配置,固定从某个target拉取数据
      - targets: ["192.168.100.20:9090"]   

Prometheus部署、操作及Grafana展示、告警_第2张图片

2.3 配置系统启动文件,设置开机自启 

第一种启动

vim /usr/lib/systemd/system/prometheus.service 

[Unit]      #服务单元
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target    #依赖关系

[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \  #配置文件
--storage.tsdb.path=/usr/local/prometheus/data/ \   #数据目录
--storage.tsdb.retention=15d \   #保存时间
--web.enable-lifecycle  #开机热加载

ExecReload=/bin/kill -HUP $MAINPID   #重载
Restart=on-failure 
[Install]
WantedBy=multi-user.target

第二种启动

cd /usr/local/prometheus

./prometheus

Prometheus部署、操作及Grafana展示、告警_第3张图片

2.4 开启prometheus,并访问网页验证

systemctl start prometheus
systemctl enable prometheus
 
netstat -natp | grep :9090
 
浏览器访问:http://192.168.100.20:9090 ,访问到 Prometheus 的 Web UI 界面
点击页面的 Status -> Targets,如看到 Target 状态都为 UP,说明 Prometheus 能正常采集到数据
http://192.168.100.20:9090/metrics ,可以看到 Prometheus 采集到自己的指标数据

Prometheus部署、操作及Grafana展示、告警_第4张图片

Prometheus部署、操作及Grafana展示、告警_第5张图片

Prometheus部署、操作及Grafana展示、告警_第6张图片通过 http:// 服务器 IP:9090/metrics 可以查看到监控的数据: 

Prometheus部署、操作及Grafana展示、告警_第7张图片

Prometheus部署、操作及Grafana展示、告警_第8张图片Prometheus部署、操作及Grafana展示、告警_第9张图片Prometheus部署、操作及Grafana展示、告警_第10张图片

二、部署Exporters

1、远程监控linux主机

在远程 linux 主机(被监控端 agent)上安装 node_exporter 组件。

下载地址: 

https://prometheus.io/download/

1.1 上传node_exporter安装包

cd /mnt

mkdir prometheus.node_exporter 

cd prometheus.node_exporter/

上传安装包 node_exporter-1.4.0.linux-amd64.tar.gz

tar zxf node_exporter-1.4.0.linux-amd64.tar.gz 解压

cd node_exporter-1.4.0.linux-amd64/ 

ls

mv node_exporter /usr/local/bin/  添加到环境

ls /usr/local/bin/

Prometheus部署、操作及Grafana展示、告警_第11张图片

1.2 配置启动文件,设置开机自启

vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
 
[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat
 
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

Prometheus部署、操作及Grafana展示、告警_第12张图片

1.3 启动node_exporter

第一种开启

systemctl start node_exporter

systemctl enable node_exporter

netstat -natp | grep :9100

第二种开启

cd /usr/local/bin/

./node_exporter  

Prometheus部署、操作及Grafana展示、告警_第13张图片

通过浏览器访问 http:// 被监控端 IP:9100/metrics 就可以查看到 node_exporter 在被监控端收集的监控信息:

Prometheus部署、操作及Grafana展示、告警_第14张图片

1.4 修改Prometheus服务器的配置文件 (静态配置发现)

回到 Prometheus 服务器的配置文件里添加被监控机器的配置段

vim /usr/local/prometheus/prometheus.yml   追加3行
  - job_name: 'agent'
    static_configs:
    - targets: ['192.168.100.30:9100']

Prometheus部署、操作及Grafana展示、告警_第15张图片

1.5 访问prometheus服务器

回到 web 管理界面→点 Status→点 Targets→可以看到多了一台监控目标

Prometheus部署、操作及Grafana展示、告警_第16张图片

Prometheus部署、操作及Grafana展示、告警_第17张图片

注:也可以在本机安装 node_exporter,使用上面的方式监控本机。

2、监控远程MySQL

在被管理机 agent上安装 mysqld_exporter 组件

下载地址:https://prometheus.io/download/

2.1 下载或上传mysqld_exporter组件

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz

2.2 安装mysqld_exporter组件

mkdir prometheus.mysql_exporter

cd prometheus.mysql_exporter/

tar zxf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
ls /usr/local/mysqld_exporter-0.12.1.linux-amd64/


Prometheus部署、操作及Grafana展示、告警_第18张图片

2.3 安装mysql数据库,并授权 

第一种

没有安装mysql的可以下载轻量数据库

yum install mariadb\* -y

第二种

登录之前安装好的数据库

进行授权

create user 'mysql_exporter'@'localhost' identified by '123456';

grant select,replication client,process on *.* to 'mysql_exporter'@'localhost';

Prometheus部署、操作及Grafana展示、告警_第19张图片

2.4 创建一个mysqld_exporter配置文件

创建一个mysqld_exporter配置文件,写上连接的用户名和密码(和上面的授权的用户名和密码要对应)

vim /usr/local/mysqld_exporter-0.12.1.linux-amd64/.my.cnf 

[client]
user=mysql_exporter
password=123456

Prometheus部署、操作及Grafana展示、告警_第20张图片

2.5 配置开机启动文件,启动mysql_exporter 

启动 mysql_exporter 

第一种启动

nohup /usr/local/mysqld_exporter-0.12.1.linux-amd64/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter-0.12.1.linux-amd64/.my.cnf & 后台运行

netstat -natp | grep 9104

第二种启动

cd /usr/local/

 mv mysqld_exporter-0.12.1.linux-amd64/ mysqld_exproter

vim /usr/lib/systemd/system/mysqld_exporter.service 

[Unit]
Description=mysqld_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/mysqld_exporter  \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target

Prometheus部署、操作及Grafana展示、告警_第21张图片

Prometheus部署、操作及Grafana展示、告警_第22张图片

2.6 修改Prometheus服务器的配置文件

回到 Prometheus 服务器的配置文件里添加被监控的 mariadb 的配置段

vim /usr/local/prometheus/prometheus.yml
 - job_name: 'agent_mariadb'
   static_configs:
   - targets: ['192.168.100.30:9104']  

改完配置文件之后,重启服务

 systemctl restart prometheus.service 
[root@gang2 mnt]#netstat -natp | grep 9090

Prometheus部署、操作及Grafana展示、告警_第23张图片

2.7 访问prometheus服务器

回到 web 管理界面→点 Status→点 Targets→可以看到监控 mysql

Prometheus部署、操作及Grafana展示、告警_第24张图片

Prometheus部署、操作及Grafana展示、告警_第25张图片

3、启动多个node_exporter

3.1 在prometheus服务配置prometheus.yml文件

vim /usr/local/prometheus/prometheus.yml

注释

#  - job_name: 'agent'
#    static_configs:
#    - targets: ['192.168.100.30:9100']

追加

- job_name: 'nodes'
    static_configs:
    - targets:
      - 192.168.100.30:9100
      - 192.168.100.40:9100

Prometheus部署、操作及Grafana展示、告警_第26张图片

systemctl restart prometheus.service 
netstat -natp | grep 9090

3.2  在第一个node_exporter服务上操作

cd /mnt/prometheus.node_exporter/node_exporter-1.4.0.linux-amd64/

scp node_exporter [email protected]:/mnt/prometheus.node_exporter/

提前在第二个node_exporter服务上创建好目录 /mnt/prometheus.node_exporter/

systemctl start node_exporter.service   开启

Prometheus部署、操作及Grafana展示、告警_第27张图片

3.3 在第2台node_exporter服务上操作并开启

cd /mnt/

mkdir prometheus.node_exporter

cd prometheus.node_exporter/

ls

./node_exporter 开启

netstat -natp | grep 9100

Prometheus部署、操作及Grafana展示、告警_第28张图片

Prometheus部署、操作及Grafana展示、告警_第29张图片

3.4 网页浏览查看监控

http://192.168.100.20:9090/

Prometheus部署、操作及Grafana展示、告警_第30张图片

三、部署Grafana进行展示

Grafana 是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警。

下载地址

Download Grafana | Grafana Labs

1、下载安装Grafana

#使用yum解决依赖关系  我这边直接上传软件包到opt
yum install -y grafana-7.4.0-1.x86_64.rpm 或
mkdir /mnt/grafana

cd /mnt/grafana

上传安装包
rpm -ivh /opt/grafana-7.3.6-1.x86_64.rpm 解压
 
systemctl start grafana-server
systemctl enable grafana-server
netstat -natp | grep :3000

#账号密码默认为admin,admin
grafana默认配置文件目录 /etc/grafana/grafana.ini
浏览器访问:http://192.168.109.19:3000 ,默认账号和密码为 admin/admin

Prometheus部署、操作及Grafana展示、告警_第31张图片

Prometheus部署、操作及Grafana展示、告警_第32张图片

通过浏览器访问 http:// grafana 服务器 IP:3000 就到了登录界面,使用默认的 admin 用户,admin 密码就可以登陆了。

 Prometheus部署、操作及Grafana展示、告警_第33张图片

2、配置数据源

下面我们把 Prometheus 服务器收集的数据做为一个数据源添加到 grafana,让 grafana 可以得到 Prometheus 的数据。

Prometheus部署、操作及Grafana展示、告警_第34张图片

Prometheus部署、操作及Grafana展示、告警_第35张图片Prometheus部署、操作及Grafana展示、告警_第36张图片Prometheus部署、操作及Grafana展示、告警_第37张图片

3、导入模板

点击prometheus_data,选择Dashboards

Prometheus部署、操作及Grafana展示、告警_第38张图片

Prometheus部署、操作及Grafana展示、告警_第39张图片Prometheus部署、操作及Grafana展示、告警_第40张图片

4、为数据源做数据展示 

Prometheus部署、操作及Grafana展示、告警_第41张图片  

Prometheus部署、操作及Grafana展示、告警_第42张图片Prometheus部署、操作及Grafana展示、告警_第43张图片

 自定义名称,点击保存

最后在dashboard可以查看到 

Prometheus部署、操作及Grafana展示、告警_第44张图片

Prometheus部署、操作及Grafana展示、告警_第45张图片

 注:有多条数据的时候,可以在查询的键值后面加个大括号,括号里的条件表示只匹配当前的监控项。 

5、导入grafana监控面板 

 浏览器访问:https://grafana.com/grafana/dashboards ,在页面中搜索 node exporter ,选择适合的面板,点击 Copy ID 或者 Download JSON
 
在 grafana 页面中,+ Create -> Import ,输入面板 ID 号或者上传 JSON 文件,点击 Load,即可导入监控面板

 Prometheus部署、操作及Grafana展示、告警_第46张图片

Prometheus部署、操作及Grafana展示、告警_第47张图片

Prometheus部署、操作及Grafana展示、告警_第48张图片Prometheus部署、操作及Grafana展示、告警_第49张图片Prometheus部署、操作及Grafana展示、告警_第50张图片Prometheus部署、操作及Grafana展示、告警_第51张图片

6、Grafana 图形显示 MySQL 监控数据

在 grafana 上修改配置文件,并下载安装 mysql 监控的 dashboard(包含相关 json 文件,这些 json 文件可以看作是开发人员开发的一个监控模板)。

vim /etc/grafana/grafana.ini  追加

[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards

git clone https://github.com/percona/grafana-dashboards.git 

cp -r grafana-dashboards/dashboards/ /var/lib/grafana/
systemctl restart grafana-server.service 

在grafana图形化界面导入相关的json文件

用grafana服务器上的firefox浏览器打开,方便上传

 提前把文件放桌面Prometheus部署、操作及Grafana展示、告警_第52张图片

Prometheus部署、操作及Grafana展示、告警_第53张图片

Prometheus部署、操作及Grafana展示、告警_第54张图片

Prometheus部署、操作及Grafana展示、告警_第55张图片

点 import 导入后,报 prometheus 数据源找不到,因为这些 json 文件里默认要找的就是叫 Prometheus 的数据源,但我们前面建立的数据源却是叫 prometheus_data。

那么请自行把原来的 prometheus_data 源改名为 Prometheus 即可(注意:第一个字母 P 是大写)。然后再回去刷新一下,就有数据了。
Prometheus部署、操作及Grafana展示、告警_第56张图片

7、Grafana+onealert报警

Prometheus 报警需要使用 alertmanager 这个组件,而且报警规则需要手动编写(对运维来说不友好)。所以我这里选用 grafana+onealert 报警。注意:实现报警前把所有机器时间同步再检查一遍。

登陆http://www.onealert.com/→注册帐户→登入后台管理

Prometheus部署、操作及Grafana展示、告警_第57张图片

Prometheus部署、操作及Grafana展示、告警_第58张图片

Prometheus部署、操作及Grafana展示、告警_第59张图片Prometheus部署、操作及Grafana展示、告警_第60张图片Prometheus部署、操作及Grafana展示、告警_第61张图片Prometheus部署、操作及Grafana展示、告警_第62张图片Prometheus部署、操作及Grafana展示、告警_第63张图片

7.1 在Grafana中配置Webhook URL

① 在Grafana中创建Notification channel,选择类型为Webhook;

② 推荐选中Send on all alerts和Include image,Cloud Alert体验更佳;

③ 将第一步中生成的Webhook URL填入Webhook settings Url;

URL格式:
http://api.aiops.com/alert/api/event/grafana/v1/3ebae767310c43cdaa3cd680013d0f19/ (保存当前应用,即可获取完整webhook地址信息)

④ Http Method选择POST;

⑤ Send Test&Save;

Prometheus部署、操作及Grafana展示、告警_第64张图片Prometheus部署、操作及Grafana展示、告警_第65张图片Prometheus部署、操作及Grafana展示、告警_第66张图片

7.2、测试cpu负载告警

现在可以去设置一个报警来测试了(这里以我们前面加的 cpu 负载监控来做测试)

#查看cpu占用率
 

(1- ((sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by(instance)) / (sum(increase(node_cpu_seconds_total[1m])) by(instance))))*100

Prometheus部署、操作及Grafana展示、告警_第67张图片Prometheus部署、操作及Grafana展示、告警_第68张图片Prometheus部署、操作及Grafana展示、告警_第69张图片Prometheus部署、操作及Grafana展示、告警_第70张图片

保存后就可以测试了,如果 agent1上的 cpu 负载还没有到 0.3,你可以试试 0.2,或者运行一些程序把 agent1负载调大。

Prometheus部署、操作及Grafana展示、告警_第71张图片

Prometheus部署、操作及Grafana展示、告警_第72张图片

QQ发来的报警如下图

Prometheus部署、操作及Grafana展示、告警_第73张图片

 睿象云也会爆出此问题

Prometheus部署、操作及Grafana展示、告警_第74张图片Prometheus部署、操作及Grafana展示、告警_第75张图片 

你可能感兴趣的:(prometheus,linux,1024程序员节,prometheus,grafana)