首页 > 其他分享 >zabbix+grafana安装部署

zabbix+grafana安装部署

时间:2024-08-31 17:52:35浏览次数:14  
标签:部署 server zabbix mysql grafana CPU css

基本介绍

Zabbix 是一个开源的企业级监控解决方案,用于监控 IT 基础设施,包括服务器、网络设备、应用程序和服务等。它提供了全面的监控功能、强大的图形化界面和灵活的报警系统,适合于大规模环境中的监控需求。

主要功能

网络监控:监控网络设备的性能,包括路由器、交换机、防火墙等,支持 SNMP 协议。

服务器监控:监控服务器的状态和性能,包括 CPU、内存、磁盘、网络等资源。

应用程序监控:支持对应用程序的状态和性能进行监控,包括 Web 应用、数据库等

报警和事件管理:支持多种通知方式,包括电子邮件、短信、脚本执行等。可以配置动作和自动化处理。

图形化展示:提供丰富的仪表板和图形化视图,方便用户查看监控数据和状态。

架构组件

Zabbix Server

  • 核心组件:Zabbix Server 是系统的核心组件,负责数据收集、处理和存储。它管理所有的监控任务、触发器和报警。

Zabbix Agent

  • 数据收集:Zabbix Agent 是安装在被监控主机上的代理,用于收集主机的性能和状态数据,并将数据发送到 Zabbix Server。

Zabbix Proxy

  • 数据转发:Zabbix Proxy 用于在远程地点收集数据,并将数据转发到 Zabbix Server,适用于分布式监控场景。

Zabbix Frontend

  • 用户界面:Zabbix Frontend 是基于 Web 的图形化用户界面,提供监控数据的可视化展示和管理功能。

优势

全面的监控功能:支持多种监控方式和数据源,适合复杂的监控需求。

强大的报警和事件管理:灵活的报警系统和自动化处理功能,适用于各种场景。

良好的图形化界面:直观的用户界面和丰富的可视化功能,帮助用户有效地管理和分析监控数据。


虚拟机方式部署

环境准备

卸载zabbix

rpm -qa | grep zabbix
yum remove zabbix-*

查看httpd状态,并启动

systemctl status httpd

关闭防火墙并设置开机不启动

systemctl stop firewalld
systemctl disable firewalld

关闭selinux

setenforce 0

永久关闭selinux

vi /etc/selinux/config

SELINUX=disabled


部署zabbix-server

下载repo文件

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

修改yum源的地址为ailiyun

sed -i.bak ‘s#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#’ /etc/yum.repos.d/zabbix.repo
yum clean all

查看repo文件是否下载并下载zabbix

cd /etc/yum.repos.d
cat zabbix.repo

name=Zabbix Official Repository - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

yum install zabbix-server-mysql zabbix-agent -y ( yum install epel-release -y)


安装前端

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache fast
yum -y install centos-release-scl
vim /etc/yum.repos.d/zabbix.repo

CentOS-SCLo-scl.repo:
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/sclo/x86_64/sclo/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
CentOS-SCLo-scl-rh.repo:
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/sclo/x86_64/rh/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

安装前端环境

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

安装zabbix所需的数据库

wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
yum install -y mysql-community-server
(若显示没有公钥导入:sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022)


配置数据库

启动mysql

systemctl start mysqld.service

获取MySQL临时用户名密码

grep ‘temporary password’ /var/log/mysqld.log

进入MySQL

mysql -u root -p

设置账号密码

mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘密码’;

授权给其他的机器来连接

mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY ‘密码’ WITH GRANT OPTION;

刷新权限

mysql> FLUSH PRIVILEGES;

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> create user zabbix@localhost identified by ‘Tgqs@123’;

mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> exit;

设置mysql开机启动

systemctl enable mysqld
systemctl daemon-reload

设置MySQL的字符集为UTF-8,令其支持中文

vim /etc/my.cnf

[mysql]
default-character-set=utf8

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-storage-engine=INNODB
character_set_server=utf8
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

重启一下MySQL,令配置生效

systemctl restart mysqld
systemctl enable mysqld
systemctl daemon-reload

zabbix导入数据库

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix;
输入密码:

修改时区

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai

systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

这里如果是自己下载php73等其他版本,可能网页端会起不来

zabbix前端已经安装完成!超级用户名是Admin,密码是zabbix

