zabbix-服务端安装

1.监控概述

1.概述

服务器是由硬件与软件组成的,服务器一直处于运行的状态,我们需要及时多维度的了解服务器的运行状态,当服务器出现问题时,能够及时解决相关的问题。

监控的目的就是为了保证服务器一直处于正常的运行状态

2.维度

我们在对服务器进行监控的时候,可以从多个维度来进行监控:
网络 :网络环境(路由器交换机,防火墙,内网环境,外网环境)
硬件 : 服务器,存储
操作系统: Linux,Unix,Windows性能参数

虚拟化层/云层:VMware,KVM,XEN

集群:LVS,Keepalived,HAproxy,RHCS,F5

应用软件:Nginx,Apache,PHP,Tomcat

数据库 :MySQL,MariaDB,Oracle,SQL Server,DB2
源代码: .html .jsp .php .py

3.方式

Zabbix在进行监控时,zabbix客户端要安装在被监控设备上,负责定期收集数据,并将其发送给zabbix服务端;zabbix服务端要安装在监控设备上,其将zabbix客户端发送的数据存储的数据库中,zabbix web根据数据在前端进行展示和绘图

zabbix的数据收集分为两种模式:
主动模式 :zabbix客户端主动向zabbix server请求监控项列表,并主动将监控项内需要的数据提交给zabbix server
被动模式:zabbix server向 agent 请求获取监控项的数据,zabbix agent返回数据

由此可以看出zabbix的主动和被动模式是以zabbxi客户端为基准的

2.zabbix安装概述

1.概述

Zabbix是一个企业级解决方案,支持实时监控数千台服务器,虚拟机和网络设备,采集百万级监控指标,适用于任何IT基础架构、服务.应用程序和资源的解决方案

zabbix是一个由web界面提供的可视化的监控服务软件,分布式的方式系统监控以及网络监控,硬件监控等等的开源的软件

官网地址:https://www.zabbix.com/

2.架构

复制代码
c/s模式:客户端和服务端,zabbix server服务端,zabbix agent客户端通过
B/S:B浏览器,S:服务端,通过浏览器可以直接访问服务器数据

3.重要组件(面试)

server:通过一系列的组件SNMP,zabbix agent,ping等等通过端口远程的监控客户端的数据,把数据收集到服务器进行展示,以及统计用户分析的界面(web)

agent :就是被监控的目标机器,把需要收集的数据以及自定义的监控项数据,发送给zabbix server数据库 :zabbix数据库内存储了配置信息、统计信息等zabbix的相关内容
proxy :zabbix proxy可以根据具体生产环境进行采用或者放弃。如果使用了zabbix proxy,则其会替代zabbixserver采集数据信息,可以很好的分担zabbix server的负载。zabbix proxy通常运用与架构过大、zabbixserver负载过重,或者是企业设备跨机房、跨网段zabbix server无法与zabbix agent直接通信的场景
web页面:web页面也是zabbix的一部分,通常和zabbix server位于一台物理设备上,但是在特殊情况下也可以分开配置。web页面主要提供了直观的监控信息,以方便运维人员监控管理

4.环境概述

说明:

zabbix-server-mysql:zabbix的服务端

zabbix-agent:zabbix客户端(探针)

centos-release-scl:zabbix的web界面

MYSQL:数据库

5.安装服务端

1.初始化服务器

同样操作关闭防火墙,修改主机名,安装一些必要的软件

复制代码
#!/bin/bash
# 判断防火墙是否启动,关闭防火墙,设置开机禁止自启动
systemctl status firewalld | grep -w "active"
if [ $? -eq 0 ];then
  echo "正在关闭防火墙"
  systemctl stop firewalld &> /dev/null
  systemctl disable firewalld &> /dev/null

# 关闭软件防火墙
  setenforce 0
  sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  echo "防火墙已关闭"
else
  echo "防火墙已关闭"  
fi

