1.数据可视化
为什么要用Grafana?
因为Grafana支持接入当前各种主流的数据库,并且能将各数据库中的数据以非常灵活酤炫的图表展现出来,同时也因为是开源软件方便二次开发定制。
另外,当前主流开源的监控系统诸如zabbix、prometheus、open-falcon等均能与Grafana完美结合来展示图表数据。
作为一名IT运维人员,除了要及时有效地监控到系统运行状态,还需要展示各种数据趋势,快速发现问题,所以,熟练使用Grafana的各种插件也是运维人员必会技能,在接下来的章节将讲解如何使用grafana来展示Zabbix 和Prometheus中数据。
2.Grafana部署Zabbix数据源
Zabbix是当前主流开源的企业级分布式监控系统。
Zabbix特点是:
- 安装部署较简单,且默认自带了多种监控告警模板。
- 具备较强的仪表盘展示功能;提供API接口,支持脚本调用;
- 支持自定义编写插件以及监控模板。
1、安装zabbix软件包
官网:Zabbix: The enterprise-class open source observability solution
确保防火墙、selinux已经关闭
systemctl stop Firewalld
systemctl disable Firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
修改用户资源限制
cat /etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
* hard core unlimited
* soft core unlimited
安装zabbix yum源
rpm -Uvh https://repo.zabbix,com/zabbix/4,4/rhel/7/x86 64/zabbix-release-4.4-1.e17.noarch.rpm
安装epel源,用于支持nginx
yum install epel-release
安装zabbix相关软件包
yum search zabbix
yum -y install zabbix
或者只安装以下组件
yum install epel-release
安装zabbix相关钦件包
yum search zabbix
yum -y install zabbix-*
或者只安装以下组件
for pkgs in zabbix-server-mysgl zabbix-web-mysgl zabbix-web-mysgl zabbix-agent zabbix-get zabbix-webzabbix-sender zabbix-nginx-conf ;do yum -y install $pkgs;done
zabbix-agent-4.4.7-1.e17.x86 64
zabbix-get-4.4.7-1.e17.x86 64
zabbix-release-4.4-1.el7.noarch
zabbix-server-mysq1-4.4.7-1.e17.x86 64
zabbix-web-4.4.7-1.e17.noarch
zabbix-sender-4.4.7-1.e17.x86 64
zabbix-nginx-conf-4.4.7-1.el7.noarch
zabbix-web-mysql-4.4.7-1.e17.noarch
2、安装mariadb并初始化导入zabbix表结构数据
安装mariadb数据库并启动
sql
yum install mariadb-*
systemctl enable mariadb
systemctl start mariadb
mysql -u root
show database;
show tables;
创建zabbix数据库
sql
create database zabbix character set utf8 collate utf8 bin;
grant all privileges on zabbix,* to 'zabbix'@"localhost' identifed by 'zabbix@123';
flush privileges;
quit;
导入数据
bash
zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz Imysql -uzabbix -p'zabbix@123' -b zabbix
3、修改zabbix_server.conf幷启动zabbix_server
cat /etc/zabbix/zabbix_server.conf |grep -v "^#" |grep -v "^$" |grep -v grep
文档:
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
DebugLevel=3
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix@123
StartPollers=16
StartPollersUnreachable=4
StartTrappers=10
StartPingers=8
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=1024M
StartDBSyncers=8
HistoryCacheSize=1024M
HistoryIndexCacheSize=256M
TrendCacheSize=1024M
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscriptsLogSlowQueries=3000
StatsAllowedlP=127.0.0.1
启动服务
systemctl enable zabbix-server
systemctl start zabbix-server
安装nginx
yum install nginx
启动nginx
systemctl start nginx
4、修改nginx/php-fpm配置
将server端口配置为8080,端口配置没有特殊要求,只要未被占用都可配置。若想使用80端口,则需要注释或修改nginx.conf的server0段配置
vi /etc/nginx/conf.d/zabbix.conf
listen8080:
server name monitor.com;
修改php时区
vi /etc/php-fpin.d/zabbix.conf
php valueldate.timezone]= Asia/Shanghai
启动php-fpm
systemctl enable php-fpm
systemctl restart php-fpm
启动Nginx
systemctl enable nginx
systemctl start nginx
5、设置并登录zabbix系统
访间 http://lP:port/setup.php
配置action,实现使安装有Zabbix Agent的Linux自动注册到Zabbix Server端。
步骤:configuration>>action>>Event source(选择Autoregistration)>>Create Action,定义个action
6、安装zabbix-agent
# rpm -Uvh https://repo,zabbix.com/zabbix/4.4/rhel/7/x86 64/zabbix-release-4.4-1.e17.noarch.rpm
# yun -y install zabbix-agent修改zabbix-agent配置,monitor01为Zabbix Server主机的hostname,所有Zabbix agent主机上都要添加ZabbixServer主机的hostname。
# sed -i's/Server=127.0.0.1/Server=monitor01/g" /etc/zabbix/zabbix_agentd.conf
# sed -i"s/ServerActive=127.0.0.1/ServerActive=monitor01/g" /etc/zabbix/zabbix_agentd.conf
# sed -i"s#Hostname=Zabbix server#Hostname=$(hostname)#g"/etc/zabbix/zabbix agentd.conf
# sed -i "s#\# HostMetadataltem=#HostMetadataltem=system.uname#g" /etc/zabbix/zabbix_agentd.conf
启动zabbix-agent
#systemctl enable zabbix-agent
#systemctl restart zabbix-agent
如果有几十上百个节点,我们就需要借助Ansible或SaltStack等批量部署工具来快速部署了。
安装Zabbix Agent后的主机会自动注册到Zabbix Server上,并且Availability显示为一绿色的 就表示添加成功
3.Grafana安装、配置、升级
1、安装Grafana软件包
Grafana部署非常简单,直接使用yum命令从言网拉到安装再启动就可以了,本次使用的grafana版本为6.7.1
# wget https://dl.grafana.com/oss/release/grafana-6.7.1-1.x86 64.rpm
# yum if all grafana-6.7.1-1.x86_64.rpm
或者直接使用如下命令安装
yum -y install https://dl.grafana.com/oss/release/grafana-6.7.1-1.x86 64.rpm
启动grafana并设置开机自启动
#systemctl restart grafana-server.service
#systemctl enable grafana-server.service
访问Grafana控制台:http://ip:3000 ,默认登录用户名/密码为:admin/admin,首次登录会提示修改密码。
2、Grafana配置说明
查看grafana软件包安装路径
#rpm -gl grafana-6.7.2-1.x86_64
需要了解以下配置文件
/etc/grafana/grafana.ini
/etc/init.d/grafana-server
/etc/sysconfig/grafana-server
/usr/lib/systemd/system/grafana-server.service
/usr/bin/grafana-cli
Grafana目录结构说明,从/etc/sysconfig/grafana-server
cat /etc/sysconfig/grafana-server
GRAFANA USER=grafana
#系统用户
GRAFNA_GROUP=grafana
#系统组
GRAFANA HOME=/usr/share/grafana #家目录,静态资源默认存放位置,升级时建议备份
LOG DIR=/var/log/grafana
DATA_DIR=/var/lib/grafana
MAX_OPEN_FILES=10000
CONF_DIR=/etc/grafana
CONF_FILE=/etc/grafana/grafana.ini
RESTART ON_UPGRADE=true
PLUGINS DlR=/var/lib/grafana/plugins#读取插件存目录
PROVISIONING_CFG_DIR=/etc/grafana/provisioning
#通过读取配置文件方式来配置datasource和dashboard,而不是在grafana图形窗口中操作
# Only used on systemd systems
PID FILE_DIR=/var/run/grafana#进程存放目录
Grafana主配置文件/etc/grafana/grafana.ini有大量的配置。
如修改数据存储位置、请求上下文、端口等。注意修改数据存储路径后,需要将原来位置数据同步到新的路径
[paths]
data = /data/grafanafdata
plugins = /data/grafana/plugins #同时还应该修改/etc/sysconfig/grafana-server中PLUGINS_DIR
[server]
http_port =8000
root_url =%(protocol)s://%(domain)s:%(http_port)s/grafana #添加请求上下文,便于ngx反向代理
serve from sub_path =true #与root ur配置使用
修改data或plugins默认存储路径时,除了改grafana.ini,还应该修改/etc/sysconfig/grafana-server和/etc/init.d/grafana-server(可选)
使用systemctl restart grafana-server命令读取了/etc/sysconfig/grafana-server中变量;
使用/etc/init.d/grafana-server restart重启时,当/etc/sysconfig/grafana-server不存在,则使用/etc/init.d/grafana-server中默认指定的。
mkdir /data/grafana
chown R grafana:grafana /data/grafana
systemctl restart grafana-server
Nginx中增加配置
server {
listen 8001;
server namemonitor.com:
location /grafana {
proxy_pass http://localhost:8000;
}
}
3、Grafana升级
升级前要先备份相关目录
cp -rp /lib/grafana /var/lib/grafana_$(date +%Y%m%d%H%M)
cp -rp /usr/share/grafana /usr/share/grafana_$(date +%Y%m%d%H%M)
cp -rp /etc/grafana /etc/grafana_$(date +%Y%m%d%H%M)
开始升级
yum -y install https://dl.grafana.com/oss/release/grafana-6.7.2-1.x86_64.rpm
重启,完成升级操作。
systemctl restart grafana-server.service
忘记密码重置命令
grafana-cli admin reset-admin-password admin@123456
4.Grafana插件安装并接入zabbix
1、在线安装插件
如果不指定插件安装位置,则默认安装位置为/var/ib/grafana/plugins;插件安装后需要重启grafana-server。
安装插件前,我们先来看一下插件安装命令grafana-cli的使用。
查看插件命令和安装
grafana-cli plugins list-remote |more
grafana-cli -h
grafana-cli plugins install grafana-clock-panel
grafana的环境变量在多个文件中有定义,比如/etc/sysconfig/grafana-server、/usr/sbin/grafana-cli、/etc/init.d/grafana-server,个人觉得不是很友好
使用--pluginsDir指定安装路径
grafana-cli --pluginsDir=/data/grafana/plugins plugins install alexanderzobnin-zabbix-app
也可以直接修改/usr/sbin/grafana-cli中插件默认安装路径,就不需要再指定路径
grafana-cli plugins install alexanderzobnin-zabbix-app
重启grafana-server
systemctl restart grafana-server
2、手动下载离线安装插件
若插件安装时下载超时,可以手动下载安装
手动下载安装方式步骡如下:
- 第一步:访问grafana官网 https://grafana.com/grafana/plugins?orderBy=weight\&direction=asc
- 第二步:查找要下载的插件,如:Pie Chart
常用插件下载
grafana-cli plugins install alexanderzobnin-zabbix-app
grafana-cli plugins install grafana-piechart-panel
grafana-cli plugins install agenty-flowcharting-panel
grafana-cli plugins install grafana-clock-panel
grafana-cli plugins install pierosavi-imageit-panel
grafana-cli plugins install jdbranham-diagram-panel
grafana-cli plugins install agenty-flowcharting-panel
3、配置Zabbix数据源
安装好alexanderzobnin-zabbix-app 插件并重启grafana-server后,我们就可以在Plugins(插件)列表中看到zabbix图标。