hualinxu ext zbx 1.2:centos8搭建zabbix5.0(手把手 带注解)

本文详细介绍了Zabbix 5.0在CentOS 8上的安装过程,包括环境准备、LNMP环境搭建、Zabbix服务器端与客户端的安装配置,以及中文乱码问题的解决。

目录

一、实验环境

1.1 环境说明

1.2 准备工作(所有)

1.3  所涉及的软件及版本

1.3.1 zabbix体系结构

1.3.2 安装zabbix所需的软件

二、zabbix服务端安装lnmp(dnf)

2.1 安装nignx(dnf)

2.1.1 安装nginx(dnf)

2.1.2 安装指定版本nginx(dnf新特性)

2.2 安装mysql8.0 (dnf)

2.2.1 安装

2.2.2 修改配置文件

2.2.3 启动mysql

2.2.4 查看及修改mysql密码

2.2.5 使用SQL客户端工具登陆(SQLyog)

2.3 安装php7.4(dnf)

2.3.1 php安装(dnf)

2.3.2 修改php.ini

2.3.3 修改php-fpm配置

2.3.4 修改nginx配置让其支持php

2.3.5 启动php并测试

三、zabbix服务器端安装及配置

3.1 安装(dnf)

3.1.1 zabbix安装(dnf)

3.1.2 把zabbix脚本导入mysql中

3.2 修改zabbix配置

3.3 通过web配置zabbix 

3.3.1 修改nginx

3.3.2 修改php-fpm配置

3.3.3 启动zabbix 

3.3.4 安装zabbix

四、zabbix agent 客户端安装

4.1 安装agent

4.2 修改agent配置

4.2.1 agent的两种模式(主动和被动)

4.2.2 修改agent配置

4.3 启动agent客户端

五、测试

5.1 使用zabbix-get命令(服务端操作)

5.2 通用zabbix web添加监控

5.2.1 创建一个监控组

5.2.2 添加被监控主机

5.2.3 查看监控数据

六、其它

6.1 中文乱码

6.1.1 检查zabbix服务端是否安装了中文语言包

6.1.2 上传中文字体到zabbix服务端

6.1.3  修改字体相关的配置文件

 6.2 切换中文界面

附录一、 安装基础软件及基础配置

1.1 centos8安装兼容包(已安装)

1.2 关闭selinux(重要)

1.3 关闭防火墙

1.4 时间同步(最好要)

1.5 安装常用软件

1.6 安装第三方源epel源及remi源(必要)


现在zabbix更新到了5.0了,所以我直接就用最新版本zabbix5.0,使用的是dnf安装,我这先安装,然后再给大家讲zabbix概念。

为全方便读者理解

  1. 在执行命令或命令代码段中添加了注解
  2. 命令或命令代码段中的注解不会影响命令执行,可以复制整个命令,粘贴即可
  3. 为了方便复制我把执行命令和效果命令分开,只复制执行命令即可,效果命令不用复制,效果命令主要是为了给读者看一下执行命令的效果

一、实验环境

Zabbix从3.0版本起,服务器端只支持centOS6以上版本(即centos7/8),客户端和代理可以支持centOS6

1.1 环境说明

#本文在centos8.2基础上进行安装
[root@vm82 ~]# cat /etc/redhat-release 
CentOS Linux release 8.2.2004 (Core)

主机名

IP地址(外网)

IP地址(内网)

描述

vm82

ens32:192.168.128.82

ens33:192.168.3.82

  1. Centos8.2最小化(2内存)
  2. 只安装了一些基础软件,做了快照
  3. Zabbix服务端

vm821

ens32:192.168.128.21

ens33:192.168.3.21

  1. Centos8.2最小化(1.5内存)
  2. 只安装了一些基础软件,做了快照
  3. Zabbix客户端,被动模式

vm822

ens32:192.168.128.22

ens33:192.168.3.21

  1. Centos8.2最小化(1.5内存)
  2. 只安装了一些基础软件,做了快照
  3. Zabbix客户端,主动模式,先不配置

