1.安装和启动Prometheus
需要下载3个压缩包,在下面链接:
http://cactifans.hi-www.com/prometheus/
prometheus就是用来部署监控系统自己的,然后node_exporter是用来采集MySQL数据库所在机器的CPU、内存、网络、磁盘之类的监控数据的:
prometheus-2.1.0.linux-amd64.tar.gz
node_exporter-0.15.2.linux-amd64.tar.gz
下面的链接下载第三个压缩包:mysqld_exporter-0.10.0.linux-amd64.tar.gz
这个mysqld_exporter就是用来采集MySQL数据库自己的一些监控数据的,比如SQL性能、连接数量之类的
https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linuxamd64.tar.gz 或者 链接:https://pan.baidu.com/s/1xxv9dGfqd1US9ivB80A-Ew 密码:txsp
安装步骤
mkdir /data mkdir /root tar xvf prometheus-2.1.0.linux-amd64.tar.gz -C /data tar xf node_exporter-0.15.2.linux-amd64.tar.gz -C /root tar xf mysqld_exporter-0.10.0.linux-amd64.tar.gz -C /root cd /data mv prometheus-2.1.0.linux-amd64 prometheus cd prometheus/ 修改prometheus的配置文件,其实主要是在scrape_configs下面加入一大段自定义的配置,因为他需要去采集MySQL数据库本身和MySQL所在机器的监控数据: vim prometheus.yml -------------------------------------------------------------- # 全局配置 global: scrape_interval: 15s # 设置抓取间隔,默认为1分钟 evaluation_interval: 15s #估算规则的默认周期,每15秒计算一次规则。默认1分钟 # scrape_timeout #默认抓取超时,默认为10s # Alertmanager相关配置 alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # 规则文件列表,使用'evaluation_interval' 参数去抓取 rule_files: # - "first_rules.yml" # - "second_rules.yml" # 抓取配置列表 scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] #targets为部署prometheus的服务器ip -------------------------------------------------------------- 在scrape_configs下面可以新增如下配置: - job_name: 'linux' static_configs: - targets: ['xxxxxxxxxxx:9100'] labels: instance: yanglin3 - job_name: 'mysql' static_configs: - targets: ['xxxxxxxxxxx:9104'] labels: instance: yanglin3 #targets为部署node_exporter和mysql的服务器ip,instance为服务器,jobname为服务 配置启动: vim /etc/systemd/system/prometheus.service [Unit] Description=Prometheus Documentation=https://prometheus.io/ After=network.target [Service] Type=simple User=root ExecStart=/data/prometheus/prometheus --config.file=/data/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus/data Restart=on-failure [Install] WantedBy=multi-user.target 上面的配置定义了启动的命令,可以定义数据存储路径,否则默认会在prometheus二进制的目录的data下 启动: systemctl start prometheus systemctl status prometheus systemctl enable prometheus 现在可以打开web页面: http://IP:9090
2.部署Grafana
https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3.linux-x64.tar.gz tar xf grafana-4.6.3.linux-x64.tar.gz -C /data/prometheus cd /data/prometheus mv grafana-4.6.3 grafana cd /data/prometheus/grafana ./bin/grafana-server & 通过浏览器访问3000端口,默认的用户名和密码是admin/admin。接着在Grafana左侧菜单栏里有一个Data Sources,点击里面的一个按钮是Add data source,就是添加一个数据源。 在界面里输入你的数据源的名字是Prometheus,类型是Prometheus,HTTP URL地址是http://127.0.0.1:9090,其他的都用默认的配置就行了,接下来Grafana就会自动从Prometheus里获取监控数据和展示了。 接着需要安装Grafana的仪表盘组件,首先需要下载grafana-dashboards-1.6.1.tar.gz,用如下的链接即可: https://github.com/percona/grafana-dashboards/archive/v1.6.1.tar.gz 安装grafana-dashboard组件 yum -y install mlocate tar xvf grafana-dashboards-1.6.1.tar.gz cd grafana-dashboards-1.6.1 updatedb locate json |grep dashboards/ 会看到一大堆的json文件,就是各种不同的仪表盘对应的json配置文件,后面需要通过浏览器上传他们。 在grafana页面中,可以看到最上面有一个Home按钮,点击一下进入一个界面,Import Dashboard的按钮,就是说可以导入一些仪表盘,这个时候就是要导入刚才看到的一大堆的json文件。 点击Upload json file按钮,就会出现一个界面上传一个一个的json文件,依次上传,接着grafana中就会出现一大堆的仪表盘了,比如机器的CPU使用率的仪表盘,磁盘性能仪表盘,磁盘空间仪表盘,MySQL监控仪表盘,等等。 或者 官网下载Dashboard的json格式然后使用这种方式导入: 官网下载地址:https://grafana.com/grafana/dashboards 左侧是选择条件,右侧是筛选结果,在data source那里选择mysql,然后可以选择Zentao Dashboard 报告图表,下载json文件,上传granfana同上
3.添加MySQL机器的监控
要让Prometheus去采集MySQL机器的监控数据(CPU、内存、磁盘、网络,等等),然后让Grafana可以展示出来,那么就必须先添加Prometheus对MySQL机器的监控 在MySQL机器上解压缩和启动node_exporter,这启动之后是个linux进程,他会自动采集这台linux机器上的CPU、磁盘、内存、网络之类的各种监控数据 tar xf node_exporter-0.15.2.linux-amd64.tar mv node_exporter-0.15.2.linux-amd64 node_exporter cd node_exporter nohup ./node_exporter &
4.添加MySQL数据库的监控
同样需要在MySQL所在机器上再启动一个mysqld_exporter的组件,他负责去采集MySQL数据库自己的一些监控数据 tar xf mysqld_exporter-0.10.0.linux-amd64.tar mv mysqld_exporter-0.10.0.linux-amd64 mysqld_exporter 接着需要配置一些环境变量,去设置mysqld_exporter要监控的数据库的地址信息,看下面配置了账号、密码以及地址和端口号 export DATA_SOURCE_NAME='root:root@(127.0.0.1:3306)/' echo "export DATA_SOURCE_NAME='root:root@(127.0.0.1:3306)/'" >> /etc/profile 接着启动mysqld_exporter cd mysqld_exporter nohup ./mysqld_exporter --collect.info_schema.processlist --collect.info_schema.innodb_tablespaces --collect.info_schema.innodb_metrics --collect.perf_schema.tableiowaits --collect.perf_schema.indexiowaits --collect.perf_schema.tablelocks --collect.engine_innodb_status --collect.perf_schema.file_events --collect.info_schema.processlist --collect.binlog_size --collect.info_schema.clientstats --collect.perf_schema.eventswaits & 这个mysqld_exporter进程就会自动采集MySQL自己的监控数据了