运维必备——Zabbix监控系统(上)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 运维必备——Zabbix监控系统(上)

一、关于Zabbix


(1)什么是Zabbix


Zabbix是一个基于web界面以及开源的监控套件


(2)Zabbix具备的功能


  • 主机的性能监控
  • 网络设备性能监控
  • 数据库性能监控
  • 多种警告方式
  • 详细报表图表绘制


(3)Zabbix的官方网站


Zabbix官网:http://www.zabbix.com


(4)Zabbix的一些重要组件


  • Zabbix Server: 监控服务
  • Database storage: 提供数据库存储功能并且用于存储配置信息,以及采集到的数据
  • Web interface: 监控服务的可视化web界面
  • Pxory: 当监控节点较多时,用于减轻服务器的压力组件,也可以用在分布式监控系统
  • Agent: 部署在被监控的主机上,用于采集本地的数据


(5)Zabbix的进程


  • zabbix_agentd: zabbix客户端守护进程,此进程用于收集被监控端的本地数据,包括cpu、内存硬盘等
  • zabbix_get: zabbix工具,是单独使用的命令,主要用于排错
  • zabbix_proxy: zabbix代理守护进程,功能类似于server,但是是充当一个代理服务器
  • zabbix_sender: 主要用于发送数据给server或者proxy,很多检查会非常耗费时间,导致zabbix超时,所以当脚本执行完之后,可以使用sender主动提交数据
  • zabbix_server: zabbix的服务端守护进程,其他的五个进程最终的数据都需要交给server,并且可以主动去获取数据
  • zabbix_java_gateway: 这是在zabbix2.0之后新增的功能,即java网关,类似于agentd,但是他只能主动获取数据,不能被动获取


20210323135305580.png

(6)Zabbix的工作原理


首先需要将agent安装到被监控端的主机上,负责定期收集被监控端的本地数据,发送到server端,然后server将数据存储到database数据库中,最后web根据收集到的数据去进行显示和绘图

注意:这里的agent收集数据分为主动和被动模式,主动即agent向server端请求监控项列表,并且将需要检测的数据提交给sever或者proxy代理,被动即server向agent请求获取监控项列表


(7)Zabbix的监控架构


即分为三种:


1、直接连接


直接连接即server-client架构,这是zabbix最简单的架构,在这个架构中被监控端和监控端不经过代理,agent和server直接进行数据交互,适用于网络比较简单,设备比较少的环境


2、Node架构


Node架构即master-node-client架构,这是zabbix中比较复杂的架构,每个node节点同时也是server端,node下可以直接连接proxy代理,也可以直接连接client被监控端,每个node都有自己的配置文件和数据库,他们要做的就是把收集到的数据同步到master。当master发现故障时,node也可以保证架构的完整性,即提供了高可用。这个架构适用于跨网络、跨机房、设备多的大型环境


3、Proxy架构


Proxy架构即server-proxy-client架构,proxy代理是agent被监控端和server监控端之间的桥梁。peoxy本身是没有前端并且不存放数据,只是充当一个代理服务器,将agent发过来的数据暂时存放,然后发送给server。这种架构一般是与node架构做比较使用,一般适用于跨机房、跨网络的中型环境


20210323140850811.png

二、部署Zabbix监控系统——直接连接架构


(1)实验环境


本次实验采用centos7的17版本镜像


主机名 ip地址 扮演角色
zabbix 192.168.100.1 zabbix监控服务器
Centos 192.168.100.2 被监控端
win7 192.168.100.3 被监控端
R1 192.168.100.254 被监控端路由器


(2)实验步骤


zabbix服务器配置

