Grafana部署与Zabbix集成,搭建开源IT监控平台

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&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配置文件添加server块
vim 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 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/200386.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之二叉树与堆以及力扣刷题函数扩展

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力 目录 1.前言 2.树 2.1概念 2.2树的相关概念 3.…

virtuoso layout版图设计 调用器件

在设计好一个电路之后&#xff0c;需要对其进行版图设计。 在原理图界面点击 点击ok 库和名字要跟原理图名字一致&#xff0c;一般自动就命名好了&#xff0c;点击ok 出现版图界面&#xff0c;点击左下角的图标。 选择要不要生成boundary 选择layer&#xff0c;一般为M1&#…

优维低代码实践:搜索功能

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

Linux之高级IO

目录 IO基本概念五种IO模型钓鱼人例子五种IO模型高级IO重要概念同步通信 VS 异步通信阻塞 VS 非阻塞其他高级IO阻塞IO非阻塞IO IO基本概念 I/O&#xff08;input/output&#xff09;也就是输入和输出&#xff0c;在著名的冯诺依曼体系结构当中&#xff0c;将数据从输入设备拷贝…

《opencv实用探索·四》Mat图像数据类型转换和归一化显示

一种数据类型转为另一种数据类型&#xff0c;不改变图像大小&#xff0c;但每个像素值可能会变 src.convertTo(dst, type, scale, shift);Scale和shitf默认为0&#xff08;这两个参数也相当于对比度和亮度&#xff09; 现在有个8位图像&#xff0c;把8位转成32位 可以看到像素…

WSDM 2024 | LLMs辅助基于内容的推荐系统增强BPR训练数据

本文提出了一种简单而有效的基于LLMs的图数据增强策略&#xff0c;称为LLMRec&#xff0c;以增强基于内容的推荐系统。LLMRec包含三种数据增强策略和两种去噪策略。数据增强策略包括从文本自然语言的角度挖掘潜在的协同信号, 构建用户画像(LLM-based), 并强化item side informa…

JS 倒计时方法(可改造)

起因&#xff1a; 写好备用。 代码&#xff1a; // 直接把方法写在了原型上&#xff0c;通过原型调用 /*** 倒计时* time_str String 到期时间(2023-11-28 16:50:00)* dom_obj Object 需要显示的倒计时的dom对象*/ Date.prototype.countdown function (time_str, dom_obj…

【古月居《ros入门21讲》学习笔记】13_服务数据的定义与使用

目录 说明&#xff1a; 1. 服务模型 2. 实现过程&#xff08;C&#xff09; 自定义服务数据 Person.srv文件内容 Person.srv文件内容说明 编译配置 在package.xml文件中添加功能包依赖 在CMakeLists.txt中添加编译选项 编译生成语言相关文件 创建服务器代码&#xf…

python获取系统当前进程数和最大进程数

参考&#xff1a; https://blog.51cto.com/u_16213345/7115864 https://www.baidu.com/s?wdpython%20%E8%8E%B7%E5%8F%96%E7%B3%BB%E7%BB%9F%E5%BD%93%E5%89%8D%E8%BF%9B%E7%A8%8B%E6%95%B0%E5%92%8C%E6%9C%80%E5%A4%A7%E8%BF%9B%E7%A8%8B%E6%95%B0&rsv_spt1&rsv_iqid…

2023年国内主流的低代码平台

低代码开发平台&#xff08;Low-Code Development Platform, LCDS&#xff09;为企业和开发者提供了高效的应用开发方式。这些平台使得开发者可以通过简化的设计界面快速创建和部署应用&#xff0c;大大提高了开发效率并降低了开发成本。 伴随数字化转型推进&#xff0c;选购低…

外汇天眼:外汇市场中的“双向交易”是什么意思?

说到外汇市场&#xff0c;总免不了提到它双向交易的优势&#xff0c;很多新手会对这一点有所疑问&#xff0c;今天我们就帮大家解决这一个疑问。 何谓双向交易&#xff1f; 金融市场上&#xff0c;交易者最常接触到的股票&#xff0c;多属于单向交易。 单向交易的模式便是「先…

1688 API接口的介绍丨商品详情页接口丨搜索商品列表接口

1688&#xff0c;作为中国领先的B2B电子商务平台&#xff0c;为全球的买家和卖家提供了一站式的采购和销售服务。而它的API接口&#xff0c;更是开放了1688平台的核心功能&#xff0c;让开发者能够根据自己的需求来定制和扩展商业应用。 1688 API接口的介绍 1688 API接口提供…

初刷leetcode题目(11)——数据结构与算法

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…

ntopng如何将漏洞扫描与流量监控相结合,以提高网络安全性

来源&#xff1a;艾特保IT 虹科干货 | ntopng如何将漏洞扫描与流量监控相结合&#xff0c;以提高网络安全性 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; ntopng为人所知的“身份”是被动流量监控。然而&#xff0c;如今的ntopng6.0也进化出主动监控功能来&#xf…

正则表达式及文本三剑客grep,awk,sed

目录 正则表达式 前瞻 代表字符 表示次数 位置锚定 分组或其他 grep 选项 范例 awk 前瞻 awk常见的内置变量 范例 sed 前瞻 sed格式 范例 搜索替代 格式 范例 分组后项引用 格式 范例 正则表达式 前瞻 通配符&#xff1a;匹配的是文件名 正则表达式&a…

【带头学C++】----- 八、C++面向对象编程 ---- 8.8 内联函数 inline

目录 8.8 内联函数 inline 8.8.1 声明内联函数 8.8.2 宏函数与内联函数的区别 8.8.3 使用内联函数需注意 8.9 函数重载 8.9.1 什么是函数重载 8.9.2 函数重载的条件 8.9.3 函数重载底层原理是如何实现的&#xff1f; 8.8 内联函数 inline 在C中&#xff0c;inline是一个…

docker镜像管理命令

镜像管理命令 docker build : 命令用于使用 Dockerfile 创建镜像 docker build [OPTIONS] PATH | URL | - OPTIONS说明&#xff1a; --add-host :向hosts文件中添加自定义 host:ip 映射 --build-arg[] :设置镜像创建时的变量&#xff1b; --cache-from :指定镜像用作当前构建…

今日份推荐、无广告、超实用的5款软件

​ 大家好&#xff0c;我又来啦&#xff0c;今天给大家带来的几款软件&#xff0c;共同特点都是无广告、超实用&#xff0c;大家观看完可以自行搜索下载哦。 1.键盘锁定工具——Iwck ​ Iwck是一款简单实用的键盘锁定工具&#xff0c;可以让你在需要的时候暂时停止键盘的所有…

P27 C++this 关键字

目录 前言 01 this关键字的引入 02 this关键字 前言 本章的主题是 C 中的 this 关键字。 以前第一次学qt的时候就遇到了this关键字&#xff0c;那时候还不是很会C&#xff0c;所以有点懵&#xff0c;现在我们就来讲解以下C中的this关键字 C 中有一个关键字 this&#xff0…

dockerfile文件:copy和add 异同

相同点&#xff1a; 复制文件或目录&#xff1a; 无论是 COPY 还是 ADD 都可以将文件或目录从构建上下文复制到容器中。支持源路径和目标路径&#xff1a; 两者都需要指定源路径和目标路径&#xff0c;用于指定要复制的文件或目录在主机上的位置以及在容器中的目标路径。 不同…
最新文章