本文介绍: 但是我还是想用mysql作为数据库存储较为稳定点,因此需要将原有的grafana.db转为sql文件导入mysql数据库中,而且我打算将grafana数据库存储zabbix服务器数据库上,省得麻烦了。初步想法是Zabbix监控、但是本身Zabbix图形展示没有那么好看,因此看到了Grafana,一开始打算在grafana监控告警但是发现比较复杂,还没有那水平,因此现在是Zabbix收集数据配置告警,Grafana图形展示修改grafana.ini配置文件,修改为使用mysql存储

Grafana部署与Zabbix集成

目前在一家公司主要是网络运维、IT支持,每次需要检查服务器状态都是需要手动登录系统进行查看,因此想着部署一套监控系统功能需要实现监控可视化告警等。由于预算没有,服务器资源倒是有空闲的,自己琢磨搭建一套开源监控系统

初步想法是Zabbix监控、但是本身Zabbix图形展示没有那么好看,因此看到了Grafana,一开始打算在grafana做监控告警但是发现比较复杂,还没有那水平,因此现在是Zabbix收集数据,配置告警,Grafana作图形展示

Zabbix安装部署见之前的教程Zabbix6.4.8部署

本次是Grafana的部署集成配置

Grafana部署

这边使用纯净Centos8进行安装,配置好系统yum更新以及系统时间等,见之前的文章

系统:Centos8

版本:Grafana v10.2.1

下载地址Grafana下载 可以下载rpm上传服务器或者直接yum下载

yum安装
yum安装
安装完成
安装完成
# yum 安装
yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.2.1-1.x86_64.rpm

# 使用systemctl进行管理
# 刷新缓存
systemctl daemon-reload

# 启动服务进程
systemctl start grafana-server.service

# 开机启动进程
systemctl enable grafana-server.service

# 查看服务状态
systemctl status grafana-server.service

默认配置文件/etc/grafana/grafan.ini

默认程序目录目录/usr/share/grafana,内容如下:包含程序目录等,但是默认配置文件在以及PID目录/etc/grafana/grafan.ini定义

drwxr-xr-x.  10 root root   210 11月 17 14:04 .
drwxr-xr-x. 103 root root  4096 11月 17 14:34 ..
drwxr-xr-x.   2 root root    62 11月 17 10:31 bin
drwxr-xr-x.   3 root root   107 11月 17 13:58 conf
drwxr-xr-x.   6 root root    73 11月 17 14:09 data
-rw-r--r--.   1 root root  5436 11月 14 18:15 Dockerfile
drwxr-xr-x.   3 root root    21 11月 17 10:31 docs
-rw-r--r--.   1 root root 12155 11月 14 18:15 LICENSE
-rw-r--r--.   1 root root   105 11月 14 18:15 NOTICE.md
drwxr-xr-x.   2 root root   254 11月 17 10:31 npm-artifacts
drwxr-xr-x.   6 root root    58 11月 17 10:31 packaging
drwxr-xr-x.   3 root root    78 11月 17 10:31 plugins-bundled
drwxr-xr-x.  16 root root   286 11月 17 10:31 public
-rw-r--r--.   1 root root  3157 11月 14 18:15 README.md
-rw-r--r--.   1 root root     8 11月 14 18:15 VERSION

插件和默认数据库目录/var/lib/grafana,包含grafana.db数据库文件plugins插件目录。

[root@grafana grafana]# ls -la
总用量 1164
drwxr-xr-x.  6 grafana grafana     111 11月 17 15:51 .
drwxr-xr-x. 42 root    root       4096 11月 17 10:31 ..
drwxr-x---.  3 grafana grafana      15 11月 17 10:32 alerting
drwx------.  2 grafana grafana       6 11月 17 10:32 csv
-rw-r-----.  1 grafana grafana 1183744 11月 17 13:53 grafana.db
-rw-r--r--.  1 root    root          0 11月 17 11:50 grafana.sql
drwxr-xr-x.  4 root    root         67 11月 23 11:27 plugins
drwx------.  2 grafana grafana       6 11月 17 10:32 png

默认使用sqlite作为数据库使用端口3000访问网页服务。但是我还是想用mysql作为数据库存储较为稳定点,因此需要将原有的grafana.db转为sql文件再导入到mysql数据库中,而且我打算将grafana的数据库存储在zabbix服务器的数据库上,省得麻烦了。

grafana数据库设置

登录zabbix服务器。

# 创建数据库
mysql> create database grafana character set utf8mb4 collate utf8mb4_bin;

# 创建一个数据库用户账号是grafana,后面host写grafana的IP地址,否则不能正常访问
mysql> create user 'grafana'@'192.168.80.25' identified by 'E2Bsfdfq&jJWQN’;

# 授予grafana用户grafana这个数据库的所有权mysql> grant all privileges on grafana.* to grafana@’192.168.80.25’;

# 设置允许导入数据库语句
mysql> set global log_bin_trust_function_creators = 1;