******(1)先做基础配置
[root@Centos7 ~]# hostnamectl set-hostname zabbix
[root@Centos7 ~]# su
[root@zabbix ~]# systemctl stop firewalld
[root@zabbix ~]# setenforce 0
setenforce: SELinux is disabled
[root@zabbix ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt 忙
       /dev/sr0 已经挂载到 /mnt 上
******(2)安装mariadb数据库,实现LAMP环境(使用yum安装)
————————————————————————————————————华丽分割线————————————————————————————————————
mariadb是mysql的一个分支,主要是由开源社区进行伟华,采用GPL授权许可
为什么开发这个分支,是因为甲骨文公司收购了mysql,所以mysql存在闭源的风险,所以才开发出这个分支
mariadb完全兼容mysql,包括api和命令行,使它可以称为mysql的替代品
—————————————————————————————————————————————————————————————————————————————————
[root@zabbix ~]# yum -y install mariadb-server mariadb       
。。。。。。
完毕!
[root@zabbix ~]# systemctl start mariadb
[root@zabbix ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@zabbix ~]# netstat -anpt | grep mysqld
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1707/mysqld         
[root@zabbix ~]# mysqladmin -u root -p password 123 (设置密码)
Enter password: 
[root@zabbix ~]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> quit
Bye
******(3)安装zabbix,把zabbix的软件包传到本地,并且添加为yum源,使用yum安装,过程中会把httpd和php都安装完,所以不用在安装httpd和php
软件包需要去zabbix官网下载
[root@zabbix ~]# yum -y install createrepo (安装yum源软件)
[root@zabbix ~]# mkdir /other (创建一个yum源的目录)
[root@zabbix ~]# cd /other/
[root@zabbix other]# ls | wc -l (上传软件包,总共有75个)
75
[root@zabbix other]# cat <<a>> /etc/yum.repos.d/centos.repo  (编写yum文件,添加other为yum库)
> [bbb]
> name=bbb
> baseurl=file:///other
> enabled=1
> gpgcheck=0
> a
[root@zabbix other]# createrepo /other/ (把other变为yum库)
Spawning worker 0 with 75 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@zabbix other]# yum makecache (新建yum数据缓存)
已加载插件:fastestmirror
aaa                                          | 3.6 kB     00:00     
bbb                                          | 2.9 kB     00:00     
(1/5): bbb/filelists_db                        |  55 kB   00:00     
(2/5): bbb/other_db                            |  29 kB   00:00     
(3/5): bbb/primary_db                          |  65 kB   00:00     
(4/5): aaa/other_db                            | 1.2 MB   00:00     
(5/5): aaa/filelists_db                        | 3.1 MB   00:00     
Loading mirror speeds from cached hostfile
元数据缓存已建立
[root@zabbix other]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent (安装zabbix)
。。。。。。
完毕!
******(4)zabbix web需要数据库,所以在数据库中创建zabbix的数据库,并且赋权一个用户管理权限,增强安全性
[root@zabbix other]# cd
[root@zabbix ~]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '123123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit
Bye
******(5)导入数据库脚本
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-3.4.1/create.sql.gz | mysql -u zabbix -p123123 zabbix
******(6)检查编辑配置文件
————————————————————————————————————————————————————————————————
server配置文件为:/etc/zabbix/zabbix_server.conf
指定数据库的名称、用户、密码
————————————————————————————————————————————————————————————————
[root@zabbix ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak (给配置文件做一个备份)
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
。。。。。。
91  DBHost=localhost
92 
。。。。。。
100 
101 DBName=zabbix
102 
。。。。。。
116 
117 DBUser=zabbix
118 
。。。。。。
125  DBPassword=123123 (填写数据库用户的密码)
126 
.。。。。。
保存退出
————————————————————————————————————————————————————————————————
agent配置文件/usr/local/etc/zabbix_agent.conf,指定server的ip地址。
每台agent主机都要配置,本地服务器不做修改
————————————————————————————————————————————————————————————————
[root@zabbix ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
[root@zabbix ~]# vim /etc/zabbix/zabbix_agentd.conf
。。。。。。
96 
97 Server=127.0.0.1 (客户端被动等待指定服务器来查询数据,因为本机是服务器所以写本地)
98
。。。。。。
137 
138 ServerActive=127.0.0.1 (客户端主动提交到数据道指定服务器,因为本机是服务器所以写本地)
139 
。。。。。。
148 
149 Hostname=Zabbix server
150
。。。。。。
保存退出
******(7)启动server、agent、httpd
[root@zabbix ~]# systemctl start zabbix-server
[root@zabbix ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@zabbix ~]# systemctl start zabbix-agent
[root@zabbix ~]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@zabbix ~]# systemctl start httpd
[root@zabbix ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemdsystem/httpd.service.
[root@zabbix ~]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      2031/zabbix_agentd  
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      1945/zabbix_server  
tcp6       0      0 :::10050                :::*                    LISTEN      2031/zabbix_agentd  
tcp6       0      0 :::10051                :::*                    LISTEN      1945/zabbix_server  
[root@zabbix ~]# netstat -anpt | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      2061/httpd      
******(8)安装zabbix web接口
————————————————————————————————————————————————————————————————
编辑httpd服务针对zabbix的前端配置文件为:/etc/httpd/conf.d/zabbix.conf
设置时区与当前系统时区一致即可
————————————————————————————————————————————————————————————————
[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf 
。。。。。。
 19          php_value date.timezone Asia/Shanghai (修改时区)
 20     </IfModule>
。。。.。。
保存退出
[root@zabbix ~]# systemctl restart httpd (重启httpd)

现在可以先验证了


(1)访问浏览器http://192.168.100.1/zabbix


20210325155219916.png

(2)点击Next step,确认服务都正常是“OK”的


20210325155335313.png


(3)点击Next step,添加数据库名称、用户、密码等,要和在数据库创建的数据库名和赋权用户的名称、密码相同


20210325155459896.png

(4)点击Next step,输入name


20210325160254854.png


(5)点击Next step下一步


2021032516032628.png

(6)确认信息后点击Next step


20210325160353539.png


(7)点击Finish,进入用户界面,用户名为Admin,密码zabbix


20210325160443997.png

(8) 点击Sign in进入监控系统

20210325160636324.png

(9) 进入zabbix界面


依次点击: Administration——users——Admim,然后修改为中文,点击update更新


20210325161314643.png



然后再次点击Admin可以修改密码


20210325164923587.png


至此,zabbix监控端搭建完成!!


被监控端——centos7


******(1)先做基础配置
[root@Centos7 ~]# hostnamectl set-hostname cetnos
[root@Centos7 ~]# su
[root@cetnos ~]# systemctl stop firewalld
[root@cetnos ~]# setenforce 0
setenforce: SELinux is disabled
[root@cetnos ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt 忙
       /dev/sr0 已经挂载到 /mnt 上
******(2)上传agent的rpm包到本地并且进行配置
[root@cetnos ~]# ll
总用量 348
-rw-------. 1 root root   1264 1月  12 18:27 anaconda-ks.cfg
-rw-r--r--  1 root root 352092 3月  26 00:28 zabbix-agent-3.2.6-1.el7.x86_64.rpm
[root@cetnos ~]# rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm 
警告:zabbix-agent-3.2.6-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-agent-3.2.6-1.el7         ################################# [100%]
[root@cetnos ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
[root@cetnos ~]# vim /etc/zabbix/zabbix_agentd.conf
。。。。。。
94 
95 Server=192.168.100.1 (修改为zabbix服务器的地址)
96 
。。。。。。
135 
136 ServerActive=192.168.100.1 (修改为zabbix服务器的地址)
137 
。。。。。。
146 
147 Hostname=linux (改一个自己的主机名)
148 
。。。。。。
保存退出
[root@cetnos ~]# systemctl start zabbix-agent.service
[root@cetnos ~]# systemctl enable zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@cetnos ~]# netstat -anpt | grep agent
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      1569/zabbix_agentd  
tcp6       0      0 :::10050                :::*                    LISTEN      1569/zabbix_agentd  

(1)做完被监控机上的操作后,转到zabbix的web界面进行配置


**具体步骤:**配置——主机——创建主机


20210325163530380.png


(2)进入创建主机的界面,进行配置


  • 主机名称要和被监控机中agent配置文件中的主机名相同
  • 可以添加到自己想要的群组
  • agent代理程序的接口写被监控机的地址即可,接口不用修改


20210325165102719.png

点击模板

2021032516514876.png

点击选择



20210325165218918.png



会弹出一个页面,勾选Template OS Linux,点击选择


20210325165247619.png

点击添加


20210325165316929.png


(3) 点击主机,会发现多了一个监控主机,选项ZBX为绿色即可


20210326092753354.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
22天前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
1月前
|
传感器 人工智能 运维
AR智慧运维系统介绍
阿法龙XR云平台是一款面向工业领域的增强现实(AR)智能化平台,助力企业实现数字化转型。平台集成智能巡检工作流、远程协助、AI视频验收、人脸识别等功能模块,支持AR眼镜与移动终端,提供虚实融合的运维体验。具备高度定制化能力,适配多种工业场景,提升运维效率与智能化水平。
|
2月前
|
数据采集 运维 监控
运维靠经验拍脑袋?不如上车:构建“数据驱动”的智能决策系统
运维靠经验拍脑袋?不如上车:构建“数据驱动”的智能决策系统
117 0
|
3月前
|
人工智能 运维 监控
聚焦“AI+运维”深度融合,龙蜥系统运维联盟 MeetUp 圆满结束
现场 40 多位开发者进行了深入的技术交流,探索 AI 与运维深度融合的未来路径。
|
11天前
|
存储 运维 监控
57_大模型监控与运维:构建稳定可靠的服务体系
随着大语言模型(LLM)技术的快速发展和广泛应用,如何确保模型在生产环境中的稳定运行、高效服务和安全合规已成为企业和开发者面临的关键挑战。2025年,大模型服务已从实验室走向各行各业的核心业务流程,其运维复杂度也随之呈指数级增长。与传统软件系统不同,大模型服务具有参数规模庞大、计算密集、行为不确定性高等特点,这使得传统的运维监控体系难以满足需求。
|
2月前
|
人工智能 运维 Prometheus
运维还要天天盯人值班?现代化运维就该让系统自己跑!
运维还要天天盯人值班?现代化运维就该让系统自己跑!
91 4
|
2月前
|
运维 Prometheus 监控
可观测性不是监控的马甲:运维团队到底该怎么升级?
可观测性不是监控的马甲:运维团队到底该怎么升级?
87 7
|
3月前
|
运维 Prometheus 监控
系统崩了怪运维?别闹了,你该问问有没有自动化!
系统崩了怪运维?别闹了,你该问问有没有自动化!
120 9
|
6月前
|
运维 监控 安全
【案例分享】中国通号卡斯柯公司:ZABBIX如何破解轨道交通监控难题
本文根据2023上海峰会上朱林贤的演讲整理,聚焦中国通号卡斯柯公司如何借助Zabbix实现轨道交通信号系统的智能化管理。作为中外合资企业,卡斯柯通过统一平台整合设备监控,大幅降低成本并提升灵活性,成功应用于国内外项目。文章探讨了传统监控系统的痛点、研发维护经验及国产化与开源技术挑战,为行业转型提供了宝贵启示。未来,开放协作将是推动轨道交通智能化发展的关键。
251 0
|
8月前
|
存储 缓存 监控

热门文章

最新文章

推荐镜像

更多