Prometheus監控mysql實例--centos7安裝mysql_exporter

目錄

  • 概述
  • 環境準備
  • 普羅米修斯簡介
  • mysql安裝
  • mysqld_exporter安裝
  • 啓動參數列表

概述

    prometheus(普羅米修斯) 是一個開源系統監控和報警工具包,許多公司和組織都採用了Prometheus,該項目擁有很是活躍的開發人員和用戶社區。它如今是一個獨立的開源項目,獨立於任何公司進行維護。mysql

環境準備

  • mysql 5.5以上
  • mysql_exporter 0.11.0

普羅米修斯簡介

功能

  • 根據指標名稱和key/value標識組成一個多維度的時間序列數據模型
  • 具備一種利用多維度數據模型靈活查詢的一種語言PromQL
  • 不依賴分佈存儲,每一個服務節點都是獨立的
  • 時序數據收集經過http的pull模型
  • 經過中介網關支持推送時間序列
  • 經過服務發現或靜態配置發現目標
  • 圖形化支持多種模式

組件

    普羅修斯是開源的,它的生態中有不少可選組件,選用組件時須要注意它們的許可說明,大致組件有如下幾類:linux

  • 普羅米修斯服務 (整理存儲數據)
  • 客戶端庫(查詢數據進行可視化等操做)
  • 推送數據的jobs(收集數據)
  • 推送數據的exporer(收集數據)
  • 報警管理器(根據指標進行報警)

架構

此圖來自官網,博主對架構圖標註了註釋git

mysql搭建

    這裏能夠參考博主之前的博文 centos 7下源碼安裝mysql5.7--一步一步親測操做完成 github

mysql_exporter安裝

查看系統版本

#lsb_release -a

下載

全系統版本下載地址: https://github.com/prometheus/mysqld_exporter/releasesweb

查看系統版本

#lsb_release -a

 

選擇版本下載

#mkdir -P /opt/packages && cd /opt/packages
#wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz

安裝

#mkdir /opt/softs && cd /opt/softs
#tar -zxvf /opt/packages/mysqld_exporter-0.11.0.linux-amd64.tar.gz

建立mysql受權

進入mysql命令行sql

>CREATE USER 'mysqld_exporter'@'%' IDENTIFIED BY 'mysqld_exporter_password' WITH MAX_USER_CONNECTIONS 3;
>GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'%';
>flush privileges;

mysqld_exporter: 爲數據庫用戶名,自行定義數據庫

mysqld_exporter_password: 爲數據庫用戶對應的密碼,自行定義vim

配置mysql_exporter

#cd /opt/softs/mysqld_exporter-0.11.0.linux-amd64
#vim .my.cnf

.my.cnf配置內容以下:centos

就是配置上面受權的數據庫用戶名以及密碼bash

[client]
user=mysqld_exporter
password=mysqld_exporter_password

啓動mysql_exporter

#export DATA_SOURCE_NAME='mysqld_exporter:mysqld_exporter_password@tcp(172.16.0.142:3316)/'
#/opt/softs/mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter --config.my-cnf="/opt/environment/mysqld_exporter-0.11.0.linux-amd64/.my.cnf"

這是臨時啓動,環境變量,應該配置到文件裏面去,啓動命令須要設置爲開機啓動

開放exporter端口

#firewall-cmd --get-active-zones
#firewall-cmd --zone=public --add-port=9104/tcp --permanent
#firewall-cmd --reload

開機啓動

這裏就不贅述了,給出幾種開機啓動的方案,自行選擇

  • supervisor
  • rc.local
  • systemd

舉例經過supervisor開機啓動:

點擊查看博主關於supervisor的安裝與配置博文,這裏就只給出supervisor的配置項:

#vim /etc/supervisor/conf.d/mysqld-exporter.conf

配置內容以下:

[program:mysqld-exporter]
environment=DATA_SOURCE_NAME='mysqld_exporter:mysqld_exporter_password@tcp(172.16.0.142:3316)/'
directory = /opt/softs/mysqld_exporter-0.11.0.linux-amd64/
command =/opt/softs/mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter --config.my-cnf="/opt/softs/mysqld_exporter-0.11.0.linux-amd64/.my.cnf"
autostart = true
startsecs = 5
autorestart = true
startretries = 3
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /opt/softs/mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter.log

