利用Prometheus与Grafana对Mysql服务器的性能监控详解

Prometheus是源于 Google Borgmon的一个开源监控系统,用 Golang开发。被很多人称为下一代监控系统。Grafana是一个开源的图表可视化系统,简单说图表配置比较方便、生成的图表比较漂亮。下面就介绍了利用Prometheus与Grafana对Mysql服务器性能监控的方法。

概述

Prometheus是一个开源的服务监控系统,它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。它提供了一个简单的网页界面、一个功能强大的查询语言以及HTTP接口等等。Prometheus通过安装在远程机器上的exporter来收集监控数据,这里用到了以下两个exporter:

  1. node_exporter – 用于机器系统数据
  1. mysqld_exporter – 用于Mysql服务器数据

Grafana是一个开源的功能丰富的数据可视化平台,通常用于时序数据的可视化。它内置了以下数据源的支持:

 

 

并可以通过插件扩展支持的数据源。

架构图

下面是本次部署的架构图

安装并运行Prometheus

1. Monitor 上安装 Prometheus

安装至/opt/prometheus

 

$ wget https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5.2.linux-amd64.tar.gz

$ tar zxvf prometheus-1.5.2.linux-amd64.tar.gz

$ mv prometheus-1.5.2.linux-amd64 /opt/prometheus

2.在安装目下编辑配置文件 prometheus.yml

 

1 vim /opt/prometheus/prometheus.yml

 

# my global config

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).

# Attach these labels to any time series or alerts when communicating with

# external systems (federation, remote storage, Alertmanager).

external_labels:

monitor: ‘codelab-monitor’

# Load rules once and periodically evaluate them according to the global ‘evaluation_interval’.

rule_files:

# – “first.rules”

# – “second.rules”

# A scrape configuration containing exactly one endpoint to scrape:

# Here it’s Prometheus itself.

scrape_configs:

# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.

– job_name: ‘prometheus’

# metrics_path defaults to ‘/metrics’

# scheme defaults to ‘http’.

static_configs:

– targets: [‘localhost:9090’]

# 以下是添加的部分

– job_name: linux

static_configs:

– targets: [‘172.30.251.214:9100’]

labels:

instance: db1

– job_name: mysql

static_configs:

– targets: [‘172.30.251.214:9104’]

labels:

instance: db1

其中:172.30.251.214是MySQL的IP,端口则是对应的exporter的监听端口。

3.启动Prometheus

阅读更多

Debian9中无法连接Mariadb(Mysql)的原因及解决方法

今天安装好Debian9后,又继续安装了Mariadb(Mysql)数据库。

此时刚刚安装好数据库,root还没有设定密码,因此应该可以不用密码就应该可以登录,

但发现普通用户用mysql -uroot登录时无法登录,只能用Linux的root账户登录才可以。

下面是我的解决方法:

1.使用Linux root登录,然后执行mysql -uroot

2.顺利登录后,切换到数据库mysql:use mysql;

3.查看user表中,账号root的plugin,发现我的安装后默认内容为:unix_socket

4.更改plugin内容:update user set plugin=’mysql_native_password’ where user=’root’;

5.执行:flush privileges;

6.重启数据库:systemctl restart mysql

重启后,即使使用Linux普通用户,也可顺利登录数据库。

centos7 安装Nginx-1.9.14、php-5.6.20、Mysql-5.7.11以及Mongodb、memcached、redis

 

×导读:centos7的版本是1511; nginx的版本:1.9.14 ;php的版本:5.6.20 ;mysql的版本:5.7.11; mongodb的版本:3.2.4 ;redis的版本:3.0.7;  memcached的版本:1.4.25.

关于版本:

centos7的版本是1511

nginx的版本:1.9.14

php的版本:5.6.20

mysql的版本:5.7.11

mongodb的版本:3.2.4

redis的版本:3.0.7

memcached的版本:1.4.25

 

服务部署目录:

/servers

/servers/nginx

/servers/libmctypt

/servers/libmemcached

/servers/php

/servers/boost

/servers/mysql

/servers/redis

/servers/libevent

/servers/memcached

/servers/mongodb

 

运行代码目录:

/documentRoot

 

***********************************准备 start****************************************

[root@pangyiguang ~]# yum install vim

 

安装一些依赖包:

[root@pangyiguang ~]# yum install gcc gcc-c++ cmake autoconf

[root@pangyiguang ~]# yum install openssl-devel libcurl-devel wget tar m4 git-core boost-static  npm ncurses-devel which ncurses-static zlib-devel zlib-static

[root@pangyiguang ~]# yum install libxml2 libxml2-devel bzip2 bzip2-devel libjpeg libjpeg-devel libpng libpng-devel

 

设置防火墙:

添加以下可信端口到防火墙的public区域,并使其生效:

 

[root@pangyiguang ~]# firewall-cmd –zone=public –add-port=80/tcp –permanent

[root@pangyiguang ~]# firewall-cmd –zone=public –add-port=3306/tcp –permanent

[root@pangyiguang ~]# firewall-cmd –zone=public –add-port=11211/tcp –permanent

[root@pangyiguang ~]# firewall-cmd –zone=public –add-port=6379/tcp –permanent

[root@pangyiguang ~]# firewall-cmd –zone=public –add-port=27017/tcp –permanent

[root@pangyiguang ~]# firewall-cmd –reload

 

***********************************准备 end****************************************

 

***********************************下载与解压 start****************************************

进入主目录:

[root@pangyiguang ~]# cd ~

 

下载所需要的安装包:

php的memcached扩展需要的安装包:

[root@pangyiguang ~]# wget https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz

[root@pangyiguang ~]# wget http://pecl.php.net/get/memcached-2.2.0.tgz

 

安装php时需要的安装包:

[root@pangyiguang ~]# wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

[root@pangyiguang ~]# wget http://cn2.php.net/distributions/php-5.6.20.tar.gz

[root@pangyiguang ~]# wget http://download.savannah.gnu.org/releases/freetype/freetype-2.7.tar.gz
[root@pangyiguang ~]# wget http://www.ijg.org/files/jpegsrc.v9b.tar.gz

nginx安装包:

[root@pangyiguang ~]# wget http://nginx.org/download/nginx-1.9.14.tar.gz

 

mysql最新的安装包:

[root@pangyiguang ~]# wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.11.tar.gz

 

mongodb的最新的安装包:

[root@pangyiguang ~]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.2.4.tgz

 

redis的安装包:

[root@pangyiguang ~]# wget http://download.redis.io/releases/redis-3.0.7.tar.gz

 

memcached服务的安装包:

[root@pangyiguang ~]# wget http://www.memcached.org/files/memcached-1.4.25.tar.gz

[root@pangyiguang ~]# wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz

阅读更多