Promethus-day1-普罗米修斯监控系统介绍

Promethus监控系统介绍

  • 能够安装prometheus服务器
  • 能够通过安装node_exporter监控远程linux
  • 能够通过安装mysqld_exporter监控远程mysql数据库
  • 能够安装grafana
  • 能够在grafana添加prometheus数据源
  • 能够在grafana添加监控cpu负载的图形
  • 能够在grafana图形显示mysql监控数据

概叙

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

img

时间序列数据

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

1.特点

  • 性能好

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

  • 成本低

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

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

2.特征

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

3.环境设置

名称ip主机名
Grafana172.23.213.43Grafana
Prometheus172.23.213.42prometheus

4.服务端部署

  • 服务端为k8s-master1
  • 从 https://prometheus.io/download/ 下载相应版本,安装到服务器上官网提供的是二进制版,解压就能用,不需要编译。
[root@k8s-master-01 opt]# wget https://github.com/prometheus/prometheus/releases/download/v2.25.0/prometheus-2.25.0.linux-amd64.tar.gz
[root@k8s-master1 ~]# tar xf prometheus-2.25.0.linux-amd64.tar.gz -C /usr/local/

5.启动

# 添加到环境变量
[root@k8s-master1 ~]# vim /etc/profile
export PROMETHEUS_HOME=/usr/local/prometheus-2.25.0.linux-amd64/
PATH=$PATH:$GO_HOME:$GO_ROOT:$GO_PATH:$GO_HOME/bin:$PROMETHEUS_HOME
[root@k8s-master1 ~]# source /etc/profile

# 启动
[root@k8s-master1 ~]# prometheus --config.file="/usr/local/prometheus-2.25.0/prometheus.yml" &

# 访问
http://192.168.12.11:9090/

6.测试连接

在浏览器上输入:http://ip:9090,出现如下页面及表示启动成功。
image-20210428193659048

默认只监控了本机一台,点Status -->Targets -->可以看到只监控了本机。
image-20210428193803002

通过http://服务器IP:9090/metrics可以查看到监控的数据,在web主界面可以通过关键字查询监控项

7.客户端部署

  • 客户端为jenkins、gitlab
  • 安装node_exporter组件
# 下载node包
[root@jenkins ~]# wget https://github.com/prometheus/node_exporter/releases/download/v1.1.1/node_exporter-1.1.1.linux-amd64.tar.gz

# 推到相应机器并解压
[root@jenkins packages]# tar xf node_exporter-1.1.1.linux-amd64.tar.gz -C /usr/local/
[root@gitlab packages]# tar xf node_exporter-1.1.1.linux-amd64.tar.gz -C /usr/local/
[root@jenkins ~]# ls /usr/local/node_exporter-1.1.1.linux-amd64/
LICENSE  node_exporter  NOTICE

# 启动客户端	# 可指定端口防止冲突(默认为9100)
[root@jenkins ~]# nohup /usr/local/node_exporter-1.1.1.linux-amd64/node_exporter &
[root@gitlab ~]# nohup /usr/local/node_exporter-1.1.1.linux-amd64/node_exporter ----web.listen-address=":9101" &

参数:
	--web.listen-address=":9100" 	#修改默认端口,防止冲突
	--web.telemetry-path="/metrics" #获取metric信息的url,默认是/metrics,若需要修改则通过此参数
    --log.level="info" 			    #设置日志级别
    --log.format="logger:stderr"     #设置打印日志的格式,若有自动化日志提取工具可以使用这个参数规范日志打印的格式

3、回到prometheus服务器的配置文件里添加被监控机器的配置段。

在主配置文件最后加上下面三行
  - job_name: 'agent01'
    static_configs:
      - targets: ['172.23.213.42:9100','172.23.213.43:9101']

改完配置文件后,重启服务
[root@k8s-master-01 opt]# pkill prometheus
[root@k8s-master-01 opt]# /usr/local/prometheus-2.25.0/prometheus --config.file="/usr/local/prometheus-2.25.0/prometheus.yml" &

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

8.监控MySQL

1)安装mysqld_exporter组件
  • 在被管理机agent1上安装mysqld_exporter组件
[root@jenkins ~]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
[root@jenkins ~]# tar xf packages/mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
[root@gitlab ~]# tar xf packages/mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/

