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.mzph.cn/news/183625.shtml

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

相关文章

智能工厂是什么?

今天就聊聊企业智能工厂的打造&#xff0c;企业想实现数字化转型建立智能工厂&#xff0c;就需要先建设数字化车间&#xff0c;可以说数字化车间是建设智能工厂的重要一环&#xff0c;智能工厂的基础是数字化车间。数字化车间可以实现企业生产过程中车间计划调度、工艺执行管理…

基于python 医院预约挂号系统-计算机毕业设计源码24802

摘 要 随着互联网时代的到来&#xff0c;同时计算机网络技术高速发展&#xff0c;网络管理运用也变得越来越广泛。因此&#xff0c;建立一个基于django 医院预约挂号系统 &#xff0c;会使&#xff1b;医院预约挂号系统的管理工作系统化、规范化&#xff0c;也会提高平台形象&a…

基于javaweb的宠物服务商城系统设计与开发

摘 要 最近几年以来&#xff0c;宠物在人们的日常生活中所占的地位越来越重要了&#xff0c;它们不仅仅是我们的朋友&#xff0c;也成为了我们家庭中的一份子。21世纪&#xff0c;信息技术飞速发展&#xff0c;计算机行业日新月异&#xff0c;极大地带动了信息的流动&#xff…

顺丰JAVA开发一面—面试实战经验分析【已通过】

文章目录 面试总结面试开始项目相关基础知识反问环节 顺丰JAVA开发一面面试过程中的问题确实涵盖了很多方面&#xff0c;从项目架构到基础知识再到具体技术细节都有所涉及。 面试官的提问风格也是比较开放的&#xff0c;注重考察面试者的深度理解和解决问题的能力。以下是对每个…

c语言:回文字符串

题目&#xff1a; 思路&#xff1a; 创建一个字符数组&#xff0c;然后判断字符串长度&#xff0c;用循环&#xff0c;看对应字符是否相等&#xff0c;相等则输出&#xff0c;不相等则将对应字符ascll较大的改成ascll较小的&#xff08;题目要求字典最小的情况&#xff09;。…

手势识别4:C/C++实现手部检测和手势识别(含源码下载)

手势识别4&#xff1a;C/C实现手部检测和手势识别(含源码下载) 目录 手势识别4&#xff1a;C/C实现手部检测和手势识别(含源码下载) 1. 前言 2. 手势识别模型&#xff08;YOLOv5&#xff09; &#xff08;1&#xff09;手势识别模型训练 &#xff08;2&#xff09;将Pyto…

GoLong的学习之路,进阶,Redis

这个redis和上篇rabbitMQ一样&#xff0c;在之前我用Java从原理上进行了剖析&#xff0c;这里呢&#xff0c;我做项目的时候&#xff0c;也需要用到redis&#xff0c;所以这里也将去从怎么用的角度去写这篇文章。 文章目录 安装redis以及原理redis概念redis的应用场景有很多red…

【开源】基于Vue+SpringBoot的创意工坊双创管理系统

项目编号&#xff1a; S 049 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S049&#xff0c;文末获取源码。} 项目编号&#xff1a;S049&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 管理员端2.2 Web 端2.3 移动端 三、…

nodejs 沙盒逃逸

1.[GFCTF 2021]ez_calc 一道很有意思的一道nodejs的题 沙箱逃逸和绕过&#xff1a; F12 看源码 if(req.body.username.toLowerCase() ! admin && req.body.username.toUpperCase() ADMIN && req.body.passwd admin123){ // 登录成功&am…

Qt MVC示例 simpletreemodel 树模型

Qt MVC示例 simpletreemodel 树模型 从文本中读取树模型数据&#xff0c;缩进代表子项 TreeItem 表示一行字符串数据 treeitem.h #ifndef TREEITEM_H #define TREEITEM_H#include <QList> #include <QVariant>//! [0] class TreeItem { public:explicit Tree…

聚焦清晰度评价指标所用到的各种算法

首先&#xff0c;我想吐槽一下&#xff0c;看了好几篇聚焦评价函数的文章&#xff0c;说到底都是一篇文章转载或者重复上传&#xff0c;介绍了将近 15 种清晰度的算法&#xff0c;原文找了半天都没找到在哪&#xff0c;最多也仅能找到一些比较早的转载。 无参考图像的清晰度评…

压缩字符串II

null备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/string-compression/description/ 给你一个字符数组 chars &#xff0c;请使用下述算法压缩&#xff…

Moonbeam生态项目分析 — — 去中心化交易所Beamswap

流动性激励计划Moonbeam Ignite是帮助用户轻松愉快体验Moonbeam生态的趣味活动。在Moonbeam跨链连接的推动下&#xff0c;DeFi的各种可能性在这里爆发。DeFi或许不热门&#xff0c;但总有机会捡漏&#xff0c;了解Monbeam生态项目&#xff0c;我们邀请Moonbeam大使分享他们的研…

【教程】 一文部署配置并入门 Redis

综述 什么是Redis Redis官网——Redis.io Redis, 作为一个高性能的键值对数据库&#xff0c;主要应用于以下场景&#xff1a; 缓存系统&#xff1a;由于其高速读写能力&#xff0c;Redis 非常适合用作缓存系统&#xff0c;减少数据库负载。 会话存储&#xff08;Session St…

单片机_RTOS_架构

一. RTOS的概念 // 经典单片机程序 void main() {while (1){喂一口饭();回一个信息();} } ------------------------------------------------------ // RTOS程序 喂饭() {while (1){喂一口饭();} }回信息() {while (1){回一个信息();} }void main() {create_task(喂饭);cr…

【Hadoop】集群资源管理器 YARN

一、yarn 简介 Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.x 引入的分布式资源管理系统。主要用于解决 hadoop 1.x 架构中集群资源管理和数据计算耦合在一起&#xff0c;导致维护成本越来越高的问题。 yarn主要负责管理集群中的CPU和内存 用户可以将各种服…

yolov1网络结构说明

文章目录 一. 网络结构二. 网络说明1. 网络的输入2. 网络的输出(1) 5 5表示:每个网格使用两个先验框进行预测。(2) “5”表示&#xff1a;每个先验框包含的预测信息的数量。(3) 20表示&#xff1a;20个分类预测值(4) 每个网格能预测几个目标&#xff1f; 一. 网络结构 论文下…

在日常工作中怎么处理vue项目中的错误的?

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue项目中的错误如何处理 目录 一、错误类型 二、如何处理 后端接口错误 代码逻辑问题 全局设…

Elasticsearch 快照如何工作?

作者&#xff1a;Lutf ur Rehman Elastic 提供许多由讲师指导的面对面和虚拟现场培训以及点播培训。 我们的旗舰课程是 Elasticsearch 工程师、Kibana 数据分析和 Elastic 可观测性工程师。 所有这些课程都会获得认证。有关这些课程的详细介绍&#xff0c;请参考我之前的文章 “…

知识蒸馏相关基础知识

知识蒸馏 前置知识 Loss 现在分数-正确分数1 例&#xff1a; 正则化 Regularization 用来防止过拟合 知识蒸馏相关 softmax 把分数转换为概率的一种方法&#xff0c;e的次方 hard targets 和 soft targets 蒸馏温度 T 在原来的softmax下&#xff0c;除以某个系数&am…