Promethus部署与简介

Promethus(普罗米修斯)

Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。因为kubernetes(俗称k8s)的流行带动了prometheus的发展。

时间序列数据

时间序列数据(TimeSeries Data) : 按照时间顺序记录系统、设备状态变化的数据被称为时序数据。

特点

  • 性能好

    关系型数据库对于大规模数据的处理性能糟糕。NOSQL可以比较好的处理大规模数据,让依然比不上时间序列数据库。

  • 成本低

    高效的压缩算法,节省存储空间,有效降低IO

Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用3.5byte左右空间,上百万条时间序列,30秒间隔,保留60天,大概花了200多G(来自官方数据)

特征

  • 多维度数据模型
  • 灵活的查询语言
  • 不依赖分布式存储,单个服务器节点是自主的
  • 以HTTP方式,通过pull模型拉去时间序列数据
  • 也可以通过中间网关支持push模型
  • 通过服务发现或者静态配置,来发现目标服务对象
  • 支持多种多样的图表和界面展示

部署promethus

https://prometheus.io/

1、下载二进制包

从官网下载二进制包,部署到服务器上直接使用,无需编译

[root@promethus ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.25.0/prometheus-2.25.0.linux-amd64.tar.gz
[root@promethus ~]# tar -xf prometheus-2.25.0.linux-amd64.tar.gz 
[root@promethus ~]# ll
total 64732
-rw-------. 1 root root     1426 Nov 17 16:08 anaconda-ks.cfg
drwxr-xr-x  4 3434 3434      132 Feb 18 00:13 prometheus-2.25.0.linux-amd64
-rw-r--r--  1 root root 66280932 Feb 18 00:16 prometheus-2.25.0.linux-amd64.tar.gz
[root@promethus ~]# mv prometheus-2.25.0.linux-amd64 /usr/local/promethus-2-25.0

2、做软连接

[root@promethus local]# ln -s /usr/local/promethus-2-25.0 /usr/local/promethus

3、添加环境变量

[root@promethus ~]# vim /etc/profile
... ...
export PROMETHUS_HOME=/usr/local/promethus
PATH=$PATH:$PROMETHUS_HOME
export PATH

source /etc/profile

4、配置文件

[root@promethus promethus]# cat /usr/local/promethus/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:
      # - alertmanager:9093

#权限相关
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "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']

5、启动

[root@promethus promethus]# prometheus
	--config.file=#[指定配置文件]
	--web.listen-address="0.0.0.0:9090"#[默认监听端口]

[root@promethus promethus]# /usr/local/promethus/prometheus --config.file="/usr/local/promethus/prometheus.yml"

6、浏览器访问


promethus监控其他服务器

1、下载监控指标器

#到被监控服务器上,下载监控指标器
[root@k8s-master-01 ~]# cd /opt
[root@k8s-master-01 opt]# wget https://github.com/prometheus/node_exporter/releases/download/v1.1.1/node_exporter-1.1.1.linux-amd64.tar.gz

2、部署监控指标器

[root@k8s-master-01 opt]# tar -xf node_exporter-1.1.1.linux-amd64.tar.gz -C /usr/local/
[root@k8s-master-01 opt]# cd /usr/local/

3、执行

[root@k8s-master-01 ~]# nohup /usr/local/node_exporter-1.1.1.linux-amd64/node_exporter &

4、promethus监控端修改配置文件

[root@promethus promethus]# vim /usr/local/promethus/prometheus.yml
#添加以下内容
  - job_name: "k8s-master-01"	#给监控急服务器命名
    static_configs:
    - targets: ['192.168.15.31:9100']	#设置监控的IP与端口
    - targets: #[可以添加多个被监控端]

5、浏览器访问


promethus监控mysql

1、创建数据库

此处用k8s创建

kind: Deployment
apiVersion: apps/v1
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - name: mysql
          image: mysql:5.7
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: "123456"
---
kind: Service
apiVersion: v1
metadata:
  name: mysql
spec:
  ports:
    - port: 3306
      targetPort: 3306
      nodePort: 30306
  selector:
    app: mysql
  type: NodePort

2、下载监控Mysql的组件

[root@k8s-master-01 opt]# tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz
[root@k8s-master-01 opt]# mv mysqld_exporter-0.12.1.linux-amd64 mysqld_exporter-0.12.1
[root@k8s-master-01 opt]# mv mysqld_exporter-0.12.1 /usr/local/
[root@k8s-master-01 ~]# ll /usr/local/mysqld_exporter-0.12.1/
total 14484
-rw-r--r-- 1 3434 3434    11325 Jul 29  2019 LICENSE
-rwxr-xr-x 1 3434 3434 14813452 Jul 29  2019 mysqld_exporter
-rw-r--r-- 1 3434 3434       65 Jul 29  2019 NOTICE

3、mysql新建监控用户

[root@k8s-master-01 ~]# kubectl exec -it mysql-56f8cdb464-hzsdb -- bash
root@mysql-56f8cdb464-hzsdb:/# mysql -p
Enter password:123456
mysql> grant select,replication client,process ON *.* to 'mysql_monitor'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4、编写配置文件

[root@k8s-master-01 mysqld_exporter-0.12.1]# pwd
/usr/local/mysqld_exporter-0.12.1
[root@k8s-master-01 mysqld_exporter-0.12.1]# vim .my.cnf
[client]
user=mysql_monitor
password=123456
port=30306

5、开始监控

[root@k8s-master-01 mysqld_exporter-0.12.1]# ./mysqld_exporter --config.my-cnf=".my.cnf"
INFO[0000] Starting mysqld_exporter (version=0.12.1, branch=HEAD, revision=48667bf7c3b438b5e93b259f3d17b70a7c9aff96)  source="mysqld_exporter.go:257"
INFO[0000] Build context (go=go1.12.7, user=root@0b3e56a7bc0a, date=20190729-12:35:58)  source="mysqld_exporter.go:258"
INFO[0000] Enabled scrapers:                             source="mysqld_exporter.go:269"
INFO[0000]  --collect.global_status                      source="mysqld_exporter.go:273"
INFO[0000]  --collect.global_variables                   source="mysqld_exporter.go:273"
INFO[0000]  --collect.slave_status                       source="mysqld_exporter.go:273"
INFO[0000]  --collect.info_schema.innodb_cmp             source="mysqld_exporter.go:273"
INFO[0000]  --collect.info_schema.innodb_cmpmem          source="mysqld_exporter.go:273"
INFO[0000]  --collect.info_schema.query_response_time    source="mysqld_exporter.go:273"
INFO[0000] Listening on :9104

6、修改promethus服务器的配置文件

[root@promethus promethus]# vim prometheus.yml
... ...
  - job_name: 'mysql'
    static_configs:
    - targets: ['192.168.15.31:9104']

7、浏览器访问

posted @ 2022-10-16 21:21  大胡萝卜没有须  阅读(186)  评论(0)    收藏  举报