Docker学习笔记十三:Docker安装Prometheus监控Linux系统、MySQL数据库

介绍

Prometheus介绍

  • 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。
  • 基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控,输出被监控组件信息的HTTP接口被叫做exporter。

  

安装Prometheus

下载

  • 命令:docker pull prom/prometheus:latest
  • 说明:安装可参考Docker  Hub官网说明的镜像的用法

 

安装

创建容器

  • a、准备“prometheus.yml”配置文件
    • 说明:如下配置文件可供复制,配置文件内容可根据需要添加相应配置
    • 配置:prometheus获取对应的exporter信息,都可以在该配置文件中配置新的“job_name”,配置文件之后需要重启服务,并保证对应的“exporter”服务监听启动成功。
# 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: ['192.168.6.9:9090']
View Code

  • b、创建映射目录
    • 命令:mkdir prometheus
    • 说明:创建了映射目录之后,可以将“prometheus.yml”文件放在该目录下

  • c、创建容器
docker run -d \
--name prometheus \
-p 9090:9090 \
--privileged=true \
-v /opt/docker_data/prometheus/:/data \
-e TZ=Asia/Shanghai \
prom/prometheus:latest --config.file=/data/prometheus.yml

# docker run:运行并启动容器
# -d:在后台运行容器,并输出容器ID
# --name:设置容器的名称
# -p 9090:9090:容器的9090端口映射宿主机9090端口(程序访问端口)
# --privileged=true:可选配置,目录映射时避免出现权限问题
# -v:设置"宿主机目录:容器目录"映射位置
# -e:设置时区、mysql的密码
# 执行安装的镜像信息,格式:名称:标签(REPOSITORY:TAG)

访问页面

  • prometheus默认的端口是9090,访问web页面查看对应的标签规则。如:http://xxxx.xxx.xxx.xxx:9090

 

常用exporter介绍 

  • node_exporter
    • 说明:收集Linux系统数据,默认端口号9100
    • 下载1:https://prometheus.io/download/#node_exporter
    • 下载2:https://github.com/prometheus/node_exporter/releases
  • mysql_exporter
    • 说明:收集MySQL数据库数据,默认端口号9104
    • 下载:https://prometheus.io/download/#mysqld_exporter
  • ...

 

使用node_exporter监控服务器

解压压缩包

tar -zxvf node_exporter-1.9.1.linux-amd64.tar.gz

创建服务文件

# 创建服务文件
vim /usr/lib/systemd/system/node_exporter.service

编辑文件内容

[Unit]
Description=node_exporter

[Service]
ExecStart=/opt/prometheus_exporter/node_exporter/node_exporter
ExecReload=/bin/ki11 -HUP $MAINPID
Ki1lMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

设置开机自启动

# 设置开机自启动
systemctl status node_exporter

# 关闭开机自启动
systemctl disable node_exporter

# 查看服务状态
systemctl status node_exporter

修改prometheus配置文件

  进入到prometheus目录下,修改prometheus.yml文件,添加监控的内容,并重启prometheus服务(docker方式安装重启命令:docker restat prometheus),如下:

scrape_configs:
  # 任务名称
  - job_name: 'linux'
    static_configs:
      # node_exporter监控地址
      - targets: ['192.168.6.121:9100'] 

granfana添加prometheus数据源

grafana导入模板

  • 进入grafana输入模板序号:16323,获取面板如下:

 

使用mysql_node_exporter监控服务器

解压压缩包

tar -zxvf mysqld_exporter-0.17.2.linux-amd64.tar.gz

创建配置文件

  在解压文件下创建配置文件my.cof,设置连接数据库信息,如:/opt/prometheus_exporter/mysqld_exporter/my.cnf

[client]
# 配置ip地址
host=192.168.6.219
# 配置端口号
port=3306    
# 配置用户名
user=testdb
# 配置密码
password=testdb

创建服务文件

# 创建服务文件
vim /etc/systemd/system/mysqld_exporter.service

编辑文件内容

  --web.listen-address=:9104,用于指定启动的端口,若不指定则使用默认的9104端口。(注:设置了端口之后,注意防火墙端口要开发,否则无法连接服务)

[Unit]
Description=Prometheus MySQL Exporter
After=network.target

[Service]
Type=simple
ExecStart=/opt/mysqld_exporter/mysqld_exporter --config.my-cnf=/opt/mysqld_exporter/my.cnf --web.listen-address=:13305
Restart=on-failure

[Install]
WantedBy=multi-user.target

设置开机自启动

# 设置开机自启动
systemctl status mysqld_exporter

# 关闭开机自启动
systemctl disable mysqld_exporter

# 查看服务状态 
systemctl status mysqld_exporter

修改prometheus配置文件

  进入到prometheus目录下,修改prometheus.yml文件,添加监控的内容,并重启prometheus服务(docker方式安装重启命令:docker restat prometheus),如下:

scrape_configs:
  # 配置监控MySQL服务器
  - job_name: '192.168.6.219-mysql'
    static_configs:
      - targets: ['192.168.6.219:13305']
        labels:
          mysql: 192.168.6.219-数据库

granfana添加mysql数据源

grafana导入模板

  • 进入grafana输入模板序号:7362,获取面板如下:

 

 

 

 
 
 
posted @ 2022-12-20 17:25  零下一度的微笑  阅读(1144)  评论(0)    收藏  举报