[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 /usr/local/mysqld_exporter-0.12.1
[root@jenkins ~]# ll /usr/local/mysqld_exporter-0.12.1.linux-amd64/
总用量 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
2)安装mariadb
# 安装mariadb数据库,并授权
[root@jenkins ~]# yum install mariadb\* -y
[root@jenkins ~]# systemctl enable --now mariadb
[root@jenkins ~]# mysql
MariaDB [(none)]> grant select,replication client,process on *.* to mysql_monitor@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

# 普罗米修斯是通过mysql_exporter来找mariadb进行获取数据的,所以要给它授权(用户名可自定义,与.my.cnf对应)
# (注意:授权ip为localhost,因为不是prometheus服务器来直接找mariadb 获取数据,而是prometheus服务器找mysql_exporter,mysql_exporter 再找mariadb。所以这个localhost是指的mysql_exporter的IP)

# 创建一个mariadb配置文件,写上连接的用户名与密码(和上面的授权的用户名 和密码要对应)
[root@jenkins ~]# vim /usr/local/mysqld_exporter-0.12.1.linux-amd64/.my.cnf
[client]
user=mysql_monitor
password=123
port=30306

# 启动mysqld_exporter
[root@jenkins ~]# cd /usr/local/mysqld_exporter-0.12.1.linux-amd64
[root@jenkins mysqld_exporter-0.12.1.linux-amd64]# ./mysqld_exporter --config.my-cnf=.my.cnf

# 确认端口(9104)

# 回到prometheus服务器的配置文件里,添加被监控的mariadb的配置段
  - job_name: 'DevOps'
    static_configs:
    - targets: ["192.168.12.83:9100","192.168.12.82:9101"]
    
  - job_name: 'mysql'
    static_configs:
    - targets: ["192.168.12.83:9104"]
[root@k8s-master-01 opt]# pkill prometheus
[root@k8s-master-01 opt]# /usr/local/prometheus-2.25.0/prometheus --config.file="/usr/local/prometheus-2.25.0/prometheus.yml" &

Grafana

1.什么是Grafana

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

2.使用Grafana连接Prometheus

在grafana服务器上安装grafana。

[root@k8s-master-01 opt]# wget https://dl.grafana.com/oss/release/grafana-7.4.3-1.x86_64.rpm
[root@k8s-master-01 opt]# sudo yum install grafana-7.4.3-1.x86_64.rpm

# 启动服务
[root@k8s-master-01 opt]# systemctl enable --now grafana-server
[root@k8s-master1 ~]# cd /usr/local/grafana-7.4.3/ && grafana-server -config ./conf/defaults.ini &

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

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

3.Grafana图形显示MySQL监控数据

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

[root@k8s-master1 ~]# vim /usr/local/grafana-7.4.3/conf/defaults.ini
# 尾行新增插件库
[dashboards.json]
enabled = true
path= /var/lib/grafana/dashboards

# 创建目录
[root@k8s-master1 ~]# mkdir -p /var/lib/grafana/dashboards

# 克隆监控模板json到本地
[root@grafana grafana]# git clone https://github.com/percona/grafana-dashboards.git 

# 查看
[root@k8s-master1 ~]# ll packages/1/grafana-dashboards/dashboards/
total 9932
-rw-r--r-- 1 root root   24679 Apr 23 14:55 Advanced_Data_Exploration.json
-rw-r--r-- 1 root root   76839 Apr 23 14:55 CPU_Utilization_Details.json
-rw-r--r-- 1 root root  100017 Apr 23 14:55 Disk_Details.json
	···

# 复制监控模板json到grafana
[root@k8s-master1 ~]# cp -r packages/1/grafana-dashboards/dashboards/ /var/lib/grafana/

# 查看
[root@k8s-master1 ~]# ll /var/lib/grafana/dashboards/
total 9932
-rw-r--r-- 1 root root   24679 Apr 23 19:52 Advanced_Data_Exploration.json
-rw-r--r-- 1 root root   76839 Apr 23 19:52 CPU_Utilization_Details.json
-rw-r--r-- 1 root root  100017 Apr 23 14:55 Disk_Details.json
	···

# 重启grafana服务
[root@k8s-master1 ~]# cd /usr/local/grafana-7.4.3
[root@k8s-master1 grafana-7.4.3]# grafana-server -config conf/defaults.ini &       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋风お亦冷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值