prometheus的入门

一.介绍(https://prometheus.io)

Prometheus是一个开源监控系统,它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。
1.Prometheus的主要特性包括:
(1) 多维度数据模型
(2)灵活的查询语言
(3) 不依赖分布式存储,单个服务器节点是自治的
(4)通过服务(sd,准确的说是监控目标)发现或者静态配置,来发现目标服务对象
(5)支持多种多样的图表和界面展示,可以和Grafana集成
2.数据采集方式:
(1) Pull:通过HTTP协议定期去采集指标,只要被监控系统提供HTTP接口即可接入
(2) Push:被监控系统主动推送指标到网关,Prometheus定期从网关Pull
3.Prometheus包括以下组件:
(1)Prometheus Server:负责抓取和存储时间序列数据
(2)Push Gateway:推送网关,第三方可以推送数据到此网关,Prometheus Server再从此网关拉取数据
(3)多种导出工具,支持导出Graphite、StatsD等所需的格式
(4)命令行查询工具
(5)Alert Manager:告警管理器
(6)PromQL查询语言
4.架构图
在这里插入图片描述

二.安装

2.1.准备 (静态ip 可以上外网)
| 服务器 | ip地址 |
|prometheus- -|- 192.168.4.15- |
| 被监控服务器 | 192.168.4.20 |
| grafana服务器 | 192.168.4.21 |
1 mysqld_exporter 数据库采集插件
2 node_exporter 客户端采集插件
3 prometheus 监控主进程
4 grafana-dashboards 前端json文件
5 grafana 前端主进程
6 alertmanager 报警模块

2.2主机名

vim   /etc/hosts
192.168.4.15     server
192.168.4.20       agent
192.168.4.21      node1

2.3时间同步

yum  install -y ntpdate 
ntpdate time.windows.com

2.4关闭防火墙

systemctl stop firewalld

2.5安装

yum -y install go
[root@server prometheus-2.18.1.linux-amd64]# mv /prometheus-2.18.1.linux-amd64/  /data/prometheus
[root@server prometheus]# chown -R root:root /data/prometheus/
[root@server data]# ln -sv prometheus-2.18.1.linux-amd64 prometheus

#故障:

level=error ts=2020-05-21T14:26:42.090Z caller=main.go:758 err="opening storage failed: lock DB dire

¥解决方案:

rm -rf /usr/local/prometheus/data/lock

编译

[root@server prometheus]# ./prometheus --config.file="/data/prometheus/prometheus.yml" &
 ss -naltp |grep 9090
 tcp    LISTEN     0      128      :::9090                 :::*                   users:
 (("prometheus",pid=11010,fd=10))

浏览 http://192.168.4.15:9090
在这里插入图片描述
使用
promhttp_metric_handler_requests_total
promhttp_metric_handler_requests_total{code=“200”}
count(promhttp_metric_handler_requests_total) #计算返回时间序列的数量

2.6配置agent主机(192.168.4.20)
2.6.1安装node_exporter

[root@agent /]# tar -xf node_exporter-1.0.0-rc.1.linux-amd64.tar.gz 
[root@agent /]# mv node_exporter-1.0.0-rc.1.linux-amd64 /usr//local/node_export
[root@agent node_export]# cd /usr/local/

启动*

[root@agent local]# nohup  node_export/node_exporter &
[1] 12478
[root@agent local]# nohup: 忽略输入并把输出追加到"nohup.out"

在这里插入图片描述
状态

[root@agent local]# ss -nultp | grep 9100

在这里插入图片描述
在prometheus服务器上配置文件里面添加被监控机器的配置段
在这里插入图片描述
修改完了需要 pkill prometheus 重启
在这里插入图片描述
2.6.2.安装 mysql_exporter

[root@agent /]# tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz 
[root@agent /]# mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter
[root@agent /]# cd /usr/local/mysqld_exporter/
[root@agent mysqld_exporter]# 

需要安装mariadb或者mysql

[root@agent mysql]# yum -y  install  php  php-mysql  php-fpm
yum -y  install  mariadb  mariadb-devel  mariadb-server
mysql> grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述
启动

[root@agent mysqld_exporter]# nohup /usr/local/mysqld_exporter/mysqld_exporter   --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
nohup: 忽略输入并把输出追加到"nohup.out"

在这里插入图片描述
回到 prometheus
在这里插入图片描述
在这里插入图片描述

2.7安装Grafana可视化图形工具( https://grafana.com/)

2.7.1.安装grafana
在这里插入图片描述
状态

[root@node1 /]# ss -nutlp | grep 3000
tcp    LISTEN     0      128      :::3000                 :::*                   users:(("grafana-server",pid=24518,fd=8))

在这里插入图片描述
在这里插入图片描述
添加图形
在这里插入图片描述
各种功能
在这里插入图片描述
grafana图形显示MySQL监控数据
在21上

[root@node1 ~]# vim /etc/grafana/grafana.ini 
[dashboards.json]
enabled=true
path= /var/lib/grafana/dashboards

在这里插入图片描述

cd /var/lib/grafana/ 
git clone https://github.com/percona/grafana-dashboards.git 
[root@node1 grafana]# ls
grafana-dashboards  grafana.db  plugins  png  sessions
cp -r /var/lib/grafana/grafana-dashboards/dashboards/ /var/lib/grafana/ 
[root@node1 grafana]# ls
dashboards  grafana-dashboards  grafana.db  plugins  png  sessions

重启

3.和睿象云报警监控
网页打开睿象云,大致步骤如下:
在这里插入图片描述
4.prometheus和docker
用docker来安装prometheus,同时用prometheus监控docker容器内容。接下来玩一下docker。
4.1安装docker https://docs.docker.com/
下载
[root@agent docker]# ls
docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch (1).rpm
[root@agent docker]# yum -y install *.rpm
[root@agent docker]# systemctl start docker
[root@agent docker]# systemctl start docker
在这里插入图片描述
4.2docker安装prometheus(基础)
现在再介绍一种安装prometheus的方法。
(1)步骤

[root@agent docker]# mkdir prometheus
[root@agent docker]# chmod 777 -R prometheus/
[root@agent docker]# cd prometheus/
[root@agent prometheus]# touch prometheus.yml
[root@agent prometheus]# vim  prometheus.yml
[root@agent prometheus]# touch promgen.json
[root@agent prometheus]# vim promgen.json
[root@agent prometheus]# docker run --name prometheus --rm -d --net=host -v $(pwd)/prometheus:/etc/prometheus:rw  prom/prometheus:latest
Unable to find image 'prom/prometheus:latest' locally
latest: Pulling from prom/prometheus
0f8c40e1270f: Pull complete 
626a2a3fee8c: Pull complete 
1d2b10deda04: Pull complete 
bed362e99066: Pull complete 
955effcce2b9: Pull complete 
64f96eb6cfa4: Pull complete 
c7c7519b7d34: Pull complete 
a8f35dd0de56: Pull complete 
634cde5d4f5a: Pull complete 
ca853dc8025c: Pull complete 
59fab01f3d9d: Pull complete 
808f512dd238: Pull complete 
Digest: sha256:5880ec936055fad18ccee798d2a63f64ed85bd28e8e0af17c6923a090b686c3d
Status: Downloaded newer image for prom/prometheus:latest
e4994dcb06e7416d53bc19f645b3d87dc9c483f87c72c81b4ef068d0851ba732

(2)文件

[root@agent prometheus]# cat  prometheus.yml
global:
  scrape_interval:     15s  #设置抓取数据的时间间隔,间隔设置为每15秒一次。默认为每1分钟
  evaluation_interval: 15s  #设置规则刷新,每15秒刷新一次规则。默认值为每1分钟。
  scrape_timeout: 15s       #设定抓取数据的超时时间,默认为10s
  external_labels:
    cluster_name: 'promtheus'

rule_files:        # 报警规则文件
- "/etc/prometheus/promgen.rule.yml"

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - alertmanager:9093

scrape_configs:
  - job_name: 'promgen'
    file_sd_configs:
      - files:
        - "/etc/prometheus/promgen.json"

  - job_name: 'blackbox'
    metrics_path: /probe
    params:
    file_sd_configs:
      - files:
        - "/etc/prometheus/blackbox.json"
    relabel_configs:
      - source_labels: [__address__]
        regex: (.*)(:80)?
        target_label: __param_target
        replacement: ${1}
      - source_labels: [__param_target]
        regex: (.*)
        target_label: instance
        replacement: ${1}
      - source_labels: []
        regex: .*
        target_label: __address__
[root@agent prometheus]# cat  promgen.json
[
    {
        "labels": {
            "__farm_source": "promgen",
            "__metrics_path__": "/metrics",
            "__shard": "Default",
            "farm": "hosts",
            "job": "node-exporter",
            "project": "test-project",
            "service": "test-service"
        },
        "targets": [
            "192.168.4.20:9100",
            "192.168.4.21:9100"
        ]
    }
]

4.3基于docker容器部署Prometheus服务——云平台监控利器
Prometheus Server、Node Exporter、cAdvrisor、Grafana。
(1)各个组件的作用如下:
Prometheus Server:Prometheus服务的主服务器 ;
Node Exporter:收集Host硬件和操作系统的信息;
cAdvrisor:负责收集Host上运行的容器信息;
Grafana:用来展示Prometheus监控操作界面
4.3.1 node server

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值