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

news2025/1/19 14:35:58

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.coloradmin.cn/o/1280449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【hacker送书活动第7期】Python网络爬虫入门到实战

第7期图书推荐 内容简介作者简介大咖推荐图书目录概述参与方式 内容简介 本书介绍了Python3网络爬虫的常见技术。首先介绍了网页的基础知识&#xff0c;然后介绍了urllib、Requests请求库以及XPath、Beautiful Soup等解析库&#xff0c;接着介绍了selenium对动态网站的爬取和S…

电容和电感

一、电感 1&#xff09;图片 2&#xff09;作用 a&#xff09;储存容量 例如dcdc转换器的原理,将一个电压值转换成另外一个电压值 b&#xff09;选择信号 比如空气中弥漫着很多信号&#xff0c;我们应该怎么选取我们所需要的信号。 电感和电容可以看成一个电阻&#xff0c;当电…

Redis ziplist源码解析

area |<---- ziplist header ---->|<----------- entries ------------->|<-end->|size 4 bytes 4 bytes 2 bytes ? ? ? ? 1 byte--------------------------------------------------------------- comp…

MySQL进阶部分

存储引擎 MySQL体系结构图&#xff1a; 连接层&#xff1a; 最上层是一些客户端连接服务&#xff0c;主要完成一些类似于连接处理 &#xff0c;授权认证及相关的安全方案。服务器也会为安全接入的每个用户端验证它所具有的操作权限。 服务层&#xff1a; 第二层架构主要完成大…

数据科学:Matplotlib、Seaborn笔记

数据科学&#xff1a;Numpy、Pandas、Matplotlib、Seaborn 三、Matplotlib1.Matplotlib subplots函数2.tight_layout()函数3.Matplotlib grid()设置网格格式4.fill_between()函数示例设置x轴为时间刻度热力图 四、Seaborn1.set2.seaborn.scatterplot 参考 数据科学&#xff1a;…

github打不开,全网最简单解决方法,没有之一

下载watt toolkit&#xff0c; 选择‘github’&#xff0c;点击‘一键加速’&#xff0c; 具体步骤如下&#xff1a;去电脑微软商店下载watt toolkit&#xff0c;或者直接打开网址https://apps.microsoft.com/detail/9MTCFHS560NG?hlen-us&glUS 如图&#xff0c;点击安装i…

Sun Apr 16 00:00:00 CST 2023格式转换

Date date new Date(); log.info("当前时间为:{}",date); //yyyy-MM-dd HH:mm:ss SimpleDateFormat sdf new SimpleDateFormat(DateUtils.YYYY_MM_DD_HH_MM_SS); String dateTime s…

Android11适配已安装应用列表

Android11适配已安装应用列表 之前做过已安装应用列表的适配&#xff0c;最近国内版SDK升级到33和隐私合规遇到很多问题&#xff0c;于是把已安装应用列表记录一下&#xff1a; 1、在Android11及以上的适配&#xff1a; package com.example.requestinsttallapplistdemoimpo…

电磁兼容EMC理论基础汇总

目录 0. 序言 1. EMC的基础介绍 1.1 EMC电磁兼容的定义 1.2 EMC的重要性 1.3 EMC的三要素 2. 库仑定律 3. 趋肤效应与趋肤深度 4. 电阻抗公式 4.1 电阻 4.2 容抗 4.3 感抗 4.4 电路元件的非理想性 5. 麦克斯韦方程组 5.1 高斯磁定律 5.2 高斯定律 5.3 法拉…

一文讲透Python函数的创建和调用

1.Python提供了函数作为完成某项工作的标准化代码块 Python本质上是一种编程语言&#xff0c;通过编写运行代码的方式实现工作目标。读者可以想象&#xff0c;如果针对机器学习或数据统计分析的每种方法或统计量计算都要用户自行编写代码&#xff0c;那么显然在很多情况下是无…

Rust 语言:认识 Rust

本心、输入输出、结果 文章目录 Rust 语言&#xff1a;认识 Rust前言Rust的特点Rust LOGO Rust 在IT行业的应用前景Rust 是一门系统级编程语言相关链接花有重开日&#xff0c;人无再少年实践是检验真理的唯一标准 Rust 语言&#xff1a;认识 Rust 编辑&#xff1a;简简单单 Onl…

多级缓存自用

1.什么是多级缓存 传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图: 存在下面的问题: •请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈 •Redis缓存失效时,会对数据库产生冲击 多级缓存就是充分利用请求处理的每个环节,添加缓…

python系统调用执行ping命令无法检测到超时情况(破案了:ping命令-W参数单位为s,我写了个1000)

文章目录 问题描述破案了&#xff1a;ping命令-W参数单位为s&#xff0c;我写了个1000。。。,,ԾㅂԾ,, 问题描述 我用了系统调用去执行ping&#xff0c;一开始用os.system()&#xff0c;有问题&#xff0c;后面用subprocess问题还是存在&#xff0c;后来我把这个改了&#xff…

VMware17 下载、安装、成功安装效果、完整卸载

VMware17 下载、安装、卸载 下载 VMware17 安装 更改安装路径 去掉这两个复选框&#xff0c;点击安装。 安装结束&#xff0c;点击许可证。 输入序列号&#xff0c;点击【输入】 序列号&#xff1a;MC60H-DWHD5-H80U9-6V85M-8280D 点击完成 测试安装效果 永不过期&am…

Linux 编译安装colmap

COLMAP可以作为独立的app&#xff0c;通过命令行或者图形交互界面使用&#xff0c;也可以作为一个库被包含到其他源代码中。 这里记录一下编译安装colmap的过程&#xff0c;首先需要安装好CUDA&#xff0c;CUDA具体安装过程这里就不赘述了。在GitHub上下载源代码&#xff0c;我…

Stream API 方法使用总结

文章目录 1.1、Stream介绍1.2、Stream创建对象&#xff08;1&#xff09;empty()方法&#xff08;2&#xff09;of()方法&#xff08;3&#xff09;Arrays.stream()方法&#xff08;4&#xff09;list.stream()方法 1.3、Stream中间方法&#xff08;1&#xff09;filter()方法&…

100W用户、8000W流量在线贺卡应用架构如何优化?

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容&#x1f4e2;文章总结&#x1f4e5;博主目标 &#x1f50a;博主介绍 &#x1f31f;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作…

Trie字符串统计(字典树的插入与查找)

题目&#xff1a; 插入模拟&#xff1a;假如现在要依次插入cat,car,busy,cate,bus,car 查找&#xff1a; 代码&#xff1a; import java.util.Scanner;public class Main {public static int[][] chnew int[100010][26];public static int[] cntnew int[100010];public static…

维基百科文章爬虫和聚类:高级聚类和可视化

一、说明 维基百科是丰富的信息和知识来源。它可以方便地构建为带有类别和其他文章链接的文章&#xff0c;还形成了相关文档的网络。我的 NLP 项目下载、处理和应用维基百科文章上的机器学习算法。 在我的上一篇文章中&#xff0c;KMeans 聚类应用于一组大约 300 篇维基百科文…

scikit-learn线性回归法进行利润预测

大家好&#xff0c;生成式人工智能无疑是一个改变游戏规则的技术&#xff0c;但对于大多数商业问题来说&#xff0c;回归和分类等传统的机器学习模型仍然是首选。 私募股权或风险投资这样的投资者利用机器学习&#xff0c;首先必须了解关注的数据以及它是如何被使用的。投资公…