Zabbix+grafana搭建MySQL监控平台
来源:互联网 发布:必发数据 下载 编辑:程序博客网 时间:2024/05/01 03:32
这些天在研究MySQL监控方面的开源资料,经过评估,准备搭建一套grafana+zabbix+mysql监控环境,经过各种查资料摸索,整理整个过程,给还在这方面摸索的同学做个参考。
第一部分 zabbix安装配置
环境:lsb_release –a
Distributor ID: CentOS
Description: CentOS release 6.4 (Final)
Release: 6.4
Codename: Final
提前准备:
安装一个MySQL数据库,用于提供Zabbix存放数据
安装方式:源码编译安装
下载源码包:zabbix-3.4.3.tar.gz
下载地址:https://www.zabbix.com/download
上传到服务器任意位置后解压,/opt/zabbix
导入zabbix数据库脚本
cd /opt/zabbix/zabbix-3.4.3/database/mysql-rw-r--r-- 1 1000 1000 2861223 Oct 17 20:15 data.sql-rw-r--r-- 1 1000 1000 1978341 Oct 17 20:11 images.sql-rw-r--r-- 1 1000 1000 134738 Oct 17 20:15 schema.sql
tar -zxvf zabbix-3.4.3.tar.gz
编译:
./configure --enable-server --enable-agent --with-mysql=/export/servers/app/mysql-5.6.23/mysql_config -enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
注意:/export/servers/app/mysql-5.6.23/mysql_config 是mysql数据库配置文件地址
可能会出现以下问题:
报错:
checking for the linux kernel version… 2.6 family (2.6.32-358.el6.x86_64)
checking size of void *… 8
checking for mysql_config… /export/servers/app/mysql-5.6.23/mysql_config
configure: error: MySQL library not found
解决方法:
yum install mysql-devel
报错:
checking for xmlReadMemory in -lxml2… yes
checking for net-snmp-config… no
configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
解决方法:
yum install net-snmp-devel
报错:
Unable to use libevent (libevent check failed)
解决:
yum install libevent-devel
报错:
Unable to use libpcre (libpcre check failed)
安装 pcre库,
下载:pcre-8.36.tar.gz
解压:tar –zxvf pcre-8.36.tar.gz
编译:cd pcre-8.36
./configure –enable-utf8
make make install
报错:
curl library not found
解决:
yum install libcurl-devel
configure 完成!
开始安装:
Make
make install
安装完成后配置 zabbix_server.conf
路径:vi /usr/local/zabbix/etc/zabbix_server.conf
cat /usr/local/zabbix/etc/zabbix_server.conf | grep -v ^# | grep -v ^$LogFile=/tmp/zabbix_server.logDBName=zabbixDBUser=zabbixDBPassword=zabbixDBSocket=/export/servers/data/my3306/run/mysqld.sockDBPort=3306Timeout=4LogSlowQueries=3000
如果有启动错误:
zabbix_server: error while loading shared libraries: libmysqlclient.so.
error while loading shared libraries: libpcre.so.1: cannot open shared object file:
解决方法:
echo "/export/servers/app/mysql-5.6.23/lib" >> /etc/ld.so.confecho "/usr/local/lib" >> /etc/ld.so.confldconfig
做几个软连接
[root@localhost ~]# ln -s /usr/local/zabbix/bin/* /usr/bin/[root@localhost ~]# ln -s /usr/local/zabbix/sbin/* /usr/sbin/[root@localhost ~]# cp /opt/zabbix/zabbix-3.4.3/misc/init.d/fedora/core/* /etc/init.d/[root@localhost ~]# vi /etc/init.d/zabbix_server
修改这行:
BASEDIR=/usr/local/zabbix
修改完成后启动zabbix:
/etc/init.d/zabbix_server start
查看zabbix日志:
tail -200f /tmp/zabbix_server.log
第二部分 php安装配置
安装包准备:
放到: /usr/local/apache-php-packages
apr-1.6.3.tar.gz
apr-util-1.6.1.tar.gz
httpd-2.4.29.tar.gz
libxml2-2.7.4.tar.gz
pcre-8.20.tar.gz
php-5.6.32.tar.gz
安装apr-1.6.3.tar.gz
cd /usr/localmkdir aprcd /usr/local/apache-php-packagestar -zxvf apr-1.6.3.tar.gzcd apr-1.6.3./configure --prefix=/usr/local/aprMakeMake install
同样的方法安装apr-util-1.6.1.tar.gz,pcre-8.20.tar.gz
可能出现的问题:
xml/apr_xml.c:35:19: error: expat.h: No such file or directory
解决:
yum install expat-devel
安装apache:
makdir /usr/local/apachecd /usr/local/apache-php-packagestar -zxvf httpd-2.4.29.tar.gzcd httpd-2.4.29./configure --prefix=/usr/local/apache --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-utilmake make install
启动apache
/usr/local/apache2/bin/apachectl start
测试是否启动成功:
curl http://127.0.0.1<html><body><h1>It works!</h1></body></html>
拷贝zabbix web到apache:
cp -r /opt/zabbix/zabbix-3.4.3/frontends /usr/local/apache2/htdocs/
将 frontends/php 下面的文件拷贝到 /usr/local/apache2/htdocs/ 下
安装php:
cd /usr/local/apache-php-packagestar –zxvf php-5.6.32.tar.gzcd php-5.6.32
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/lib --disable-cli --enable-shared --with-libxml-dir --with-gd --with-openssl --enable-mbstring --with-mcrypt --with-mysqli --with-mysql --enable-opcache --enable-mysqlnd --enable-zip --with-zlib-dir --with-pdo-mysql --with-jpeg-dir --with-freetype-dir --with-curl --without-pdo-sqlite --without-sqlite3 --enable-bcmath --enable-sockets --with-gettext --with-mysqli=/export/servers/app/mysql-5.6.23/bin/mysql_config
makemake install
问题:
configure: error: jpeglib.h not found.
解决:
yum install libjpeg-devel
问题:
configure: error: mcrypt.h not found. Please reinstall libmcrypt
解决:
install -y libmcrypt-devel
配置php:
cp php.ini-production /usr/local/php/lib/php.inivim /usr/local/apache2/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php (.前面有空格)
AddType application/x-httpd-php-source .phps (.前面有空格)
增加起始页:
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
重启apache
/usr/local/apache2/bin/apachectl stop/usr/local/apache2/bin/apachectl start
访问zabbix首页
http://zabbix.server.ip/index.php
zabbix.server.ip 为安装服务器的IP地址
出现配置界面如下:
开始配置,点击 next step
显示缺少的组件或者要改的配置,按提示依次修改 /usr/local/php/lib/php.ini
配置完成,显示登录页面:
初始用户名密码: Admin/zabbix
第三部分 Zabbix监控MySQL
一、 在客户端(MySQL服务器)上安装zabbix agent
添加zabbix账号:
groupadd zabbixuseradd zabbix -g zabbix -s /sbin/nologin
1、上传zabbix源码包(与zabbix server同一个包)zabbix-3.4.3.tar.gz
tar –zxvf zabbix-3.4.3.tar.gzcd zabbix-3.4.3./configure --prefix=/usr/local/zabbix --with-net-snmp --enable-agent make make install
4、copy agent端运行所需要的脚本
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/chmod +x /etc/init.d/zabbix_agentd
注意,要修改一下这个启动脚本, vi /etc/init.d/zabbix_agentd 将目录修改为如下
DAEMON=/usr/local/zabbix/sbin/zabbix_agentd
5、配置agent端配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=172.25.44.100 #填写zabbix-Server的IP地址ServerActive=172.25.44.100 #修改为zabbix-Server的IP地址Hostname=zabbix_agent_110 #填写本机的HostName,注意Server端配hosts,要能解析UnsafeUserParameters=1 #是否允许自定义的key,1为允许,0为不允许
6、从zabbix 服务端验证一下,可以解析客户端服务器的hostname(注意:此步骤在服务端操作)
7、启动zabbix agent端
/etc/init.d/zabbix_agentd start
二、 配置MySQL监控脚本
cd /usr/local/zabbix/mkdir scriptscd scripts
上传mysql监控脚本 ck_mysql.sh
#!/bin/sh# -------------------------------------------------------------------------------MYSQL_SOCK="/export/servers/data/my3306/run/mysqld.sock"# 用户名MYSQL_USER='zabbix'# 密码MYSQL_PWD='zabbix'# 主机地址/IPMYSQL_HOST='127.0.0.1'# 端口MYSQL_PORT='3306'# 数据连接MYSQL_CONN="/export/servers/app/mysql-5.7.16/bin/mysqladmin -u${MYSQL_USER} -h${MYSQL_HOST} -P${MYSQL_PORT} " # 获取数据case $1 in Uptime) result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"` echo $result ;; Com_update) result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3` echo $result ;; Slow_queries) result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"` echo $result ;; Com_select) result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3` echo $result ;; Com_rollback) result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3` echo $result ;; Questions) result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"` echo $result ;; Com_insert) result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3` echo $result ;; Com_delete) result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3` echo $result ;; Com_commit) result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3` echo $result ;; Bytes_sent) result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` echo $result ;; Bytes_received) result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3` echo $result ;; Com_begin) result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3` echo $result ;; *) echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)" ;; esac
赋权:
chmod u+x /usr/local/zabbix/scripts/chk_mysql.shchown -R zabbix.zabbix /usr/local/zabbix/scripts/chk_mysql.sh
修改zabbix_agentd.conf
vim /usr/local/zabbix/etc/zabbix_agentd.conf
增加下面三行脚本
UserParameter=mysql.version,mysql -VUserParameter=mysql.status[*],/usr/local/zabbix/scripts/chk_mysql.sh $1UserParameter=mysql.ping,mysqladmin -uzabbix -pzabbix -P3306 -h127.0.0.1 ping | grep -c alive
注意修改端口用户名密码
在MySQL数据库添加zabbix用户
mysql>GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO zabbix@'127.0.0.1' IDENTIFIED BY 'zabbix';mysql> flush privileges;
启动Zabbix agent
/etc/init.d/zabbix_agentd start
在Zabbix Server端测试:
zabbix_get -s 172.25.50.211 -p10050 -k mysql.status[Com_update] mysqladmin: connect to server at '127.0.0.1' failederror: 'Access denied for user 'zabbix'@'127.0.0.1' (using password: NO)'
解决方法:
先用mysqladmin定位查找的my.cnf路径:
/export/servers/app/mysql-5.7.16/bin/mysqladmin –help
找到:
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /export/servers/app/mysql-5.7.16/etc/my.cnf ~/.my.cnf
找一个对应的my.cnf 添mysqladmin的用户密码
vi /export/servers/app/mysql-5.7.16/etc/my.cnf
[mysqladmin]user=zabbixpassword=zabbix
重启MySQL
再测试:
[root@HC-25-44-100 ~]# zabbix_get -s 172.25.50.211 -p10050 -k mysql.status[Com_update]0
三、 配置监控
1、 配置主机组:
2、 配置主机 host
选择模板:
Template DB MySQL
Template OS Linux
3、 查看图表
第四部分 grafana安装配置
安装grafana包
rpm -ivh grafana-4.1.1-1484211277.x86_64.rpm
安装grafana-zabbix插件
https://grafana.com/plugins/alexanderzobnin-zabbix-app/installation
可以手动下载
alexanderzobnin-grafana-zabbix-v3.7.0-0-g1a85503.zip
将包放到grafana的插件目录,默认路径:/var/lib/grafana/plugins
解压后重命名:alexanderzobnin-grafana-zabbix
重启grafana
service grafana-server restart
进入grafana,找到zabbix插件,点击启用:
回到主页,点击添加数据源:
配置zabbix数据源:
type选择zabbix
url为zabbix-server php路径下的api_jsonrpc.php
按照上述配置,配完后保存
添加panel
编辑
选择监控项:
修改标题:
保存,回到Dashboard查看效果:
完成,这里展示的是zabbix自带的几个监控项,MySQL应该可以自定义一些监控,等研究后再分享。
参考文章:
https://www.zabbix.com/documentation/3.4/zh/manual
https://grafana.com/plugins/alexanderzobnin-zabbix-app/installation
http://www.linuxidc.com/Linux/2017-05/143366.htm
https://www.cnblogs.com/yangxia-test/p/4174372.html
http://www.cnblogs.com/yangxia-test/archive/2012/11/09/2762486.html
- Zabbix+grafana搭建MySQL监控平台
- grafana安装,与zabbix结合使用监控mysql
- grafana安装,与zabbix结合使用监控mysql
- 搭建telegraf、influxdb、grafana监控平台监控docker容器
- cAdvisor、InfluxDB、Grafana搭建Docker1.12性能监控平台
- Grafana + Zabbix --- 部署分布式监控系统
- 安装grafana对zabbix进行监控
- 使用Grafana搭建监控系统
- influxdb+grafana搭建业务监控平台前篇-相关环境搭建
- Grafana+zabbix
- Zabbix 分布式监控平台
- Zabbix监控平台
- 拾里运维篇之-Zabbix服务器集群监控平台搭建(1)
- zabbix监控mysql数据库(推荐这种方式:zabbix通过mpm监控mysql的环境搭建)
- 搭建ZABBIX监控
- 搭建zabbix监控windows
- 搭建Zabbix监控环境
- 利用Metrics+influxdb+grafana构建监控平台
- UIViewController的理解
- 在DPDK环境下搭建OpenvSwitch用户态运行环境
- tomcat挂掉自动启动tomcat
- 【Scikit-Learn 中文文档】神经网络模块(监督的)- 监督学习
- 频率域图像增强MATLAB实现
- Zabbix+grafana搭建MySQL监控平台
- java设计模式之工厂方法模式
- 第13周项目1-验证算法1
- Spring-Mybatis整合时,无法连接数据库,Cannot create PoolableConnectionFactory
- Android 双RecyclerView嵌套实现购物车逻辑
- 第十三周项目2
- 第十二周项目4Floyd算法验证
- flex
- 假设检验之几种检验方法的比较