本篇內(nèi)容介紹了“如何使用Prometheus監(jiān)控MySQL與MariaDB.md”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
普蘭網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
mysqld-exporter 通過讀取 MySQL 或 MariaDB 中的一些數(shù)據(jù)庫狀態(tài)的數(shù)據(jù),并將其轉(zhuǎn)換為 Prometheus 的指標(biāo)格式并暴露成 http 接口被 Prometheus 所采集,來實(shí)現(xiàn)讓原本不支持 Prometheus 指標(biāo)的 MySQL 和 MariaDB 能夠被 Prometheus 監(jiān)控起來:
在部署 mysqld-exporter 之前首先保證 MySQL 或 MariaDB 已經(jīng)部署,可以在集群內(nèi),也可以在集群外,或者使用現(xiàn)成的云服務(wù)。如果還沒有,這里以從應(yīng)用市場部署到集群為例來部署一個(gè) MySQL:
在應(yīng)用市場中找到 MySQL,點(diǎn)擊 創(chuàng)建應(yīng)用-創(chuàng)建
。
查看 mysql 是否正常運(yùn)行:
$ kubectl get pods NAME READY STATUS RESTARTS AGE mysql-698b898bf7-4dc5k 1/1 Running 0 11s
獲取 root 密碼:
$ kubectl get secret -o jsonpath={.data.mysql-root-password} mysql 6ZAj33yLBo
有了 MySQL 后,我們開始準(zhǔn)備部署 mysqld-exporter,首先為 mysqld-exporter 創(chuàng)建一個(gè)賬號(hào),登錄 MySQL:
$ kubectl exec -it mysql-698b898bf7-4dc5k bash $ mysql -uroot -p6ZAj33yLBo
然后輸入 SQL 來創(chuàng)建賬號(hào),這里以 mysqld-exporter/123456
為例:
CREATE USER 'mysqld-exporter' IDENTIFIED BY '123456' WITH MAX_USER_CONNECTIONS 3; GRANT PROCESS, REPLICATION CLIENT, REPLICATION SLAVE, SELECT ON *.* TO 'mysqld-exporter'; flush privileges;
然后使用以下 yaml 來部署 mysqld-exporter:
apiVersion: apps/v1 kind: Deployment metadata: name: mysqld-exporter spec: replicas: 1 selector: matchLabels: app: mysqld-exporter template: metadata: labels: app: mysqld-exporter spec: containers: - name: mysqld-exporter image: prom/mysqld-exporter:v0.12.1 args: - --collect.info_schema.tables - --collect.info_schema.innodb_tablespaces - --collect.info_schema.innodb_metrics - --collect.global_status - --collect.global_variables - --collect.slave_status - --collect.info_schema.processlist - --collect.perf_schema.tablelocks - --collect.perf_schema.eventsstatements - --collect.perf_schema.eventsstatementssum - --collect.perf_schema.eventswaits - --collect.auto_increment.columns - --collect.binlog_size - --collect.perf_schema.tableiowaits - --collect.perf_schema.indexiowaits - --collect.info_schema.userstats - --collect.info_schema.clientstats - --collect.info_schema.tablestats - --collect.info_schema.schemastats - --collect.perf_schema.file_events - --collect.perf_schema.file_instances - --collect.perf_schema.replication_group_member_stats - --collect.perf_schema.replication_applier_status_by_worker - --collect.slave_hosts - --collect.info_schema.innodb_cmp - --collect.info_schema.innodb_cmpmem - --collect.info_schema.query_response_time - --collect.engine_tokudb_status - --collect.engine_innodb_status ports: - containerPort: 9104 protocol: TCP env: - name: DATA_SOURCE_NAME value: "mysqld-exporter:123456@(mysql.default.svc.cluster.local:3306)/" --- apiVersion: v1 kind: Service metadata: name: mysqld-exporter labels: app: mysqld-exporter spec: type: ClusterIP ports: - port: 9104 protocol: TCP name: http selector: app: mysqld-exporter
! 注意根據(jù)實(shí)際情況替換 DATA_SOURCE_NAME 中的賬號(hào)密碼,以及 MySQL 的連接地址
有了 mysqld-exporter 后,我們就可以配置監(jiān)控的采集,讓 mysqld-exporter 暴露的數(shù)據(jù)被采集起來,如果你的集群中安裝了 prometheus-operator,可以通過定義 ServiceMonitor 來配置采集規(guī)則,示例:
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: mysqld-exporter spec: endpoints: interval: 5s targetPort: 9104 namespaceSelector: matchNames: - default selector: matchLabels: app: mysqld-exporter
你可以通過修改 Prometheus 原生的配置文件來配置采集規(guī)則,示例:
- job_name: mysqld-exporter scrape_interval: 5s kubernetes_sd_configs: - role: endpoints namespaces: names: - default relabel_configs: - action: keep source_labels: - __meta_kubernetes_service_label_app_kubernetes_io_name regex: mysqld-exporter - action: keep source_labels: - __meta_kubernetes_endpoint_port_name regex: http
采集配置好,正常采集有了數(shù)據(jù)之后,還需要為 Grafana 添加監(jiān)控面板進(jìn)行展示,如果只是看 MySQL 或 MariaDB 的一些概覽情況,可以導(dǎo)入 grafana.com
的這個(gè)面板: https://grafana.com/grafana/dashboards/7362
“如何使用Prometheus監(jiān)控MySQL與MariaDB.md”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
分享題目:如何使用Prometheus監(jiān)控MySQL與MariaDB.md
網(wǎng)站網(wǎng)址:http://sd-ha.com/article12/iedpdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)