# 刷新用户权限mysql> flush privileges;

# 退出数据库
mysql> exit;

数据库转换

# 进入目录
/var/lib/grafana

# 转换数据
sqlite3 grafana.db .dump > grafana.sql

# yum安装mysql客户端
yum install mysql

# 导入数据库,指定zabbix服务器和数据库端口用户、grafana,-D 导入数据库,回车输入密码
mysql -h 192.168.80.24 -u grafana -p -D grafana < grafana.sql

# 检查数据库及表是否导入成功
musql -h 192.168.80.24 -ugrafana -p

# 查看数据库
show databases;

# 进入数据库
use grafana;

# 查看数据表
show tables;

修改grafana.ini配置文件,修改为使用mysql存储

# 进入配置文件目录
cd /etc/grafana/

# 备份配置文件
mv grafana.ini grafana.ini.bak

# 编辑文件
vim/etc/grafana/grafana.ini

# 找到[database]块,修改为对应账号密码
[database]
type = mysql
host = 192.168.80.24:3306
name = grafana
user = grafana
password =E2BuFety&amp;jJWQN

:wq保存文件

# 重启服务
systemctl restart grafana-server

开启防火墙,默认端口3000。

# 开启端口
firewall-cmd --zone=public --add-port=3000/tcp --permanent

# 刷新防火墙状态
firewall-cmd --reload

Grafana前端设置

http://192.168.80.25:3000登录首页,默认账号密码admin/admin

首页 默认是英文设置中文显示,但是吧汉化似乎也不全,有一些没完成汉化。

设置中文
设置中文
新建仪表板
新建仪表板

grafana的大概思路是在一个仪表板展示所有数据,仪表板里面的pannel面板选择具体的监控数据,如内存指标、CPU指标网络流量等。

我这边主要是从zabbix读取监控指标,grafana默认是不支持的,需要安装插件,有在线安装或者离线下载上传到grafana服务器的方式安装插件。 在线安装:

# 进入程序目录
cd /usr/share/grafana/bin

# 搜索插件
grafana-cli plugins list-remote|grep zabbix

# 安装
grafana-cli plugins install alexanderzobnin-zabbix-app

# 重启服务
systemctl restart grafana-server.service

离线方式下载地址zabbix插件下载 下载完成上传/var/lib/grafana/plugins目录,修改下权限

默认安装完成的插件是禁用状态需要手动开启,找到管理–插件–zabbix

插件
插件
启用插件
启用插件

配置zabbix数据源 URL填写Zabbix地址后面api_jsonrpc.php不用修改 http://192.168.80.24/api_jsonrpc.php

类型选择browser,下面认证填写Zabbix的登录账号密码保存测试成功即可

仪表板设置

仪表板设置 有多种方式添加仪表板:手动创建、从grafana导入模版

手动创建:首页–仪表板–创建新仪表板

创建可视化 数据源使用zabbix,然后选择对应展示模式,有时序图、折线图stat状态板。

设置查询数据 group:主机群组 host:主机 item tag:监控项标签 item:监控项

通过创建多个可视化面板实现一个仪表板监控一台主机或者多个主机的指标展示一个仪表板上。

展示
展示

使用nginx代理grafana

原本想着修改grafana的默认3000端口为80,但是好像不行改低级别的端口,因此只能使用nginx代理了。

# 下载nginx包
wget https://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.24.0-1.el8.ngx.x86_64.rpm

# 安装
yum localinstall nginxxxxx.rpm

# 启动
systemctl start nginx

# 设置开机启动
systemctl enable nginx

# 修改nginx配置文件
vim /etc/nginx/nginx.conf

# 在http添加如下内容http{
  map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
        }


}

# 在conf.d文件夹新建grafana.conf配置文件添加servervim conf.d/grafana.conf

# 内容如下,修改对应地址
server {
    listen       80;
    server_name  192.168.80.25;
    #root   /usr/share/nginx/html;
    #index  index.html index.htm;
    access_log  /var/log/nginx/host.access.log  main;

    location / {
        #root   /usr/share/nginx/html;
        #index  index.html index.htm;
        #proxy_set_header Host $http_host;
        proxy_pass http://192.168.80.25:3000;
    }

    location /grafana/api/live/ws {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Host $http_host;
        proxy_set_header Connection $connection_upgrade;
        proxy_pass http://192.168.80.25:3000/;
  }
  
# 修改完成保存文件,重启nginx
systemctl restart nginx

# 放通防火墙端口和关闭selinux
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

# 修改selinux配置文件,注释enforcing,添加一行
vim /etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled


# 重启服务器生效
reboot

到此就实现了Grafana+Zabbix的集成展示了,并且使用了nginx80端口代理。如果中间遇到问题需要一个解决

本文由 mdnice 平台发布

原文地址:https://blog.csdn.net/weixin_43483442/article/details/134690377

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_10421.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注