Prometheus部署,操作,及Grafana展示

Prometheus部署,操作,及Grafana展示_第1张图片

目录

 一,部署prometheus (192.168.135.195)

1,环境准备工作

2,普罗米修斯的部署

2.1 上传prometheus到、opt目录中,解压

 2.2 修改配置文件

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

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

​编辑

 二,部署Exporters(192.168.135.90)

1,监控远程Linux主机192.168.135.90

1.1上传node_exporter到opt目录中,并且解压

1.2 启动node_exporter

 1.3 修改prometheus服务器的配置文件

 1.5 访问prometheus服务器

2,监控远程mysql

配置Prometheus获取监控数据

三、部署Grafana进行展示

1、下载安装Grafana(192.168.135.112)

2,配置数据源

 3,导入模板

 4、为数据源做数据展示

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

 7、Grafana+onealert报警

 7.2 测试CPU负载告警

四、总结


 

 一,部署prometheus (192.168.135.195)

1,环境准备工作

服务器类型 IP地址 组件
prometheus服务器 192.168.135.195 prometheus,node_exporter
mysql服务器 192.168.135.91 mysql——exporter和mariadb
agent服务器 192.168.135.90 node-exporter
agent服务器 192.168.135.113 node-exporter
Grafana服务器 192.168.135.112 Grafana

2,普罗米修斯的部署

prometheus下载地址:

https://prometheus.io/download/

2.1 上传prometheus到、opt目录中,解压

[root@docker1195 ~]#cd /opt/
[root@docker1195 opt]#ls
apache  containerd  cpu.sh  cxk  docker-compose  harbor  nginx
[root@docker1195 opt]#rz -E
rz waiting to receive.
[root@docker1195 opt]#ls
apache      cpu.sh  docker-compose  nginx
containerd  cxk     harbor          prometheus-2.27.1.linux-amd64.tar.gz
[root@docker1195 opt]#tar zxvf prometheus-2.27.1.linux-amd64.tar.gz 

[root@docker1195 opt]#ls
apache      cxk             nginx
containerd  docker-compose  prometheus-2.27.1.linux-amd64
cpu.sh      harbor          prometheus-2.27.1.linux-amd64.tar.gz
[root@docker1195 opt]#mv prometheus-2.27.1.linux-amd64 /usr/local/prometheus
[root@docker1195 opt]#cd /usr/local/prometheus/
[root@docker1195 prometheus]#ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool
[root@docker1195 prometheus]#


Prometheus部署,操作,及Grafana展示_第2张图片

 2.2 修改配置文件

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: ["localhost:9090"]

Prometheus部署,操作,及Grafana展示_第3张图片

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

[root@prometheus prometheus]# 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

Prometheus部署,操作,及Grafana展示_第4张图片

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

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

Prometheus部署,操作,及Grafana展示_第5张图片

Prometheus部署,操作,及Grafana展示_第6张图片

 Prometheus部署,操作,及Grafana展示_第7张图片

 通过http:// 192.168.135.195/metrics 可以查看到监控的数据:

Prometheus部署,操作,及Grafana展示_第8张图片

 二,部署Exporters(192.168.135.90)

1,监控远程Linux主机192.168.135.90

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

下载地址

https://prometheus.io/download/

1.1上传node_exporter到opt目录中,并且解压

cd /opt/
tar xf node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin

Prometheus部署,操作,及Grafana展示_第9张图片

1.2 启动node_exporter

./node_exporter
 
netstat -natp | grep :9100
 
浏览器访问:http://192.168.109.20:9100/metrics ,可以看到 Node Exporter 采集到的指标数据

Prometheus部署,操作,及Grafana展示_第10张图片

 Prometheus部署,操作,及Grafana展示_第11张图片

 1.3 修改prometheus服务器的配置文件

vim /usr/local/prometheus/prometheus.yml
  - job_name: 'aaaaa90'
      static_configs:
      - targets: ['192.168.135.90:9100']

Prometheus部署,操作,及Grafana展示_第12张图片

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

Prometheus部署,操作,及Grafana展示_第13张图片

 1.5 访问prometheus服务器

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

Prometheus部署,操作,及Grafana展示_第14张图片

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

2,监控远程mysql

在 192.168.135.91上安装 mysqld_exporter组件

mysqld_exporter 是 Prometheus 的 MySQL 指标导出插件。Github 地址:GitHub - prometheus/mysqld_exporter: Exporter for MySQL server metrics。这里来演示它的部署。

Prometheus部署,操作,及Grafana展示_第15张图片

tar -xvf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local
mv mysqld_exporter-0.14.0.linux-amd64/ mysqld_exporter

Prometheus部署,操作,及Grafana展示_第16张图片

在mysql中创建监控用户,并赋权

create user 'exporter'@'localhost'  IDENTIFIED BY '123456';
GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'exporter'@'localhost';

Prometheus部署,操作,及Grafana展示_第17张图片

 为mysqld_exporter 创建个配置文件

