前言
zabbix是一种类似于cacti 及nagios的;可通过web界面,提供可视化;提供分布式的系统监视;网络监控功能的企业级的开源的监控方案。然而,它的web的可视化有一个缺点就是不够酷炫。
Grafana是一个用Javascript写的开源的(Dashboard)可视化面板,其不仅功能齐全,还有着丰富的图表和漂亮的布局展示,并且支持Graphite、elasticsearch、zabbix等的数据可视化的实现,可以给你的数据换个皮肤,使你的数据展示更加直观和漂亮。
下面,要介绍的是Grafana+Zabbix数据可视化。
zabbix搭建可参考下列链接:
如已有zabbix或其他服务,可直接跳过前三步,从第四步开始。
Grafana+Zabbix实现数据可视化操作
一、环境准备
首先要保证zabbix-server和与agent的网络要联通,如果跨机房等可使用VPN,如果是同一局域网可关闭防火墙也可配置规则
下面由于是内网,采用关闭防火墙的方式
【1】防火墙
centos7操作:
systemctl stop firewalld
systemctl disable firewalld
更改selinux:
vim /etc/selinux/config
SELINUX=disabled
关闭selinux(为了避免错误):
setenforce 0
centos6操作:
/etc/init.d/iptables stop
chkconfig iptables off
【2】同步时间
zabbix-server与agent间要时间同步
安装并同步时间(可自建内网ntp时间服务器):
yum -y install ntp
ntpdate cn.pool.ntp.org
【3】添加解析(为了方便操作,可选)
echo “192.168.100.2 zabbix-server ” >>/etc/hosts
echo “192.168.100.3 zabbix-agent” >> /etc/hosts
scp /etc/hosts zabbix-agent:/etc/hosts
【4】推公钥(为了方便操作,可选)
zabbix-server向zabbix-agent端推公钥
一般选择第二种方法.
<1>互信操作:
ssh-keygen -f /root/.ssh/id_rsa -N " " 创建密钥
mv /root/.ssh/{id_rsa.pub,authorized_keys} 改变密钥文件名,authorized_keys为固定格式,可被系统识别
scp -r /root/.ssh zabbix-agent:/root/ 推送密钥到agent端
<2>推公钥:
ssh-keygen 创建密钥
ssh-copy-id root@zabbix-agent 推送密钥到agent端
二、zabbix安装
可用源码包安装,本文使用yum安装
可从官网下载安装包或yum源,选择自己需要的版本:
https://www.zabbix.com/download?zabbix=3.4&os_distribution=centos&os_version=6&db=MySQL
例如:
【1】安装Zabbix下载源
根据zabbix官方提供的下载源及命令,下载安装即可(server和agent端皆此操作)
rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
【2】zabbix-server操作
<1>zabbix-server相关软件安装:
yum -y install zabbix-server zabbix-server-mysql zabbix-web-mysql zabbix-get httpd
<2>数据库安装(mysql可换为mariadb;也可选择编译安装):
yum -y install mysql mysql-server mysql-devel 或 mariadb mariadb-server
【3】数据库配置
<1>启动并设置mysql密码
systemctl restart mariadb
systemctl enable mariadb
mysqladmin -uroot password ‘密码’
<2>为zabbix-server创库并授权
mysql -uroot -p123456 登陆数据库
create database zabbix character set utf8; 创建数据库,设定编码
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; 创建授权用户
flush privileges; 刷新授权表,虽然不需要,但可避免一些问题
use zabbix; 测试,数据库是否创建
也可直接创建,暂不设置密码
create database zabbix character set utf8;
<3>启动httpd和mysql,并设置开机启动
systemctl restart mariadb.service
systemctl restart httpd.service
systemctl enable mariadb.service
systemctl enable httpd.service
<4>执行zabbix官方提供是sql语句(其在安装基础依赖包时,已在指定位置,通常为/usr/share/doc/zabbix-server-mysql下)
cd /usr/share/doc/zabbix-server-mysql-4.0.2
gzip -d create.sql.gz
mysql -uroot zabbix < create.sql (也可用其他方法导入,目的是将此sql语句导入zabbix库中)
成功后,zabbix库中出现大量表
【4】zabbix-server配置文件配置
配置文件位置(由于是yum安装,配置文件位置: /etc/zabbix/zabbix_server.conf)
配置完,启动zabbix-server
systemctl start zabbix-server
systemctl enable zabbix-server
如有报错,请检查配置文件
文件中的配置,要按照需求来
必要配置:
DBHost
DBName
DBUser
DBPassword
egrep -v "^$|^#" zabbix_server.conf
LogFile=/tmp/zabbix_server.log log日志的位置,一般默认即可
DBHost=localhost zabbix_server授权时使用ip或名称,如授权时使用localhost
DBName=zabbix zabbix_server创建并授权的数据库的名称
DBUser=zabbix 授权的数据库的用户
DBPassword=zabbix 授权的数据库的密码
DBSocket=/tmp/mysql.sock MySQL的sock的位置,如数据库是编译安装,一般默认即可,如yum安装,请确认位置;不使用注释即可
DBPort=3306 使用的mysql数据库的端口;无特殊要求,注释即可,默认3306
StartPollers=30 zabbix-server的进程数,设置多少取决于服务器的性能和监控的数量,主要看内存大小
StartDiscoverers=5 zabbix提示进程繁忙时可修改此参数,最大可达250,但一般1-5左右,值越大越消耗cpu性能
CacheSize=8G zabbix-server可用的缓存,用于存储host,item,trigger数据
Timeout=4 zabbix-server的检测超时时间,单位为秒
FpingLocation=/usr/local/sbin/fping 安装的fping路径
LogSlowQueries=3000 多慢的数据库查询将会被记录,单位为毫秒,0表示不记录慢查询。只有在DebugLevel=3时,这个配置才有效
【5】zabbix-agent操作
zabbix-agent进行安装
yum -y install zabbix-agent
【6】zabbix-agent配置文件配置
关于agent的配置,主要分为两种情况:
zabbix-server/proxy主机的agent
被监控主机的agent
原则:
zabbix-server/proxy主机的agent的配置文件的IP及端口指向自己
zabbix-agent端的配置文件指向zabbix-server或zabbix-proxy的IP及10051端口
必要配置:
Server
ServerActive
Hostname
egrep -v "^$|^#" /etc/zabbix/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid zabbix-agent的pid文件的位置,默认即可
LogFile=/var/log/zabbix/zabbix_agentd.log zabbix-agent的log日志的位置,一般默认即可
EnableRemoteCommands=0 关闭远程命令(1:开启;0:关闭),开启后可设置触发条件,触发远程命令动作,重启服务
Server=192.168.92.128 zabbix-agent指向的zabbix-server/proxy的IP地址,本文指向的是zabbix-proxy
StartAgents=8 zabbix-agent的进程数
ServerActive=192.168.92.128:10051 zabbix-agent指向的zabbix-server/proxy的IP地址及端口,本文指向的是zabbix-proxy的
Hostname=zabbix agent01 该zabbix-agent端的名字,要与zabbix-server的web界面,配置的主机名称相同
Timeout=30 zabbix-agent的检测超时时间,单位秒
Include=/etc/zabbix/zabbix_agentd.d/ 启动自定义的key 自定义脚本存放位置
UnsafeUserParameters=1 启动自定义的key,开启后可使用自定义的脚本(如不使用请使用默认)
如果是zabbix-server/proxy主机的agent配置,则
Server=127.0.0.1
ServerActive=127.0.0.1:10051
配置完,启动zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
【7】修改时区
设置zabbix时区为所需要时区,才会显示正确的时间
例如中国一般填写 Asia/Shanghai
vim /etc/php.ini
date.timezone = Asia/Shanghai
vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
三、zabbix的web界面设置及主机添加
请查看下列链接:
四、Grafana安装
Grafana应安装在zabbix-server服务器上
Grafana官网链接,内含各种官方文档(包括仪表盘设置等):
http://docs.grafana.org/installation/rpm/
【1】使用官方安装包安装
wget https://dl.grafana.com/oss/release/grafana-5.4.2-1.x86_64.rpm
sudo yum -y localinstall grafana-5.4.2-1.x86_64.rpm
【2】启动grafana,并设置开机启动
systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
systemctl enable grafana-server
【3】安装服务端图像呈现组件
服务器端图像是一项可选功能
yum -y install fontconfig freetype* urw-fonts
【4】访问Grafana
启动Grafana后,在浏览器中输入http://ip:3000,可访问(3000为默认端口,可修改)
默认用户名:admin,密码:admin
【5】Grafana插件安装
<1>获取可用插件列表
grafana-cli plugins list-remote
<2>安装zabbix插件
grafana-cli plugins list-remote |grep zabbix
grafana-cli plugins install alexanderzobnin-zabbix-app
<3>重启grafana,并再次访问
systemctl restart grafana-server
【6】Grafana的zabbix配置
<1>点击zabbix图标,启用zabbix插件
<2>点击Enable
<3>点击Add data source ,添加数据源
<4>点击zabbix,添加zabbix插件的数据源
<5>配置数据源
Name为自定义,要可区分
URL为zabbix的API地址,默认为:http://zabbix-server的IP/zabbix/api_jsonrpc.php Username,Password为zabbix的用户及对应的密码(可在zabbix上设置用户)
其余的默认即可
<6>点击 Save&Test ,进行确认
<7>进行查看