备注:

  1. 我用的是VMware10虚拟机做的实验,本机内存8G,可以根据你们的情况调整
  2. 这里使用的是双网卡,一个是物理网卡,一个是loopBack网卡
    如果公司内网都做了mac地址绑定,可以使用NAT模式上网。这里使用NAT模拟外网
    内网的IP地址我使用的是LoopBack网卡方便登陆管理,实验都会用它做内网
  3. 内存推荐2G,小的话弄1.5G也行,centos7不建议弄1G,很容易出问题

 

1.2 准备工作(所有)

操作系统:centos8.2 64位,在安装mysql之前centos8.1做了

  1. 关闭了防火墙、selinux、时间同步、epel及remi源、
  2. 安装vim  lrzsz wget curl man tree rsync软件
  3. 安装了gcc及gcc++ v8版本

其中防火墙、selinux强烈建议设置一下,其它可以不用,具体见附录一中的 1.6 安装第三方源epel源及remi源(必要)

#在vm821和vm822加入hosts绑定主机名
echo '192.168.3.82 vm82'>>/etc/hosts
echo '192.168.3.21 vm821'>>/etc/hosts
echo '192.168.3.22 vm822'>>/etc/hosts

1.3  所涉及的软件及版本

软件

版本

安装方式

备注

xshell

6.0

win exe

ssh连接连接工具

zabbix

5.0.2

dnf安装,使用目前最新版本

目前最新版本为4.4.8

nginx

1.18.0

dnf安装,使用目前最新版本

dnf安装的最新版本

mysql

8.0.21

dnf安装,使用8.0

最新版本8.0

php

7.4.9

dnf安装,使用目前最新版本

目前最新版本

注:使用LNMP主要是做zabbix是以web方式管理的、以web形式展示数据

官方安装需求:https://www.zabbix.com/documentation/current/manual/installation/requirements

1.3.1 zabbix体系结构

1.3.2 安装zabbix所需的软件

从图中可以看出,安装zabbix需要如下:

1)Zabbix web是php写的,故需要安装php

2)Zabbix database是存放数据存的地方,只要关系型数据库都行,这里选择mysql

3) Zabbix server中可以看出是通过web页管理的,故需要安装http,这里选择nginx

4)Zabbix proxy这个是选择性安装的

可以选择LAMP或LNMP,我这里选择主流的LNMP环境,因为主要是用zabbix软件,所以LNMP环境用dnf安装Zabbix database和Zabbix server是可以分离的,这里为了实验方便,安装在同一台主上。

 

Zabbix Server负责接收agent发送的报告信息的核心组 件,所有配置、统计数据及操作数据均由其组织进行;

Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据,以及存储在Zabbix所配置的配置信息,比如:哪个指标需要监控,多长时间监控一次等;

Web interfacezabbix的GUI接口,通常与Server运行在 同一台主机上;

Proxy可选组件,常用于分布监控环境中,代理Server收 集部分被监控端的监控数据并统一发往Server端;

Agent部署在被监控主机上,负责收集本地数据并发往 Server端或Porxy端;

也可以看官网的zabbix安装需求,主要是使用PHP+数据库,其它我就不一一列出来了

二、zabbix服务端安装lnmp(dnf)

在新版本zabbix5.0中,如果你不安装nginx,它也会用dnf/yum安装默认的nginx,版本为1.14,所以我先安装最新稳定版本

2.1 安装nignx(dnf)

2.1.1 安装nginx(dnf)

根据nginx官方centos安装文档,我直接配置yum源方式安装

#安装管理工具 yum-utils 用yum和dnf都可以
dnf install yum-utils -y

#配置nginx官方yum源
cat>/etc/yum.repos.d/nginx.repo<<EOF
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/\$releasever/\$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
cat /etc/yum.repos.d/nginx.repo

#官网默认nginx-mainline版本是禁止的,即 enabled=0,如果要开启,则会安装主线版本,而非稳定版本

#下面是开启命令,在这里不要开启
yum-config-manager --enable nginx-mainline

#这个功能就是找到nginx-mainline 标签下设置enabled=1,使用下面命令也是等效的
#sed -i '/enabled=0/s/0/1/' /etc/yum.repos.d/nginx.repo 

 

2.1.2 安装指定版本nginx(dnf新特性)

CentOS8给我们带来了一些新的特性,这次是完全用dnf取代了yum来进行包管理,同时在软件包管理上也有一些更新,增加了dnf module功能,dnf module在软件安装上更方便,可以通过dnf module install 在安装软件时指定安装的版本,默认dnf install安装时,优先安装软件仓库中最新版本,有了dnf module install 之后可以在不同软件版本之间切换。