vim /usr/local/mysqld_exporter/mysqld_exporter.cnf
[client]
​
user=exporter
​
password=123456

启动组件

nohup /usr/local/mysqld_exporter/mysqld_exporter  --config.my-cnf=/usr/local/mysqld_exporter/mysqld_exporter.cnf &

Prometheus部署,操作,及Grafana展示_第18张图片

 浏览器访问一下默认端口为9104

Prometheus部署,操作,及Grafana展示_第19张图片

 这样就启动成功了

配置Prometheus获取监控数据

在Prometheus的配置文件中添加node_exporter 和 mysqld_exporter 的配置

Prometheus部署,操作,及Grafana展示_第20张图片

 然后重启一下

Prometheus部署,操作,及Grafana展示_第21张图片

 看到新增的被监控节点,就是说明配置成功

会主界面搜索 MySQL 相关参数,比如:mysql_global_variables_auto_increment_increment

Prometheus部署,操作,及Grafana展示_第22张图片

三、部署Grafana进行展示

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

下载地址

https://grafana.com/grafana/download/

1、下载安装Grafana(192.168.135.112)

#使用yum解决依赖关系  我这边直接上传软件包到opt
yum install -y grafana-7.4.0-1.x86_64.rpm
或
rpm -ivh /opt/grafana-7.3.6-1.x86_64.rpm
 
systemctl start grafana-server
systemctl enable grafana-server
 
netstat -natp | grep :3000
 
浏览器访问:http://192.168.109.19:3000 ,默认账号和密码为 admin/admin

Prometheus部署,操作,及Grafana展示_第23张图片

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

Prometheus部署,操作,及Grafana展示_第24张图片

2,配置数据源

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

Prometheus部署,操作,及Grafana展示_第25张图片

 Prometheus部署,操作,及Grafana展示_第26张图片

 Prometheus部署,操作,及Grafana展示_第27张图片

 Prometheus部署,操作,及Grafana展示_第28张图片

 3,导入模板

点击prometheus_data,选择Dashboards

Prometheus部署,操作,及Grafana展示_第29张图片

 Prometheus部署,操作,及Grafana展示_第30张图片

 Prometheus部署,操作,及Grafana展示_第31张图片

 Prometheus部署,操作,及Grafana展示_第32张图片

 4、为数据源做数据展示

Prometheus部署,操作,及Grafana展示_第33张图片

 Prometheus部署,操作,及Grafana展示_第34张图片

 Prometheus部署,操作,及Grafana展示_第35张图片

 自定义名称,点击保存

最后在dashboard可以查看到 

 Prometheus部署,操作,及Grafana展示_第36张图片

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

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

Prometheus部署,操作,及Grafana展示_第37张图片

 Prometheus部署,操作,及Grafana展示_第38张图片

 Prometheus部署,操作,及Grafana展示_第39张图片

 Prometheus部署,操作,及Grafana展示_第40张图片

 Prometheus部署,操作,及Grafana展示_第41张图片

 Prometheus部署,操作,及Grafana展示_第42张图片

 Prometheus部署,操作,及Grafana展示_第43张图片

 Prometheus部署,操作,及Grafana展示_第44张图片

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

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

Prometheus部署,操作,及Grafana展示_第45张图片

 

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

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

Prometheus部署,操作,及Grafana展示_第46张图片

 Prometheus部署,操作,及Grafana展示_第47张图片

 Prometheus部署,操作,及Grafana展示_第48张图片

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

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

 7、Grafana+onealert报警

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

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

Prometheus部署,操作,及Grafana展示_第50张图片

 Prometheus部署,操作,及Grafana展示_第51张图片

 Prometheus部署,操作,及Grafana展示_第52张图片

 Prometheus部署,操作,及Grafana展示_第53张图片

 Prometheus部署,操作,及Grafana展示_第54张图片

 Prometheus部署,操作,及Grafana展示_第55张图片

 7.2 测试CPU负载告警

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

Prometheus部署,操作,及Grafana展示_第56张图片

 Prometheus部署,操作,及Grafana展示_第57张图片

 Prometheus部署,操作,及Grafana展示_第58张图片

 Prometheus部署,操作,及Grafana展示_第59张图片

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

Prometheus部署,操作,及Grafana展示_第60张图片

  最终的邮件报警效果: 

Prometheus部署,操作,及Grafana展示_第61张图片Prometheus部署,操作,及Grafana展示_第62张图片

 

四、总结

报警不成功的可能原因

  1. 各服务器之间时间不同步,这样时序数据会出问题,也会造成报警出问题
  2. 必须写通知内容,留空内容是不会发报警的
  3. 修改完报警配置后,记得要点右上角的保存
  4. 保存配置后,需要由 OK 状态变为 alerting 状态才会报警(也就是说,你配置保存后,就已经是 alerting 状态是不会报警的)
  5. grafana 与 onealert 通信有问题
     

 

你可能感兴趣的:(云原生,运维,prometheus,grafana,运维)