服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 运维监控系统之Prometheus-MySQL监控

运维监控系统之Prometheus-MySQL监控

2020-12-30 00:11今日头条linux运维菜 Linux

Prometheus 是一个开源的服务监控系统和时间序列数据库。本文主要为大家介绍运维监控系统之Prometheus-MySQL监控,有需要的朋友可以参考下

 简介

mysqld_exporter是用于获取mysql实例的指标服务。

运维监控系统之Prometheus-MySQL监控

安装

运维监控系统之Prometheus-MySQL监控

mysql授权

CREATE USER exporter@localhost identified by "mima"

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost' WITH MAX_USER_CONNECTIONS 3; 

flush privileges

直接通过命令下载就可以了。

wget -t 1000 -c https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz 

tar zxvf  mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /opt/ 

cd /opt/mysqld_exporter-0.12.1.linux-amd64 

export DATA_SOURCE_NAME='exporter:mima@(localhost:3306)/' 

./mysqld_exporter 

这里设置用户名密码是通过环境变量的形式,也可以用配置文件,默认找的配置文件是~/.my.cnf,也可以使用参数--config.my-cnf="/opt/mysqld_exporter/.my.cnf" 进行设置。

./mysqld_exporter --config.my-cnf="/opt/mysqld_exporter/.my.cnf" 

其他参数

usage: mysqld_exporter [<flags>] 

 

Flags: 

  -h, --help                   Show context-sensitive help (also try --help-long and --help-man). 

      --exporter.lock_wait_timeout=2   

                               Set a lock_wait_timeout on the connection to avoid long metadata locking. 

      --exporter.log_slow_filter   

                               Add a log_slow_filter to avoid slow query logging of scrapes. NOTE: Not supported by Oracle MySQL

      --collect.heartbeat.database="heartbeat"   

                               Database from where to collect heartbeat data 

      --collect.heartbeat.table="heartbeat"   

                               Table from where to collect heartbeat data 

      --collect.info_schema.processlist.min_time=0   

                               Minimum time a thread must be in each state to be counted 

      --collect.info_schema.processlist.processes_by_user   

                               Enable collecting the number of processes by user 

      --collect.info_schema.processlist.processes_by_host   

                               Enable collecting the number of processes by host 

      --collect.info_schema.tables.databases="*"   

                               The list of databases to collect table stats foror '*' for all 

      --collect.mysql.user.privileges   

                               Enable collecting user privileges from mysql.user 

      --collect.perf_schema.eventsstatements.limit=250   

                               Limit the number of events statements digests by response time 

      --collect.perf_schema.eventsstatements.timelimit=86400   

                               Limit how old the 'last_seen' events statements can be, in seconds 

      --collect.perf_schema.eventsstatements.digest_text_limit=120   

                               Maximum length of the normalized statement text 

      --collect.perf_schema.file_instances.filter=".*"   

                               RegEx file_name filter for performance_schema.file_summary_by_instance 

      --collect.perf_schema.file_instances.remove_prefix="/var/lib/mysql/"   

                               Remove path prefix in performance_schema.file_summary_by_instance 

      --web.listen-address=":9104"   

                               Address to listen on for web interface and telemetry. 

      --web.telemetry-path="/metrics"   

                               Path under which to expose metrics. 

      --timeout-offset=0.25    Offset to subtract from timeout in seconds. 

      --config.my-cnf="/home/jalright/.my.cnf"   

                               Path to .my.cnf file to read MySQL credentials from

      --collect.mysql.user     Collect data from mysql.user 

      --collect.info_schema.tables   

                               Collect metrics from information_schema.tables 

      --collect.info_schema.innodb_tablespaces   

                               Collect metrics from information_schema.innodb_sys_tablespaces 

      --collect.info_schema.innodb_metrics   

                               Collect metrics from information_schema.innodb_metrics 

      --collect.global_status  Collect from SHOW GLOBAL STATUS 

      --collect.global_variables   

                               Collect from SHOW GLOBAL VARIABLES 

      --collect.slave_status   Collect from SHOW SLAVE STATUS 

      --collect.info_schema.processlist   

                               Collect current thread state counts from the information_schema.processlist 

      --collect.perf_schema.tablelocks   

                               Collect metrics from performance_schema.table_lock_waits_summary_by_table 

      --collect.perf_schema.eventsstatements   

                               Collect metrics from performance_schema.events_statements_summary_by_digest 

      --collect.perf_schema.eventsstatementssum   

                               Collect metrics of grand sums from performance_schema.events_statements_summary_by_digest 

      --collect.perf_schema.eventswaits   

                               Collect metrics from performance_schema.events_waits_summary_global_by_event_name 

      --collect.auto_increment.columns   

                               Collect auto_increment columns and max values from information_schema 

      --collect.binlog_size    Collect the current size of all registered binlog files 

      --collect.perf_schema.tableiowaits   

                               Collect metrics from performance_schema.table_io_waits_summary_by_table 

      --collect.perf_schema.indexiowaits   

                               Collect metrics from performance_schema.table_io_waits_summary_by_index_usage 

      --collect.info_schema.userstats   

                               If running with userstat=1, set to true to collect user statistics 

      --collect.info_schema.clientstats   

                               If running with userstat=1, set to true to collect client statistics 

      --collect.info_schema.tablestats   

                               If running with userstat=1, set to true to collect table statistics 

      --collect.info_schema.schemastats   

                               If running with userstat=1, set to true to collect schema statistics 

      --collect.perf_schema.file_events   

                               Collect metrics from performance_schema.file_summary_by_event_name 

      --collect.perf_schema.file_instances   

                               Collect metrics from performance_schema.file_summary_by_instance 

      --collect.perf_schema.replication_group_member_stats   

                               Collect metrics from performance_schema.replication_group_member_stats 

      --collect.perf_schema.replication_applier_status_by_worker   

                               Collect metrics from performance_schema.replication_applier_status_by_worker 

      --collect.engine_innodb_status   

                               Collect from SHOW ENGINE INNODB STATUS 

      --collect.heartbeat      Collect from heartbeat 

      --collect.slave_hosts    Scrape information from 'SHOW SLAVE HOSTS' 

      --collect.info_schema.innodb_cmp   

                               Collect metrics from information_schema.innodb_cmp 

      --collect.info_schema.innodb_cmpmem   

                               Collect metrics from information_schema.innodb_cmpmem 

      --collect.info_schema.query_response_time   

                               Collect query response time distribution if query_response_time_stats is ON

      --collect.engine_tokudb_status   

                               Collect from SHOW ENGINE TOKUDB STATUS 

      --log.level="info"       Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal] 

      --log.format="logger:stderr"   

                               Set the log target and format. Example: "logger:syslog?appname=bob&local=7" or "logger:stdout?json=true" 

      --version                Show application version. 

