[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,以相同方式导入便可。