1+X云计算运维与开发(中级)实战案例——Zabbix分布式监控系统搭建

Zabbix分布式监控系统搭建

前言

Zabbix是一个企业级的分布式开源监控方案。Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。

Zabbix由几个主要的软件组件构成 :

  1. Server
    Zabbix server是监控代理程序报告系统可用性、系统完整性和统计信息的核心组件。Zabbix Server是所有配置信息、统计信息和操作数据的核心存储器。
  2. 数据库存储
    所有配置信息和Zabbix收集到的数据都被存储在数据库中。
  3. Web界面
    为了在任何地方和任何平台都能轻松地访问Zabbix,Zabbix提供了基于Web的界面。该界面是Zabbix Server的一部分,通常跟Zabbix Server运行在同一台物理机器上。如果使用SQLite,Zabbix Web界面必须要跟Zabbix Server运行在同一台物理机器上。
  4. Proxy代理服务器
    Zabbix Proxy可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分。当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。
  5. Agent监控代理
    Zabbix Agents监控代理部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。

如果你是初学者,那么我之前发布的文章对一些简单操作有详细讲解,你可以从中入手,本文对之前讲过的操作不会详细说明。

虚拟机使用的是考试提供的xnode1、xnode2
各节点规划如下:

虚拟机IP/24主机名节点
xnode1192.168.200.11zabbix-serverServer节点
xnode2192.168.200.12zabbix-agentAgent节点

操作过程

关闭防火墙和Selinux

#两个节点均关闭防火墙并禁止其开机自启
[root@xnode1 ~]# systemctl stop firewalld && systemctl disable firewalld
[root@xnode2 ~]# systemctl stop firewalld && systemctl disable firewalld
#临时关闭Selinux
[root@xnode1 ~]# setenforce 0
[root@xnode2 ~]# setenforce 0

修改主机名

#修改两台机子的主机名
[root@xnode1 ~]# hostnamectl set-hostname zabbix-server
[root@xnode1 ~]# bash
[root@zabbix-server ~]# 

[root@xnode2 ~]# hostnamectl set-hostname zabbix-agent
[root@xnode2 ~]# bash
[root@zabbix-agent ~]# 

配置YUM源

