prometheus(普羅米修斯) 是一個開源系統監控和報警工具包,許多公司和組織都採用了Prometheus,該項目擁有很是活躍的開發人員和用戶社區。它如今是一個獨立的開源項目,獨立於任何公司進行維護。mysql
普羅修斯是開源的,它的生態中有不少可選組件,選用組件時須要注意它們的許可說明,大致組件有如下幾類:linux
此圖來自官網,博主對架構圖標註了註釋git
這裏能夠參考博主之前的博文 centos 7下源碼安裝mysql5.7--一步一步親測操做完成 github
#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命令行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
#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
#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"
這是臨時啓動,環境變量,應該配置到文件裏面去,啓動命令須要設置爲開機啓動
#firewall-cmd --get-active-zones #firewall-cmd --zone=public --add-port=9104/tcp --permanent #firewall-cmd --reload
這裏就不贅述了,給出幾種開機啓動的方案,自行選擇
舉例經過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 | 打印信息的版本 |