Linux知识库
Linux基础知识!
Linux格式化硬盘以及格式化分区
linux基础常用知识
linux更换yum源
linux挂载windows SMB共享目录
linux开机启动级别
linux网卡配置
linux配置SMB服务
CentOS 8 firewalld配置
Linux软件管理:RPM软件包与YUM管理
Linux用户与组概念
Linux文件与目录权限基础
Linux计划任务管理
Linux中文本文件内容的查看
Linux基础-服务(service)和systemd管理服务
Vim编辑器基本操作
apt更换国内源
Linux程序服务!
Code-server在线编程服务器部署
Cloudreve网盘搭建
Emby多媒体影音系统搭建
chevereto图床搭建教程
Frp内网穿透服务器搭建
FTP服务器搭建
gitlab服务器搭建
Plex搭建
syncthing同步服务器搭建
Wordpress博客搭建
Typecho博客搭建
zabbix搭建(失败)
Aria2离线下载服务器搭建
KMS激活服务器搭建
CentOS搭建NTP服务
Grafana部署与Zabbix集成,部署开源IT系统监控平台
Linux应用环境搭建配置!
nginx编译安装
PHP8编译安装
Linux 关闭selinux
yum安装redis数据库
宝塔环境无法删除.user.ini
宝塔面板安装
mysql8.0.29编译安装
nginx安装(yum方式)
Linux系统基础知识
Linux命令行基础知识
使用Cerbot申请免费证书
ModSecurity 安装编译与连接nginx
Zabbix6.4.8安装部署
本文档使用 MrDoc 发布
-
+
首页
Grafana部署与Zabbix集成,部署开源IT系统监控平台
# Grafana部署与Zabbix集成 目前在一家公司主要是网络、运维、IT支持,每次需要检查服务器状态都是需要手动登录系统进行查看,因此想着部署一套监控系统,功能上需要实现监控、可视化、告警等。由于预算没有,服务器资源倒是有空闲的,自己琢磨搭建一套开源的监控系统。 初步想法是Zabbix监控、但是本身Zabbix的图形展示没有那么好看,因此看到了Grafana,一开始打算在grafana做监控告警但是发现比较复杂,还没有那水平,因此现在是Zabbix收集数据,配置告警,Grafana作图形展示。 Zabbix安装与部署见之前的教程:[Zabbix6.4.8部署](https://mp.weixin.qq.com/s?__biz=MzU1Mjc0NTI0NQ==&mid=2247484259&idx=1&sn=e19d45c18e7e3ea0db29e783f903ed51&chksm=fbfc2311cc8baa07be6153c76107f069c0df42694749822a46ddd2288a8c2a916ea6f92d9721#rd) 本次是Grafana的部署与集成配置。 ## Grafana部署 这边使用纯净Centos8进行安装,配置好系统yum更新以及系统时间等,见之前的文章。 系统:Centos8 版本:Grafana v10.2.1 下载地址:[Grafana下载](https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1) 可以下载好rpm上传到服务器或者直接yum下载。   ```linux # 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`中定义。 ```linux 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插件目录。 ```linux [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服务器。 ```linux # 创建数据库 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; ``` 数据库转换: ```linux # 进入目录 /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存储。 ```linux # 进入配置文件目录 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。 ```linux # 开启端口 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服务器的方式安装插件。 在线安装: ```linux # 进入主程序目录 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插件下载](https://grafana.com/grafana/plugins/alexanderzobnin-zabbix-app/?tab=installation) 下载完成上传到`/var/lib/grafana/plugins`目录,修改下权限。 默认安装完成的插件是禁用状态,需要手动开启,找到管理--插件--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代理了。 ```linux # 下载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端口代理。如果中间遇到问题需要一个个解决。
Chuck
2023年11月29日 15:08
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码