agent客户端部署

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i ‘s#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#’ /etc/yum.repos.d/zabbix.repo

yum install zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
netstat -tunlp | grep zabbix

vim /etc/zabbix/zabbix_agentd.conf

LogFileSize=0
Server=172.16.208.12    #修改为server端主机IP
ServerActive=172.16.208.12     #修改为server端主机IP
Hostname=172.16.208.13  ##修改为本机agent主机名

测试联通性

yum install zabbix-get -y

#-s参数后面跟的时客户端的地址

zabbix_get -s ‘172.16.208.13’ -p 10050 -k “agent.ping”
zabbix_get -s ‘172.16.208.13’ -p 10050 -k “system.hostname”
cat /var/log/zabbix/zabbix_agentd.log

遇到问题:

1. zabbix web图形下面的字体不显示或乱码问题

yum install wqy-microhei-fonts wqy-zenhei-fonts

cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/
zabbix/assets/fonts/graphfont.ttf

2. zabbix-server起不来的问题selinux是否打开

[root@ncayu101 data]# getenforce
Enforcing

1、临时关闭:输入命令setenforce 0,重启系统后还会开启。
2、永久关闭:输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出


docker部署

针对zabbix监控部署,个人建议使用容器化部署,直接拉去镜像,因为通过前面的介绍已经发现,zabbix按照需要很多依赖项,前端,后端各种需要安装的依赖,如果版本选择的不对,很可能前功尽弃,非常的繁杂。

部署zabbix-server

docker pull zabbix/zabbix-web-nginx-mysql:5.0-centos-latest
docker pull zabbix/zabbix-server-mysql:5.0-centos-latest
docker pull zabbix/zabbix-agent:5.0-centos-latest
docker pull mysql:5.7

运行本地数据库

docker run --name zabbix-mysql -d \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e MYSQL_ROOT_PASSWORD="Tgqs@123" \
    -p 3106:3306 \
    --restart unless-stopped mysql:5.7 \
    --character-set-server=utf8 --collation-server=utf8_bin \
    --default-authentication-plugin=mysql_native_password

启动 server 后端

docker run --name zabbix-server-mysql -d \
    -e DB_SERVER_HOST="127.0.0.1" \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e MYSQL_ROOT_PASSWORD="Tgqs@123" \
    --network=host \
    --restart unless-stopped \
	zabbix/zabbix-server-mysql:5.0-centos-latest

启动前端页面,默认端口是 8080

docker run --name zbbix-web-nginx-mysql -d \
    -e ZBX_SERVER_HOST="127.0.0.1" \
    -e DB_SERVER_HOST="127.0.0.1" \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e MYSQL_ROOT_PASSWORD="Tgqs@123" \
    --network=host \
    --restart unless-stopped \
	zabbix/zabbix-web-nginx-mysql:5.0-centos-latest

启动 Agent

docker run --name zabbix-agent -d \
    -e ZBX_HOSTNAME="local-agent" \
    -e ZBX_SERVER_HOST="127.0.0.1"  \
    --network=host \
    --restart unless-stopped \
    zabbix/zabbix-agent:5.0-centos-latest

部署zabbix-agent

在需要被监控的主机上部署

docker pull zabbix/zabbix-agent:5.0-centos-latest
docker images

docker run --name zbx5-agent -d \
    -e ZBX_HOSTNAME="172.16.208.13" \
    -e ZBX_SERVER_HOST="172.16.208.12"  \
    --network=host \
    --restart unless-stopped \
    zabbix/zabbix-agent:5.0-centos-latest

注意事项

  • docker部署的时候可以指定数据库,如果本地有mysql数据库,想使用不同版本,需要指定端口

启动完成后,通过 docker ps 查看所有容器已经正在运行,之后通过访问 http://ip:8080 即可访问!

默认用户名/密码是:Admin/zabbix


在这里插入图片描述

总结

