基于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
posted @ 2021-08-15 19:04  一片相思林  阅读(1274)  评论(0编辑  收藏  举报