在此之前先安装一个yum配置管理,方便管理

#安装yum配置管理
dnf install yum-utils -y
#列出nginx模块相关的版本
dnf module list nginx

 效果如下:

#列出nginx模块相关的版本
[root@vm82 ~]# dnf module list nginx
上次元数据过期检查:0:06:30 前,执行于 2020年08月20日 星期四 13时17分38秒。
CentOS-8 - AppStream
Name                     Stream                      Profiles                     Summary                          
nginx                    1.14 [d]                    common [d]                   nginx webserver                  
nginx                    1.16                        common [d]                   nginx webserver                  

Extra Packages for Enterprise Linux Modular 8 - x86_64
Name                     Stream                      Profiles                     Summary                          
nginx                    mainline                    common                       nginx webserver                  

提示:[d]默认,[e]已启用,[x]已禁用,[i]已安装

发现上面的有2个源一个centos默认的AppStream,另一个是epel源,官方nginx源没有在dnf模块中。官方nginx存在仓库中

 因后面使用remi源安装php7.4,一定会用到nginx模块依赖的,下图是我没有用dnf module install安装,而是用dnf install直接安装的截图,在截图中就会自动安装nignx默认版本

所以还得用dnf module 安装,我这里直接指定高一点的版本 ,从上面知道最后的版本为1.16

#安装nginx,这样会连官网稳定版本1.18和模块一起安装
dnf module install:1.16 -y

上面的主模块修改为官网最新稳定版本1.18,而并非是1.16版本 

#查看版本,应该是目前最新稳定版本1.18.0
nginx -v
#检查语法
nginx -t

#启动nginx
systemctl start nginx
systemctl status nginx
#查看是否开机启动
systemctl list-unit-files|grep enable|grep nginx
systemctl enable nginx

#隐藏版本号(可选)

为了nginx安全往往把版本号隐藏掉,不让显示出来

#在http{...}配置文件中添加server_tokens off;
cd /etc/nginx/
cp nginx.conf nginx.conf.orig
sed -i  '/^http/a\  server_tokens off;' nginx.conf 
grep -A 2 '^http' nginx.conf

#检查配置是否有误
nginx –t
#平滑重启nginx
systemctl reload nginx

#备份一下nginx配置目录
cp -ar /etc/nginx /etc/nginx.orig

#注:有的机子reload没有生效的,只能直接重启!

PS:平滑重启就是先关闭已建议的连接再重启;重启则是暴力的,直接就重启了,不管nginx有没有在处理客户请求。

看一下是否能打开直接输入IP地址

PS:如果因添加官网的nginx源文件,导致php使用不了,可以先卸载再把nginx官方yum文件删除,直接使用dnf module install nginx:1.16 命令安装

2.2 安装mysql8.0 (dnf)

2.2.1 安装

根据mysql官网的yum库网页

知道它的下载地址就可以直接用rpm安装了,在安装之前查看是否存在mysql

#查看是否存在mysql,如果存在则需要执行yum remove mysql*进行
rpm -qa|grep mysql
yum remove mysql*
rpm -ih https://repo.mysql.com/mysql80-community-release-el8-1.noarch.rpm
#检查是否安装成功
yum repolist enabled | grep "mysql.*-community.*"

#查看当前MySQL Yum Repository中所有MySQL版本(每个版本在不同的子仓库中)
yum repolist all | grep mysql

#检查当前启动的仓库,如果同时启用了多个仓库,安装时会选择最新版本
yum repolist enabled | grep mysql

#安装依赖
dnf install perl openssl openssl-devel -y
#我这里使用官网mysql80-community安装,所以需要指定
dnf --repo mysql80-community install -y \
mysql-community-server mysql-community-devel mysql-community-clien

改为手工安装,因mysql源是国外源安装太慢了,现在我这里修改为手工安装按ctrl+c退出dnf 安装