Zabbix 是一个开源的企业级监控工具,以全面的监控能力、灵活的配置选项和强大的报警机制著称,适用于网络设备、服务器、应用程序等广泛的 IT 资源。它的主要优点在于其全面性和灵活性,能够为不同类型的企业提供定制化的监控解决方案,并且拥有活跃的开源社区支持,降低了使用成本。然而,Zabbix 的不足之处也较为明显。首先,部署和配置的复杂性较高,尤其是在大型环境中,需要投入大量时间进行初始设置和优化。其次,Zabbix 的用户界面相对传统且不够直观,尤其是在与现代监控工具如 Grafana 相比时,图表和仪表板的美观度和交互性上有所欠缺。此外,在处理海量数据和大规模分布式系统时,Zabbix 的性能可能需要进一步调优,这对经验不足的团队来说可能是一个挑战。总的来说,Zabbix 适合那些需要深入定制化监控的企业,但对于希望快速上手且注重用户体验的团队。

grafana安装

Grafana 是一个开源的多平台数据可视化工具,主要用于监控和分析应用程序和基础设施的性能数据。Grafana 能够从多种数据源(如 Prometheus、InfluxDB、MySQL、Elasticsearch 等)提取数据,并将其可视化为图表、仪表板和警报。它广泛应用于 DevOps、监控和数据分析领域,帮助团队和组织更好地理解和管理其系统性能和健康状况。当然,zabbix集成自己的图表可视化工具,但显示的美观性拓展性没有grafana好。

下载安装

wget https://dl.grafana.com/oss/release/grafana-8.0.3-1.x86_64.rpm

yum install grafana-8.0.3-1.x86_64.rpm

systemctl start grafana-server
systemctl status grafana-server
systemctl enable grafana-server

默认账号/密码 admin/admin

浏览器输入http://172.16.208.12:3000

在这里插入图片描述

zabbix在低版本的grafana中需要下载插件
在这里插入图片描述

选择模板

https://grafana.com/dashboards

修改grafana背景的方法

安装插件

grafana-cli plugins install yesoreyeram-boomtheme-panel

重启grafana服务

systemctl restart grafana-server

https://github.com/themepark-dev/theme.park/tree/master/css/base/grafana 下载 grafana-base.css

https://github.com/themepark-dev/theme.park/blob/master/css/defaults/transparent.css 下载transparent.css

将下载的文件存放在/usr/share/grafana/public/css

修改grafana-base.css

vim /usr/share/grafana/public/css/grafana-base.css

在最开头添加:

