[toc]node
使用prometheus、grafana等搭建指標收集、存儲、展現的監控系統。mysql
mysql在宿主機上直接搭建,prometheus、grafana等都是經過docker來搭建的。sql
服務 | 啓動方式 | 私網ip | 端口 | 備註 |
---|---|---|---|---|
mysql | VM | 172.17.0.1 | 3306 | |
grafana | docker | 172.17.0.3 | 3000:3000 | |
prometheus | docker | 172.17.0.2 | 9090:9090 | |
mysqld-exporter | docker | 172.17.0.1 | 9104 | |
node-exporter | docker | 172.17.0.1 | 9100 |
Prometheus是一套開源的監控&報警&時間序列數據庫的組合,起始是由SoundCloud公司開發的。隨着發展,愈來愈多公司和組織接受採用Prometheus,社區也十分活躍,他們便將它獨立成開源項目,而且有公司來運做。google SRE的書內也曾提到跟他們BorgMon監控系統類似的實現是Prometheus。如今最多見的Kubernetes容器管理系統中,一般會搭配Prometheus進行監控。docker
強大的多維度數據模型:shell
使用docker啓動prometheus數據庫
#將prometheus的配置文件映射到host,方便以後修改配置 docker run -d -p 9090:9090 -v ~/docker/prometheus/:/etc/prometheus/ prom/prometheus
配置文件 ~/docker/prometheus/prometheus.yml
google
172.17.0.1爲宿主機的docker私網ip。lua
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). alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 rule_files: # - "first_rules.yml" # - "second_rules.yml" scrape_configs: - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090'] - job_name: 'server' static_configs: - targets: ['172.17.0.1:9100'] - job_name: 'mysql' static_configs: - targets: ['172.17.0.1:9104']
監控exporter——監控當前機器自身的狀態,包括硬盤、CPU、流量等。由於Prometheus已經有了不少現成的經常使用exporter。url
因此咱們直接用其中的node-exporter。在Prometheus看來,一臺機器或者說一個節點就是一個node,因此該exporter是在上報當前節點的狀態。mysqld-exporter是專門監控mysql,並將收集的數據提供給Prometheus。spa
exporter用host模式啓動,與host共享ip,方便獲取mysql的相關信息
#主機信息收集exporter docker run -d \ --net="host" \ --pid="host" \ -v "/:/host:ro,rslave" \ quay.io/prometheus/node-exporter \ --path.rootfs=/host #數據庫信息收集exporter #DATA_SOURCE_NAME="用戶名:密碼@(mysqlip:port)" docker run -d \ -p 9104:9104 \ --net="host" \ --pid="host" \ -e DATA_SOURCE_NAME="root:Abc_12345678@(172.17.0.1:3306)/" \ prom/mysqld-exporter
docker run -d -p 3000:3000 grafana/grafana
3.導入主機的監控模板,模板id爲8919,以相同方式導入便可。