啓動參數列表

收集器參數

參數名 MySQL 版本 做用
collect.auto_increment.columns 5.1 自增列最大值
collect.binlog_size 5.1 binlog文件大小
collect.engine_innodb_status 5.1 從SHOW ENGINE INNODB STATUS 命令收集
collect.engine_tokudb_status 5.6 從SHOW ENGINE TOKUDB STATUS 命令收集 .
collect.global_status 5.1 從SHOW GLOBAL STATUS命令收集 (默承認用)
collect.global_variables 5.1 從SHOW GLOBAL VARIABLES命令收集 (默承認用)
collect.info_schema.clientstats 5.5 若是使用userstat=1運行,則設置爲true以收集客戶端統計信息。
collect.info_schema.innodb_metrics 5.6 收集information_schema.innodb_metrics 指標.
collect.info_schema.innodb_tablespaces 5.7 收集information_schema.innodb_sys_tablespaces 指標.
collect.info_schema.innodb_cmp 5.5 收集information_schema.innodb_cmp中的innoDB壓縮表指標
collect.info_schema.innodb_cmpmem 5.5 收集information_schema.innodb_cmpmem中InnoDB 緩衝池指標 .
collect.info_schema.processlist 5.1 收集 information_schema.processlist中的線程狀態
collect.info_schema.processlist.min_time 5.1 線程在每一個狀態的最小時間. (默認: 0)
collect.info_schema.query_response_time 5.5 若是query_response_time_stats 設置的 ON,則收集查詢響應時間.
collect.info_schema.tables 5.1 收集information_schema.tables中的指標 (默認開啓)
collect.info_schema.tables.databases 5.1 爲全部數據庫收集表統計信息.
collect.info_schema.tablestats 5.1 若是tablestats=1, 收集數據表統計數據.
collect.info_schema.userstats 5.1 若是userstat=1, 收集用戶統計數據.
collect.perf_schema.eventsstatements 5.6 收集performance_schema.events_statements_summary_by_digest中的指標.
collect.perf_schema.eventsstatements.digest_text_limit 5.6 標準語句的最大長度. (默認: 120)
collect.perf_schema.eventsstatements.limit 5.6 根據響應時間限制語句的事件數量. (默認: 250)
collect.perf_schema.eventsstatements.timelimit 5.6 限制最後出現的事件事件. 單位:秒(默認: 86400)
collect.perf_schema.eventswaits 5.5 收集performance_schema.events_waits_summary_global_by_event_name中的指標.
collect.perf_schema.file_events 5.6 收集performance_schema.file_summary_by_event_name中的指標.
collect.perf_schema.file_instances 5.5 收集performance_schema.file_summary_by_instance中的指標.
collect.perf_schema.indexiowaits 5.6 收集performance_schema.table_io_waits_summary_by_index_usage中的指標.
collect.perf_schema.tableiowaits 5.6 收集performance_schema.table_io_waits_summary_by_table中的指標.
collect.perf_schema.tablelocks 5.6 收集performance_schema.table_lock_waits_summary_by_table中的指標.
collect.perf_schema.replication_group_member_stats 5.7 收集performance_schema.replication_group_member_stats中的指標.
collect.slave_status 5.1 收集SHOW SLAVE STATUS (默承認用)
collect.slave_hosts 5.1 收集SHOW SLAVE HOSTS信息
collect.heartbeat 5.1 收集數據庫實例心跳
collect.heartbeat.database 5.1 收集某數據庫心跳. (默認 heartbeat)
collect.heartbeat.table 5.1 收集某表的心跳. (默認 heartbeat)

 經常使用參數

參數名 描述
config.my-cnf .my.cnf路徑. (默認: ~/.my.cnf)
log.level 日誌級別 (默認: info)
exporter.lock_wait_timeout 爲鏈接設置lock_wait_timeout 以避免長時間鎖定元數據. (默認: 2 秒)
exporter.log_slow_filter 增長log_slow_filter避免損壞的查詢日誌記錄很慢. 注意: 不支持Oracle MySQL.
web.listen-address 設置監聽的地址和端口
web.telemetry-path 公開指標的路徑
version 打印信息的版本
相關文章
相關標籤/搜索