基于Prometheus+Grafana搭建可视化监控服务 (三) Grafana可视化
基于Prometheus+Grafana搭建可视化监控服务 (三) Grafana可视化
前两篇
基于Prometheus+Grafana搭建可视化监控服务 (一) Prometheus监控
基于Prometheus+Grafana搭建可视化监控服务 (二) AlertManager告警
一、概述
Grafana官网:https://grafana.com
二、安装Grafana
下载地址:https://grafana.com/grafana/download
2.1.下载安装
[root@server ~]# cd /usr/local/src
[root@server src]# wget https://dl.grafana.com/oss/release/grafana-8.0.6-1.x86_64.rpm
[root@server src]# yum install grafana-8.0.6-1.x86_64.rpm
2.2.使用MySQL作为存储数据库(可选)
Grafana默认配置是sqlite3数据库(/var/lib/grafana/grafana.db)
这里修改为MySQL
create database grafana DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
grafana默认配置文件为/etc/grafana/grafana.ini,找到[database]部分,修改grafana存储信息
[root@server src]# vi /etc/grafana/grafana.ini
[database]
type = mysql
host = 192.168.1.100:3306
name = grafana
user = root
password = 1234@Test
也可过url进行定义database信息,参考如下:
url = mysql://USER:PASSWORD@IPADDRESS:3306/DATABASE_NAME
2.3.配置server(可选)
为了能外网访问grafana(如果不配置,则告警邮件中链接无法访问)
需修改配置文件grafana.ini,找到[server]部分,修改grafana服务地址信息
[root@server src]# vi /etc/grafana/grafana.ini
[server]
protocol = http
http_port = 80
domain = monitor.domain.com
root_url = %(protocol)s://%(domain)s:%(http_port)s/
2.4.启用插件(可选)
2.4.1.安装饼图插件(可选)
旨在解决部分图表涉及饼图不能正确显示问题
[root@server src]# grafana-cli plugins install grafana-piechart-panel
2.4.2.安装截图插件(可选)
旨在解决告警邮件中的图形截图没有正确显示问题
[root@server src]# grafana-cli plugins install grafana-image-renderer
[root@server src]# yum -y install libXcomposite libatk-bridge* libXss* libgtk*
如果仍不能正确显示,通过查看/var/log/message日志信息进行排查解决
2.5.安装字体(可选)
旨在解决告警邮件中的中文乱码问题
从本地电脑拷贝或互联网下载simsun.ttc(宋体)
把文件放到 /usr/share/fonts/simsun.ttc
依次执行如下命令
[root@server src]# mkfontdir
[root@server src]# mkfontscale
[root@server src]# fc-cache -fv
修改rendering_language值为zh
[root@server src]# vi /etc/grafana/grafana.ini
rendering_language = zh
2.6.配置告警媒介(可选)
这里配置邮件告警
[root@server src]# vi /etc/grafana/grafana.ini
#################################### SMTP / Emailing ##########################
[smtp]
enabled = true
host = mail.domain.com:25
user = devops.domain.com
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = xxxxx
;cert_file =
;key_file =
skip_verify = true
from_address = devops@domain.com
from_name = XXX运维监控
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
# SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
;startTLS_policy = NoStartTLS
[emails]
;welcome_email_on_sign_up = false
;templates_pattern = emails/*.html
2.7.启动grafana服务
[root@server src]# systemctl start grafana-server
#查看启动状态
[root@server src]# systemctl status grafana-server
#配置为开机启动
[root@server src]# systemctl enable grafana-server
2.8.访问Grafana
默认地址:http://ip:3000/
根据配置的server地址访问:http://monitor.domain.com
默认账号密码都为admin
2.9.Grafana通过Yum安装默认配置信息
二进制文件: /usr/sbin/grafana-server
init.d 脚本: /etc/init.d/grafana-server
环境变量文件: /etc/sysconfig/grafana-server
配置文件: /etc/grafana/grafana.ini
启动项: grafana-server.service
日志文件:/var/log/grafana/grafana.log
默认配置的sqlite3数据库:/var/lib/grafana/grafana.db
前端静态文件目录:/usr/share/grafana/public
三、配置看板数据源
功能路径:Configuration->datasources
把Prometheus配置作为默认数据源
如果期望可视化关系型数据库中数据,则可相应加上对应数据源配置
四、配置看板
官网Dashboard搜索https://grafana.com/grafana/dashboards?dataSource=prometheus&search=redis
4.1.根据ID导入
-
可视化node_exporter, 8919
-
可视化mysql_exporter, 7362
-
可视化rabbitmq_exporter, 10991
-
可视化redis_exporter, 763
-
可视化doris_exporter, 9734
-
可视化blackbox_exporter, 9965或13659
4.2.MySQL看板涉Buffer Pool Size of Total RAM图表值显示No data问题解决
把当前的 (mysql_global_variables_innodb_buffer_pool_size{instance="$host"} * 100) / on (instance) node_memory_MemTotal_bytes{instance="$host"}
改为
(label_replace(mysql_global_variables_innodb_buffer_pool_size{instance="$host"}, "nodename", "$1", "instance", "(.*):.*") * 100) / on(nodename) (label_replace(node_memory_MemTotal_bytes, "nodename", "$1", "instance", "(.*):.*"))
4.3.Redis看板涉Memory Usage显示N/A问题解决
Memory Usage图表一直是N/A。是因为redis_memory_max_bytes 获取的值为0
导致 redis_memory_used_bytes / redis_memory_max_bytes 结果不正常。
解决办法:将redis_memory_max_bytes 改为服务器的真实内存大小。
例如:redis_memory_used_bytes{instance=~"$instance"} / 65807920
五、数据源切换方法
如果grafana数据已经初始化为sqlite3存储格式,想切换为MySQL
方法如下:
5.1.先停止grafana
[root@server src]# systemctl stop grafana-server
5.2.导出grafana的sqlite数据库为mysql格式
[root@server src]# cd /var/lib/grafana/
[root@server grafana]# vi export_sqlite.sh
#!/bin/bash
DB=$1
TABLES=$(sqlite3 $DB .tables | sed -r 's/(\S+)\s+(\S)/\1\n\2/g' | grep -v migration_log)
for t in $TABLES; do
echo "TRUNCATE TABLE $t;"
done
for t in $TABLES; do
echo -e ".mode insert $t\nselect * from $t;"
done | sqlite3 $DB
执行导出命令:
[root@server grafana]# chmod +x export_sqlite.sh
[root@server grafana]# ./export_sqlite.sh grafana.db > grafana.sql
5.3.更改grafana配置文件
grafana默认配置文件为/etc/grafana/grafana.ini,找到[database]部分,修改grafana存储信息
[root@server src]# vi /etc/grafana/grafana.ini
[database]
type = mysql
host = 192.168.1.100:3306
name = grafana
user = root
password = 1234@Test
也可过url进行定义database信息,参考如下:
url = mysql://USER:PASSWORD@IPADDRESS:3306/DATABASE_NAME
5.4.数据库导入到MySQL
[root@server grafana]# mysql -uroot -p -D grafana < grafana.sql
5.5.启动grafana
[root@server grafana]# systemctl start grafana-server