@import url(“http://176.16.208.12:3000/public/css/transparent.css”);
并注释掉之前的import

获取主题

https://github.com/themepark-dev/theme.park/tree/master/css/theme-options 选择主题css文件下载

上传到/usr/share/grafana/public/css/目录,重启服务

如果还不行就将要添加的css文件也修改一下

编辑文件修改url指向本地

vim /usr/share/grafana/public/css/space.css

同样添加:

@import url(http://172.16.208.12:3000/public/css/grafana-base.css);

重启服务

systemctl restart grafana-server.service

在grafana网页端*

在External CSS URL下面
http://172.16.208.12:3000/public/css/space.css
在这里插入图片描述

效果展示:
在这里插入图片描述

常见的监控项

一、CPU

Context switches per second 每秒上下文切换
CPU usage
CPU guest nice time
CPU guest time
CPU softirq time 系统在处理软中断时候所花费的CPU时间
CPU interrupt time CPU中断时间
CPU steal time CPU被强制等待另外虚拟的CPU处理完毕花费的时间
CPU iowait time CPU花费在等待I/O操作上的时间
CPU nice time 系统花费在调整进程优先级上的时间
CPU user time CPU在用户态执行进程的时间
CPU system time CPU在内核运行的时间
CPU idle time CPU空闲时间
Interrupts per second 每秒中断
Processor load (1 min average per core) 处理器负载(每个核心平均1分钟)
Processor load (5 min average per core) 处理器负载(每个核心平均5分钟)
Processor load (15 min average per core) 处理器负载(每个核心平均15分钟)

二、文件系统

Free disk space on / /可用磁盘空间
Free disk space on / (percentage) /可用磁盘空间/(百分比)
Free disk space on /boot /boot上的可用磁盘空间
Free disk space on /boot (percentage) /boot上的可用磁盘空间(百分比)
Free inodes on / (percentage) /上的剩余inode(百分比)
Free inodes on /boot (percentage) /boot上的剩余inode(百分比)
Total disk space on / /上的总磁盘空间
Total disk space on /boot /boot上的总磁盘空间
Used disk space on / /使用的磁盘空间
Used disk space on /boot / boot上使用的磁盘空间

三、主机

Host boot time 主机启动时间
Host local time 主机本地时间
System information 系统信息
System uptime 系统正常运行时间

四、网络

Incoming network traffic on ens32 ens32的传入网络流量
Outgoing network traffic on ens32 ens32的传出网络流量
Interface eth0: Bits received
Interface eth0: Bits sent
Interface eth0: Outbound packets with errors
Interface eth0: Inbound packets with errors
Interface eth0: Outbound packets discarded
Interface eth0: Inbound packets discarded

五、内存

Available memory 可用内存
Free swap space 剩余swap空间
Free swap space in % 剩余swap空间百分比
Total memory 总内存
Total swap space 总swap空间
Number of processes 进程数
Number of running processes 正在运行的进程数

六、安全

Checksum of /etc/passwd / etc / passwd的校验和
Number of logged in users 登录用户数

标签:部署,server,zabbix,mysql,grafana,CPU,css
From: https://blog.csdn.net/sozee910/article/details/141722082

相关文章

  • 第13篇 在Linux上部署vue项目,并通过nginx代理
    如何在Linux服务器上部署Vue项目1.在本地电脑打开vscode,进入Termial,切换到项目所在的目录以项目运行在vscode为例,在调试窗口输入npmrunbuild待命令执行完毕之后,在项目目录下会生成dist文件夹,如下图2.创建一个运行文件,名字是:server.jsserver.js中的内容如下:constexpress......
  • 【全网独家】OpenCV: 像素巡访(at、ptr) 介绍与应用(代码+测试部署)
    OpenCV:像素巡访(at、ptr)介绍与应用介绍在图像处理过程中,直接操作图像的每个像素值是一个非常常见的需求。OpenCV提供了多种方法来访问和修改图像像素,其中at和ptr是两种高效的方法。at方法:适用于小规模的像素访问操作,提供了方便的接口。ptr方法:更适合大规模......
  • 在Ubuntu系统上使用Docker部署.NET 6程序
    基础用法1.安装Docker首先,确保你的Ubuntu系统上安装了Docker。可以通过以下命令安装Docker:sudoaptupdatesudoaptinstalldocker.io安装完成后,启动Docker并设置为开机自启:sudosystemctlstartdockersudosystemctlenabledocker 2.创建.NET6应用程序如果你......
  • 本地部署 Flux.1 最强文生图大模型!Comfyui 一键安装
    前言最近,由前StabilityAI员工创立的黑森林实验室推出了开源文生图大模型–FLUX.1横空出世。FLUX.1在文字生成、复杂指令遵循和人手生成上具备优势。以下是其生成图像示例,可以看到即使是生成大段的文字、多个人物,也没有出现字符、人手等细节上的错误。有了SD的经验,可以......
  • ScaleLLM: 高性能推理系统助力大型语言模型部署
    ScaleLLM:革新大型语言模型推理的新利器在人工智能快速发展的今天,大型语言模型(LLMs)已成为推动技术进步的重要力量。然而,这些庞大的模型在实际部署中常常面临效率和资源消耗的挑战。为了解决这一难题,ScaleLLM应运而生,为LLM推理带来了全新的可能性。什么是ScaleLLM?Scale......
  • 基于大数据+爬虫+非遗推荐系统设计和实现(源码+LW+部署讲解)
     博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs......
  • 基于大数据+爬虫+数据可视化的的亚健康人群数据可视化设计和实现(源码+LW+部署讲解)
     博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs......
  • [昌哥IT课堂]使用MySQL Shell 部署沙盒数据库实例详解
     概述:这部分解释了如何使用AdminAPI设置沙盒部署。部署和使用本地MySQL的沙盒实例是开始探索AdminAPI的好方法。在将功能部署到生产服务器之前,您可以在本地测试功能。AdminAPI具有内置功能,用于创建正确配置的沙箱实例,以便在本地部署的情况下与InnoDBCluster、InnoDBClusterS......
  • Langchain-Chatchat本地部署的解决方案
      大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学习和......
  • Logstash配置和部署
    logstash概诉:是一个数据采集、加工处理、以及传输的工具特点:所有类型的数据集中处理、不同模式和格式的数据的正常化、自定义日志格式的迅速扩展、为自定义数据源轻松添加插件软件使用前注意:logstash使用Java开发、logstash没有默认配置文件需要手动配置、*需要在/usr/share/logsta......