#创建挂载目录
[root@zabbix-server ~]# mkdir /opt/centos
#挂载
[root@zabbix-server ~]# mount -o loop CentOS-7-x86_64-DVD-1511.iso /mnt/	
mount: /dev/loop2 is write-protected, mounting read-only					
[root@zabbix-server ~]# cp -rvf /mnt/* /opt/centos																
[root@zabbix-server ~]# umount /mnt/		
#将处于主目录的zabbix目录全部移动到/opt目录
[root@zabbix-server ~]# mv gpmall-repo /opt/gpmall-repo
#删除系统自带的默认源
[root@zabbix-server ~]# rm -rf /etc/yum.repos.d/*
#创建新的仓库文件	
[root@zabbix-server ~]# vi /etc/yum.repos.d/local.repo    
[centos]
name=centos
baseurl=file:///opt/centos
enabled=1
gpgcheck=0
[zabbix]
name=zabbix
baseurl=file:///opt/zabbix
enabled=1
gpgcheck=0
#检查可用性,查出3760个包就没问题
[root@zabbix-server ~]# yum clean all && yum repolist
Determining fastest mirrors
repo id                                     repo name                                   status
centos                                      centos                                      3,723
zabbix                                      zabbix                                         37
repolist: 3,760
#xnode2是没有CentOS的系统镜像和zabbix目录的,所以我们在xnode1安装ftp服务,让xnode2通过ftp服务使用xnode1的软件仓库
#安装ftp服务
[root@mycat ~]# yum -y install vsftpd
...
Complete!
#修改ftp服务的配置文件,共享/opt目录(这也是为什么前面要移动zabbix目录位置的原因)
[root@mycat ~]# echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf   
#启动ftp服务并设置开机自启
[root@mycat ~]# systemctl start vsftpd && systemctl enable vsftpd
...
#配置zabbix-agent节点的YUM源
#删除系统默认源
[root@zabbix-agent ~]# rm -rf /etc/yum.repos.d/*
#创建新的仓库文件
[root@zabbix-agent ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=ftp://192.168.200.11/centos
enabled=1
gpgcheck=0
[zabbix]
name=zabbix
baseurl=ftp://192.168.200.11/zabbix
enabled=1
gpgcheck=0
#检查可用性
[root@zabbix-agent ~]# yum clean all && yum repolist

安装LAMP+Zabbix服务

#在server端安装LAMP环境,即Linux+Apache+MySQL+PHP
#安装http和mariadb服务
[root@zabbix-server ~]# yum -y install httpd mariadb mariadb-server
...
Complete!
#把两个服务都启动和设置开机自启
[root@zabbix-server ~]# systemctl start httpd mariadb
[root@zabbix-server ~]# systemctl enable httpd mariadb
...
#安装zabbix服务
[root@zabbix-server ~]# yum -y install zabbix-agent zabbix-server-mysql zabbix-web-mysql

配置数据库

#登录数据库
[root@zabbix-server ~]# mysql
...
MariaDB [(none)]> 
#创建一个中文编码格式的zabbix库
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#授予zabbix用户访问权限
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
#退出数据库(Ctrl+C或者quit;命令都行)
MariaDB [(none)]> Ctrl-C -- exit!
Aborted

导入数据库文件

#先切换到/usr/share/doc/zabbix-server-mysql-3.4.15/目录
[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.15/
[root@zabbix-server zabbix-server-mysql-3.4.15]# 
#导入数据库文件
[root@zabbix-server zabbix-server-mysql-3.4.15]# zcat create.sql.gz | mysql -uroot zabbix
#create.sql.gz是一个数据库脚本文件压缩包,这里通过zcat解压缩后通过管道传递给mysql -uroot zabbix命令指定连接我们刚刚创建的zabbix库执行这个脚本文件

设置时区

#先切换回主目录,看着简洁
[root@zabbix-server zabbix-server-mysql-3.4.15]# cd ~
[root@zabbix-server ~]# 
#修改PHP配置文件
[root@zabbix-server ~]# vi /etc/php.ini
#将[Date]字段下date.timezone配置的值为RPC
#该配置在878行,在vi正常模式下可以使用878gg快速跳转
#但这是知道在第几行才能用的方法,在不知道具体行数的情况,我们可以这么做:
#在vi正常模式下输入:进入命令行模式,使用/test查询要找的内容。我们先跳转到[Date]字段下,即:
#:/[Date
#此时就会查找匹配的字段,跳转到Date字段
    875 [Date]
    876 ; Defines the default timezone used by the date functions
    877 ; http://php.net/date.timezone
    878 ;date.timezone =
#设置值为RPC,修改后:
[root@zabbix-server ~]# sed -n '878p' /etc/php.ini
;date.timezone = RPC

#修改/etc/httpd/conf.d/zabbix.conf文件,修改20行配置时区为亚洲/上海
[root@zabbix-server ~]# vi /etc/httpd/conf.d/zabbix.conf 
#修改前
[root@zabbix-server ~]# sed -n '20p' /etc/httpd/conf.d/zabbix.conf
        # php_value date.timezone Europe/Riga
#修改后
[root@zabbix-server ~]# sed -n '20p' /etc/httpd/conf.d/zabbix.conf
        php_value date.timezone Asia/Shanghai
#配置完重启http服务
[root@zabbix-server ~]# systemctl restart httpd

修改Zabbix配置文件

#修改zabbix_server.conf配置文件
[root@zabbix-server ~]# vi /etc/zabbix/zabbix_server.conf
#去掉91行DBHost=localhost的注释								#去掉124行DBPassword=的注释,并添加zabbix的值
#去掉修改131行的注释,并将值改为DBSocket=/var/lib/mysql/mysql.sock
#修改前
[root@zabbix-server ~]# sed -n '91p;124p;131p' /etc/zabbix/zabbix_server.conf
# DBHost=localhost
# DBPassword=
# DBSocket=/tmp/mysql.sock
#修改后
[root@zabbix-server ~]# sed -n '91p;124p;131p' /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock

启动Zabbix服务

[root@zabbix-server ~]# systemctl start zabbix-server
#查看端口开放情况(该命令依赖于net-tools工具,没有请自行通过yum工具安装)
[root@zabbix-server ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2909/mysqld         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1111/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1590/master         
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      5842/zabbix_server  
tcp6       0      0 :::80                   :::*                    LISTEN      3019/httpd          
tcp6       0      0 :::21                   :::*                    LISTEN      2416/vsftpd         
tcp6       0      0 :::22                   :::*                    LISTEN      1111/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1590/master         
tcp6       0      0 :::10051                :::*                    LISTEN      5842/zabbix_server 
#看到10051端口开放了就说明启动成功了

配置Zabbix中文界面

打开浏览器,输入192.168.200.11/zabbix,访问Zabbix的Web界面
映入眼帘的是Zabbix的安装向导,我们点击右下角的"Next step"按钮进入下一步
在这里插入图片描述

这个界面显示PHP版本信息等内容,我们继续点击右下角“Next step”按钮,进入下一步
在这里插入图片描述

这里需要填写连接数据库的必要信息,端口为3306,密码为zabbix,填写完后点击右下角 “Next step”按钮,进入下一步
在这里插入图片描述

这里需要填写Zabbix服务端的详细信息,Name字段是给监控平台起个名字,随便写。然后下一步
在这里插入图片描述

最后是平台的信息概况,给我们确认情况,确认无误直接下一步
在这里插入图片描述
安装完成,点击右下角"Finish"完成安装
在这里插入图片描述
完成后会跳转至登录界面,我们使用Admin用户和zabbix密码登录
在这里插入图片描述
进入Zabbix仪表盘主页后,点击右上角的头像图标进入设置界面
在这里插入图片描述
在“Language”一栏中将语言设置为中文,点击“Update”更新应用设置
在这里插入图片描述
这样我们中文的Zabbix控制界面就设置好了
在这里插入图片描述

添加被监控机器

#来到zabbix-agent节点,安装zabbix-agent服务
[root@zabbix-agent ~]# yum -y install zabbix-agent
...
Complete!
#修改/etc/zabbix/zabbix_agentd.conf配置文件,配置zabbix-agent
[root@zabbix-agent ~]# vi /etc/zabbix/zabbix_agentd.conf
#将97行和138行的IP修改为server端IP,将149行主机名修改为Zabbix-agent
[root@zabbix-agent ~]# sed -n '97p;138p;149p' /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
#修改后
[root@zabbix-agent ~]# sed -n '97p;138p;149p' /etc/zabbix/zabbix_agentd.conf
Server=192.168.200.11
ServerActive=192.168.200.11
Hostname=Zabbix-agent
#配置好后启动服务
[root@zabbix-agent ~]# systemctl start zabbix-agent
#查看端口开放状态
[root@zabbix-agent ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1446/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1794/master         
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      9768/zabbix_agentd  
tcp6       0      0 :::22                   :::*                    LISTEN      1446/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1794/master         
tcp6       0      0 :::10050                :::*                    LISTEN      9768/zabbix_agentd 
#看到10050端口就说明启动成功

回到Web界面,选择菜单栏“配置”→“主机”→“创建主机”命令,会跳转到配置主机的页面。
在这里插入图片描述
填写agent端的信息,然后点击下方添加按钮
在这里插入图片描述
添加后agent就出现在了监控主机列表里,我们点击“zabbix-agent”名称,然后点击“模板”标签,进入添加模板操作界面,点击"选择"按钮。
在这里插入图片描述
在这里插入图片描述
进行监控模板添加,在跳转界面勾选用户想要监控的复选框,然后单击下方 “选择”按钮
在这里插入图片描述
选择好后点击下方"添加",然后点击"更新"
在这里插入图片描述
这样agent节点就被添加到监控当中了
在这里插入图片描述
在最上面的选择菜单栏中“监测中”→“图形”命令,群组选择Linux server,主机选择zabbix- agent,图形选择需要显示的监控项,此处选择为CPU jumps。就可以查看被监控的数据了。
在这里插入图片描述

后语

Zabbix的主要特点:

  1. 安装与配置简单,学习成本低。官方不仅提供了详细的安装指南,它的 Web 界面还直观易用,可以通过图形化界面设置监控项和模板。
  2. 支持多语言(包括中文)
  3. 免费开源
  4. 自动发现服务器与网络设备 。Zabbix可以定期扫描网络,发现新的设备并自动将其纳入监控范围,大大减少了手动配置的工作量。
  5. 分布式监视以及WEB集中管理功能。Zabbix支持分布式监控架构,可以在多个地理位置部署代理(Agent)和代理服务器(Proxy),实现大规模网络的监控。同时通过Web界面可以在一个地方查看和管理所有监控数据,确保监控的一致性和高效性。
  6. 可以无agent监视 。Zabbix 可以通过 SNMP、IPMI、JMX、SSH、Telnet 等协议直接采集数据,不需要在被监控设备上安装任何额外软件。
  7. 用户安全认证和柔软的授权方式 。Zabbix提供了多种用户身份验证方式,如本地用户认证、LDAP、Active Directory 等
  8. 通过WEB界面设置或查看监视结果 。Zabbix的所有配置和监控结果都可以通过Web界面进行操作和查看。包括创建和编辑监控项、设置报警规则、查看实时数据和历史数据、生成报告和图表等等
  9. 通知功能强大。Zabbix支持多种通知方式,包括电子邮件、短信、即时通讯(如 Telegram、Slack)、脚本等。当监控指标触发预设的报警条件时,Zabbix 可以立即发送通知,提示运维人员采取措施,让运维人员不需要守在电脑前。此外,通知策略可以根据时间、事件级别、用户组等进行灵活配置,确保及时和准确的报警处理。

Zabbix的主要功能:

  1. CPU负荷
  2. 内存使用
  3. 磁盘使用
  4. 网络状况
  5. 端口监视
  6. 日志监视
  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值