部署服务

直接注册成systemd服务。

```bash 

#!/bin/bash 

 

VERSION="0.12.1" 

 

wget  -t 100  -c  https://github.com/prometheus/mysqld_exporter/releases/download/v${VERSION}/mysqld_exporter-${VERSION}.linux-amd64.tar.gz 

 

if [ ! -e mysqld_exporter-${VERSION}.linux-amd64.tar.gz ] 

then 

    echo "安装包下载失败" 

    exit 1 

fi 

tar xvfz mysqld_exporter-${VERSION}.linux-amd64.tar.gz -C /opt/ 

cd /opt 

ln -s mysqld_exporter-${VERSION}.linux-amd64  mysqld_exporter 

cat > /etc/systemd/system/mysqld_exporter.service <<EOF 

 

[Unit] 

Description=mysqld_exporter 

After=network.target 

 

[Service] 

Type=simple 

WorkingDirectory=/opt/mysqld_exporter 

ExecStart=/opt/mysqld_exporter/mysqld_exporter --config.my-cnf="/opt/mysqld_exporter/.my.cnf" 

LimitNOFILE=65536 

PrivateTmp=true 

RestartSec=2 

StartLimitInterval=0 

Restart=always 

 

[Install] 

WantedBy=multi-user.target 

EOF 

​``` 

systemctl daemon-reload 

systemctl enable mysqld_exporter 

systemctl start mysqld_exporter 

 配置prometheus Job

默认端口是9104

- job_name: 'mysqld_exporter' 

 

  # metrics_path defaults to '/metrics' 

  # scheme defaults to 'http'

 

  static_configs: 

  - targets: ['localhost:9104'

指标展示

指标可以通过prometheus的WebUI进行查看

http://[promethe server ip]:9090 

如果需要画图,可以直接使用grafana,有人已经配置好了图形可以通过grafana官方下的dashboard找到mysqld_exporter相关的dashboard就可以直接使用了,配置好prometheus数据源,直接导入grafana就可以直接展示了。

运维监控系统之Prometheus-MySQL监控

原文地址:https://www.toutiao.com/i6911310105698943491/

延伸 · 阅读

精彩推荐
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12