# 设置主机名
if [ $# -eq 0 ];then
  hostnamectl set-hostname server1 &> /dev/null
else
  hostnamectl set-hostname $1 &>/dev/null
fi

# 配置yum源
# 判断网络是否通常
ping -c1 www.baidu.com
if [ $? -eq 0 ]; then
  echo "网络正常"
else
  echo "网路不通请检查网络"
  exit
fi

# 备份yum原有配置文件
cd /etc/yum.repos.d/ || exit
tar -zvcf repo.tar.gz *.repo &>/dev/null
# 删除原有yum配置
rm -rf *.repo
# 配置阿里源镜像,清楚并生成缓存
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all &> /dev/null
yum makecache
# 安装拓展源
yum install epel-release -y
yum install vim -y
yum install net-tools -y
yum install wget -y
yum install yum-utils -y
yum install ntp -y
systemctl enable ntpd --now
reboot

2.配置zabbix相关的yum源

复制代码
rpm -Uvh https://repo.zabbix.com/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

3.安装zabbix-server-mysql、zabbix-agent

复制代码
yum -y install zabbix-server-mysql zabbix-agent

4.安装zabbix-web

复制代码
# 将[zabbix-frontend]下的 enabled 改为 1,保存退出
vim /etc/yum.repos.d/zabbix.repo

# 由于centos7已经停止维护域名已经停止解析直接使用会报错需要更换为阿里云
yum install centos-release-scl -y

cd /etc/yum.repos.d/
mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak
mv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak

修改为阿里云镜像源

复制代码
vim CentOS-SCLo-scl-rh.repo

[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=1
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

5.安装数据库

安装数据库流程

复制代码
# 安装 wget下载工具
yum -y install wget
# 下载 mysql 官方 yum 源安装包
wget https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
# 安装 mysql 官方 yum 源
yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
# 配置yum源秘钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 列出所有版本
yum repolist all | grep mysql
# 安装yum配置工具
yum -y install yum-utils
# 禁用8.0的版本
yum-config-manager --disable mysql80-community
# 启动5.7的版本
yum-config-manager --enable mysql57-community
# 检查启动版本
yum repolist enabled | grep mysql
# 安装服务端,客户端
yum -y install mysql-community-server mysql
# 设置开机自动mysql服务端
systemctl enable mysqld --now

初次登录需要修改mysql密码

复制代码
# 检查mysql的安装
ls /var/lib/mysql
# 获取首次登录密码
grep 'password' /var/log/mysqld.log
# 登录mysql数据库
mysql -uroot -p'123456'
# 修改mysql数据库密码
use mysql
alter user 'root'@'localhost' identified by 'Aa1234567=='
# 用新密码登录数据库
mysql -uroot -p'Aa123456='

创建zabbix需要的数据库,以及导入初始数据

复制代码
# 创建zabbix需要使用的数据库
create database zabbix character set utf8 collate utf8_bin;
# 创建zabbix数据库用户
create user zabbix@localhost identified by 'Aa123456==';
# 给zabbix用户授权
grant all privileges on zabbix.* to zabbix@localhost;
# 开启生成函数
set global log_bin_trust_function_creators = 1;
# 刷新权限
flush privileges;
# 退出
exit

# 导入zabbix初始数据
ls /usr/share/doc/zabbix-server-mysql*
# 压缩的数据库文件导入mysql数据库中
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pAa123456== zabbix

# 登录MySQL
mysql -uroot -p'Aa123456='

# 关闭生成函数
set global log_bin_trust_function_creators = 0;

# 刷新权限
flush privileges;

# 退出
exit

其中的log_bin_trust_ function_creators 这个是MySQL的一个内置变量,从字面来说就是在binlog开启的状态下,系统需要信任生成函数毕竟函数可以做得事情太多啦,系统默认在binlog开启的时候是关闭生成函数的使用的,万一,某天需要通过binlog日志回滚,而所有事务里就带有某些损害系统的函数,后果可能是灾难性的,因此,有这么一个变量

上述的意思就是zabbix的初始化脚本里面自带有,zabbix软件必须的自己创建函数,而上述的参数是不信任创建的函数,因此就不会执行zabbix的数据库文件的创建的函数会导致软件安装失败,因此需要临时开启,但是由于在设计过程中害怕你创建一个有害的函数导致数据回滚的时候出现不可逆的问题因此开启安装完之后需要立刻关闭

5.修改zabbix数据库的配置

复制代码
vim /etc/zabbix/zabbix_server.conf


# 找到对应的进行修改
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Aa123456==

6.修改zabbix-web时区

复制代码
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

# 删除最后一行的时区,添加新的时区
php_value[date.timezone] = Asia/shanghai

7.启动zabbix-server、zabbix-agent、httpd、rh-php72-php-fpm、mysqld

复制代码
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm mysqld --now

8.安装zabbix

确认环境无问题

默认0就是3306端口

安装完成后登录

复制代码
# 默认账号    Admin
# 默认密码    zabbix

进入页面在用户设置那里修改密码,修改为中文

9.修改字体,解决乱码

复制代码
1. Win+R打开运行,输入fonts,回车进入Windows字体目录,找到微软雅黑-常规字体,复制出来将文件名修改为msyh.ttf,注意后缀tttf
2. 将msyh.ttf上传到服务器zabbix字体目录中:/usr/share/zabbix/assets/fonts/
3. chmod 777 /usr/share/zabbix/assets/fonts/msyh.ttf
4. 查看字体配置# grep FONT_NAME /usr/share/zabbix/include/defines.inc.php  -n
5. sed -i "s/graphfont/msyh/g" /usr/share/zabbix/include/defines.inc.php
6. grep FONT_NAME /usr/share/zabbix/include/defines.inc.php  -n
7. 字体配置修改成功后,刷新图形界面即可看到图形字体显示正常了。

找到字体文件,将其复制到桌面留下msyh.ttc即可,将后缀修改为ttf,上传到服务器,将字体文件放入/usr/share/zabbix/assets/fonts/

给字体执行权限

复制代码
chmod 777 /usr/share/zabbix/assets/fonts/msyh.ttf

修改字体配置

这时候字体就完成了修改,刷新一下,字体就恢复了正常

相关推荐
江南风月13 小时前
WGCLOUD如果使用SQL Server数据库推荐哪个版本
运维·网络·zabbix·运维开发·prometheus
日取其半万世不竭3 天前
用 Netdata 实时监控服务器,比 Prometheus + Grafana 轻量得多
linux·服务器·网络·系统架构·负载均衡·zabbix·grafana
m0_7375393710 天前
Zabbix企业级项目实战
zabbix
遇见火星11 天前
Zabbix自动化监控:自动发现+自动注册实战,告别手动添加主机!
网络·自动化·zabbix
杨了个杨898221 天前
Zabbix告警通知设置
zabbix
lvbinemail1 个月前
动环方案实践:温湿度传感器+串口服务器+Zabbix+Grafana
zabbix·监控·机房·动环
乐维_lwops1 个月前
Zabbix分布式监控体系架构设计与实战优化
分布式·zabbix
七七powerful1 个月前
运维养龙虾--用 AI 驾驭 Zabbix:zabbix-mcp-server 深度指南
人工智能·zabbix·zabbix mcp
tianyuanwo1 个月前
Zabbix 演进史与版本选型指南:从1998到8.0
zabbix·版本管理策略·版本选型