Prometheus和Grafana

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自己的监控数据了
原文地址:https://www.cnblogs.com/hbxZJ/p/15672954.html