#------------------------------------------手工安装开始-------------------------------------
#如果下载慢可以去官网仓库http://repo.mysql.com/yum/mysql-8.0-community/el/8/x86_64
#手工下载,再上传到目录中用dnf命令安装,但是还是慢,所以使用国内仓库,可以是阿里云、163、搜狐等
#我这里使用的是华云镜像https://mirrors.huaweicloud.com/mysql 下载,操作如下:


#建立相关目录
mkdir -p /disk1/tools/
cd /disk1/tools/
mkdir mysql8
cd mysql8
#下载相关mysql rpm包
wget https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-community-common-8.0.21-1.el8.x86_64.rpm
wget https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-community-libs-8.0.21-1.el8.x86_64.rpm
wget https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-community-server-8.0.21-1.el8.x86_64.rpm
wget https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-community-devel-8.0.21-1.el8.x86_64.rpm
wget https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-community-client-8.0.21-1.el8.x86_64.rpm

#安装rpm包,注意,一定要先安装mysql yum源,否则无法判断依赖关系
dnf install mysql*.rpm -y
cd ..

#------------------------------------------手工安装结束-------------------------------------

2.2.2 修改配置文件

#1建立相关目录:

#建立相关目录
mkdir -pv /disk1/logs/mysql/mysql8.0/error
mkdir -pv /disk1/logs/mysql/mysql8.0/slow
mkdir -pv /disk1/mysqlData
chown mysql.mysql -R /disk1/logs/mysql
chown mysql.mysql -R /disk1/mysqlData

#2 修改my.cnf配置

cp /etc/my.cnf /etc/my.cnf.orig
vi /etc/my.cnf

#编辑配置文件并修改,黑色粗体部分为添加的,红色部分为修改的,普通黑色为原配置

[client]

#版本8不推荐用default-character-set=utf8

default-character-set = utf8mb4

 

[mysql]

#版本8不推荐用default-character-set=utf8

default-character-set = utf8mb4

 

[mysqld]

#datadir=/var/lib/mysql

datadir=/disk1/mysqlData

socket=/var/lib/mysql/mysql.sock

 

#log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

##by hua尾行添加

#设置密码策略及长度,mysql5.7开始默认安装并开启validate_password插件

#第一次初始化运行的时候要去掉,否则因mysql初始化生成不了密码而起不来

#8.0不要

#5.7 validate_password_policy=0

#5.7 validate_password_length=4

#validate_password.policy=0

#validate_password.length=4

 

default-time-zone='+08:00'

port = 3306

#id是唯一的,不能与主库的server_id相同,多个的从库的话也不能与其它从库相同

server_id =1

 

#设置默认字符集,也可以取消,取消则用安装时的默认字符集(不指定一般为latin1)

#用show variables like '%char%';命令可以查看安装时的字符集是多少

default-storage-engine=INNODB

#版本8不推荐用character-set-server=utf8

character-set-server=utf8mb4

#版本8不推荐用collation-server=utf8_general_ci

collation-server=utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

 

innodb_file_per_table=1

#同步一定要开启bin log

log-bin=/disk1/logs/mysql/mysql8.0/mysql-bin

 

log-queries-not-using-indexes=on

log-error=/disk1/logs/mysql/mysql8.0/error/error.log

#记录慢查询,建议开启

slow-query-log = on

long_query_time = 3

slow_query_log_file=/disk1/logs/mysql/mysql8.0/slow/slowquery.log

 

#管理慢查询sql ,1为开启0为关闭

log-slow-admin-statements=1

#记录从库上执行的慢查询语句

log-slow-slave-statements=0

# 将没有使用索引的语句记录到慢查询日志

log-queries-not-using-indexes=1

PS:最好把编码改为UTF8MB4

PSS:my.cnf配置的符号一定要看清楚!我之前因复制word的时候,不知道为什么,符号变成中文了!

init_connect='SET NAMES utf8mb4'写成了init_connect=’SET NAMES utf8mb4
#单引号变成了 ’ ,还复制少了一个 ’ 号,没仔细看还真发现不了!

#这样造成了 GRANT ALL PRIVILEGES 给所有权限用户没问题,但是指定权限,如执行
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
#命令之后,发现使用此用户连接mysql都出问题,连接不上,直接在linux可以连接上,执行任何命令都
#报错:ERROR 2013 (HY000): Lost connection to MySQL server during query 

还有一个问题就是init_connect=’SET NAMES utf8mb4 出现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值