zabbix+grafana安装部署

基本介绍

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 登录用户数

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值