目录
第一种架构(服务端与客户端,server-client架构)
第二种架构 zabbix分布式架构(server-proxy-client)
1.5 修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
2.5 修改zabbix server 配置文件,修改数据库密码
3.3 解决 zabbix-server Web页面中文乱码问题
2.1 配置zabbix 的下载源,安装zabbix-agent2
前言
作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。
利用一个优秀的监控软件,我们可以:
- 通过一个友好的界面进行浏览整个网站所有的服务器状态
- 可以在 web 前端方便的查看监控数据
- 可以回湖寻找事故发生时系统的问题和报警情况
一、zabbix理论
1、zabbix简介
- zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
- zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
- zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。
- zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。
- zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。
2、zabbix 监控原理
zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)。
3、zabbix 监控部署的常见5个程序
zabbix 监控部署在系统中,包含常见的五个程序: zabbix_server、zabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender 等。
- zabbix server:zabbix 服务端守护进程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终都提交给 zabbix server;
- zabbix agent:客户端守护进程,负责收集客户端数据,例如:收集 CPU 负载、内存、硬盘使用情况等;
- zabbix proxy:zabbix 分布式代理守护进程,通常大于 500 台主机,需要进行分布式监控架构部署;
- zabbix get:zabbix 数据接收工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令;
- zabbix sender:zabbix 数据发送工具,用户发送数据给 server 或 proxy 端,通常用户耗时比较长的检查。
4、zabbix架构
第一种架构(服务端与客户端,server-client架构)
简单架构:监控机器和被监控机器之间不经过任何处理,直接由zabbix-server和zabbix-agentd之间进行数据交换,适用于网络比较简单,尽量在局域网内比较少的监控环境
第二种架构 zabbix分布式架构(server-proxy-client)
其中proxy是server,client之间沟通的一个桥梁,proxy本身没有前端,而且本身并存放数据,只是将agentd发来数据暂时存放,而后在提交给server,该架构经常是master-node-client架构作比较的架构,一般适用于跨机房,跨网络的中型网络架构的监控
第三种架构(master-node-client)
master-node-client,该架构是zabbix最复杂的监控架构,使用于跨网络,跨机房设备较多的大型环境,每个node同时一个server端,node下面可以接proxy,也可以直接接client,node自己有自己的配置文件和数据库,其要做的是将配置信息和监控数据向master(server总端)同步,master的故障或损坏不影响对node其下架构的完整性。
二:安装zabbix 5.0 服务端
节点 | 服务 |
---|---|
192.168.23.50 | zabbix-server,zabbix-agent |
192.168.23.100 | zabbix-agent2 |
192.168.23.10 | zabbix-proxy |
1、zabbix服务端部署软件
zabbix-server 内存至少 2G,推荐 4G;z
1.1 关闭防火墙,修改主机名
[root@localhost ~]# systemctl disable --now firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# hostnamectl set-hostname zbx-server
[root@localhost ~]# su
[root@zbx-server ~]#
1.2 获取zabbix 的下载源
[root@zbx-server ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
1.3 更换 zabbix.repo 为阿里源
[root@zbx-server yum.repos.d]# cd
[root@zbx-server ~]# cd /etc/yum.repos.d/
[root@zbx-server yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo zabbix.repo
#如果使用的是本地源,需要将原来的官方源从备用中移动出来,生效
[root@zbx-server yum.repos.d]# mv bak/* .
[root@zbx-server yum.repos.d]# ls
bak CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo local.repo zabbix.repo
#修改zabbix.repo的源为 阿里源,加快速度
[root@zbx-server yum.repos.d]# sed -i \
's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
#清除并重新建立yum缓存
[root@zbx-server yum.repos.d]# yum clean all && yum makecache
#提示元数据缓存已建立
输入yum install -y zabbix-server-mysql zabbix-agent
1.4 安装SCL
安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。
[root@zbx-server yum.repos.d]# yum install -y centos-release-scl
1.5 修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
vim zabbix.repo
......
[zabbix-frontend]
......
enabled=1 #开启安装源
......
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
2、zabbix 服务端部署响应的数据库
2.1 安装zabbix 所需要的数据库
#安装mariadb 数据库并启动
[root@zbx-server yum.repos.d]# yum install -y mariadb-server mariadb
[root@zbx-server yum.repos.d]# systemctl enable --now mariadb
2.2 初始化数据库
[root@zbx-server yum.repos.d]# mysql_secure_installation
#输出当前密码(当前密码为空,直接回车)
Enter current password for root (enter for none):
#是否设置root 密码(输入 y 设置)
Set root password? [Y/n] y
#输入设置的root 密码。
New password:
Re-enter new password:
#是否移除匿名用户(输入y 移除)
Remove anonymous users? [Y/n] y
#不否允许root远程登录( 输入y 不允许)
Disallow root login remotely? [Y/n] y
#移除test库(输入y移除)
Remove test database and access to it? [Y/n] y
#现在重载授权表(输入y立即重载)
Reload privilege tables now? [Y/n] y
2.3 添加数据库用户以及zabbix所需的数据库信息
#登录进入数据库
[root@zbx-server yum.repos.d]# mysql -u root -p123456
#创建zabbix 库,使用utf8字符集编码
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
#授权权限,zabbix用户可以使用密码zabbix 从任意主机登录,且拥有zabbix库的所有权限
MariaDB [(none)]> GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
#刷新授权表
MariaDB [(none)]> flush privileges;
2.4 导入数据库信息
#查询sql文件位置
[root@zbx-server yum.repos.d]# rpm -ql zabbix-server-mysql
.....
/usr/share/doc/zabbix-server-mysql-5.0.30/create.sql.gz
....
#zcat 压缩状态下查看。将压缩的文件查看后导入到zabbix库
[root@zbx-server yum.repos.d]# zcat /usr/share/doc/zabbix-server-mysql-5.0.30/create.sql.gz | mysql -uroot -p123456 zabbix
2.5 修改zabbix server 配置文件,修改数据库密码
[root@zbx-server yum.repos.d]# vim /etc/zabbix/zabbix_server.conf
#116 行,定义了数据库用户为zabbix,如果数据库授权用户不是zabbix,则需要修改
116// DBUser=zabbix
#124 行,取消注释,指定数据库密码为 zabbix
124// DBPassword=zabbix
2.6 修改zabbix的php文件
[root@zbx-server yum.repos.d]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#2