要想实时地了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的途径。就目前而言,有服务器的地方必然少不了监控系统。现有的监控软件有很多,但是Zabbix可以灵活的监控服务器资源,并且集Cacti和Nagio两者的优点于一身且功能更加强大,实现企业级分布式监控,所以在市场应用更广。
Zabbix是一个基于Web界面的企业级开源监控套件,提供分布式系统监控与网络监视功能。具有主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细报表、图表的绘制等功能。监测的对象可以是Linux或Windows服务器,也可以是路由器、交换机等网络设备,通过SNMP(简单网络管理协议)、Zabbix、Agent、PING、端口监视等方法提供对远程网络服务器等监控、数据收集等功能,并提供通知机制使系统管理员可以快速定位、解决系统中存在的各种问题。目前Zabbix最新版本为Zabbix 3.4.官方网站是http://www.zabbix.com 。
Zabbix是免费的。Zabbix遵循GPL(通用公共许可证)版本2,这意味着它的源代码是可以自由分布的。Zabbix的商业版本是由Zabbix公司提供支持的。世界上很多大小不同的组织机构都依懒于Zabbix作为自己的一个主要的监控平台。尤其是现在很多互联网企业都在使用它。
Zabbix是一个高度集成的网络监控解决方案,具体描述如图:
zabbix主要由以下几个重要的组件构成,具体作用如下:
Zabbix Server:负责接收Agent发送报告信息的核心组件,所有的配置、数据统计、数据操作都由它组织进行;
Database strongage:负责存储所有的配置信息以及收集的数据;
Web interface:是zabbix的GUI接口,通常强开下与Zabbix Server运行在同一台主机上;
- Proxy:属于可选组件,常用于分布式监控环境中,代理Server收集部分数据,然后转发到Server,可以减轻Server的压力;
*Agent:部署在被监控的主机(客户端)上,负责收集被监控端主机的数据,如CPU、内存、数据库等数据,然后发送到Server端或Proxy端;
默认情况下,Zabbix包含五个程序:zabbix_agentd、zabbix_get、zabbix_sender、zabbix_server、zabbix_proxy,另外有一个zabbix_java_gateway是可选的,需要另外安装。下面来分别介绍它们各自的作用:
zabbix_agentd:客户端守护进程,此进程用于收集被监控端的数据,如CPU负载、内存、硬盘使用情况等;
zabbix_get:zabbix工具是单独使用的命令。zabbix_get是在server或者proxy端执行获取远程客户端信息的命令。主要用于排错。例如:在server端获取不到客户端的内存数据时,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查;
zabbix_sender:用于发送数据给server或者Proxy,通常用于耗时比较常的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,可以使用sender主动提交数据;
zabbix_server:zabbix服务器端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、
zabbix_java_gateway的数据最终都是提交到server。数据并不都是主动提交给zabbix_server的,也有被动提交数据的,及server主动去获取数据;zabbix_proxy:zabbix代理守护进程。功能类似于server,唯一不同的是它只是一个中转站,需要把收集到的数据主动(或被动)地提交到server上;
- zabbix_java_gateway:在zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但目前只用于Java方面,需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会提交到server或者proxy;
在实际生产环境中,Zabbix根据网络环境,监控规模等外界因素分为三种架构:server-client(直接连接)、master-node-client(Node架构)、server-proxy-client(Proxy架构),如下图所示:
server-client架构是Zabbix的最简单的架构,监控机和被监控机之间不经过任何代理,直接在zabbix server和zabbix agentd之间进行数据交互,适用于网络比较简单,设备比较少的监控环境。
master-node-client架构是Zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境。每个node同时也是一个server端。node下面可以接proxy,也可以直接接client。node有自己的配置文件和数据库。其要做的是将配置信息和监控数据项master同步。当master发生故障或损坏,node可以保证架构的完整性。
proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后在提交给server。该架构经常是和master-node-client架构做比较的架构,一般适用于跨机房、跨网络的中型网络架构的监控。
Zabbix提供两种安装方式:YUM安装与编译安装。需要注意的是,由于Centos官方YUM源中并不提供Zabbix软件包以及相关依赖包,因此,如果想用YUM安装Zabbix需要通过Zabbix官方源或第三方的YUM源实现。Zabbix服务器需要LAMP环境或LNMP环境,以下实验部署环境采用YUM安装的LAMP环境为例,详细介绍Zabbix监控服务器的部署方法。
在Centos 7 系统光盘中默认提供的数据库不是MySQL而是MariaDB,因此在LAMP架构中使用MariaDB来充当“M”的角色,其余的组件还是保持原有的Apache与PHP。MariaDB是MySQL数据库源码的一个分支版本,与MySQL在大多数方面是兼容的。
因为安装Zabbix时会安装很多依赖包,其中包括httpd与PHP相关依赖包,所以直接安装Zabbix即可。无须在单独安装httpd与PHP。
此安装全部yum源均是通过连接公网使用网络源而配置的
Centos 7源:wget http://mirrors.aliyun.com/repo/Centos-7.repo
Zabbix 4.0源: rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
Zabbix依赖程序:yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
Zabbix官方网站:Zabbix官网
Zabbix 4.0官方配置文档:Zabbix 4.0官方配置文档
[root@centos02 ~]# cd /etc/yum.repos.d/
[root@centos02 yum.repos.d]# ls
local.repo
[root@centos02 yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
<!--安装网络Centos 7源-->
[root@centos02 yum.repos.d]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
[root@centos02 ~]# yum -y install mariadb mariadb-server <!--安装mariadb数据库依赖-->
[root@centos02 ~]# systemctl start mariadb.service <!--启动服务-->
[root@centos02 ~]# systemctl enable mariadb.service <!--设置服务开机自启-->
[root@centos02 ~]# mysqladmin -uroot password <!--设置数据库密码-->
[root@centos02 ~]# mysql -uroot -ppwd@123 <!--连接数据库-->
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
<!--创建数据库zabbix连接使用,数据库名字为zabbix,默认字符编码utf8,-->
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'pwd@123'; <!--授权zabbix账户访问zabbix数据库密码是pwd@123-->
[root@centos02 ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
<!--安装zabbix依赖程序-->
[root@centos02 ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql
-uzabbix -ppwd@123 zabbix <!--将zabbix数据导入到创建zabbix数据库中 -->
[root@centos02 ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak <!--备份zabbix服务配置文件-->
[root@centos02 ~]# vim /etc/zabbix/zabbix_server.conf <!--修改zabbix服务配置文件-->
91 DBHost=localhost <!--去掉注释符号-->
100 DBName=zabbix <!--数据库名称,根据实际修改,默认不用修改-->
116 DBUser=zabbix <!--数据库用户名,默认不用修改-->
124 DBPassword=pwd@123 <!--数据库密码,修改此行-->
[root@centos02 ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak <!--备份zabbix agent主配置文件-->
[root@centos02 ~]# vim /etc/zabbix/zabbix_agentd.conf
<!--编辑zabbix agent主配置文件,
(指定zabbix server的IP地址,这里要指定服务器的IP地址,现在是同一台服务器上,所有保持默认)
-->
98 Server=127.0.0.1 <!--客户端被动等待指定服务器来查询数据-->
139 ServerActive=127.0.0.1 <!--客户端主动提交数据到指定的服务器-->
150 Hostname=Zabbix server <!--建议修改此行,配置规范的主机名-->
[root@centos02 ~]# vim /etc/httpd/conf.d/zabbix.conf
<!--编辑 Zabbix前端配置文件,设置时区为上海-->
21 php_value date.timezone Asia/Shanghai <!--设置为上海时区,并该行删除注释符号-->
现在服务器端基本配置完成,但是由于字体显示原因,可能使用浏览器访问时,会出现部分文字以乱码显示,所以要下载标准中文字体。可以通过网盘下载:https://pan.baidu.com/s/1iFpLZ4_5Snxry2jUmV8fCw
提取码:ao89
[root@centos02 ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg simkai.ttf
[root@centos02 ~]# find / -name graphfont.ttf <!--查看graphfont.ttf路径-->
/usr/share/zabbix/assets/fonts/graphfont.ttf
[root@centos02 ~]# mv simkai.ttf /usr/share/zabbix/assets/fonts/
<!--剪切中文字体到/usr/share/zabbix/assets/fonts/目录下-->
[root@centos02 ~]# cd /usr/share/zabbix/assets/fonts/ <!--进入目录-->
[root@centos02 fonts]# ls
graphfont.ttf simkai.ttf
[root@centos02 ~]# vim /usr/share/zabbix/include/defines.inc.php
<!--修改PHP界面支持中文字体(如果不修改浏览器访问会出现乱码)-->
70 define('ZBX_GRAPH_FONT_NAME', 'simkai');
<!--将原有的“graphfont”更改为“simkai” -->
[root@centos02 ~]# systemctl start zabbix-server zabbix-agent httpd
<!--启动zabbix-server、zabbix-agent、httpd服务-->
[root@centos02 ~]# systemctl enable zabbix-server zabbix-agent httpd <!--设置开机自动启动-->
我这里客户端使用的是火狐浏览器,如果没有可以通过上面连接提取
1)http://192.168.100.20/zabbix 访问zabbix前端安装向导,单击Next step键
2)环境检测界面,确保所有软件都是OK才可以继续
3)数据库连接配置界面,根据刚才创建好的zabbix数据库填写授权信息
4)数据库连接配置完成,填写zabbix服务信息
5)返回配置汇总信息,默认下一步
6)安装完成
7)登录界面输入默认的用户名Admin,密码zabbix即可登录到zabbix服务器
8)修改登录zabbix服务器的用户及密码,设置界面语言为中文
9)设置完成,退出重新登陆即可
10)创建bob用户,将用户加入Guests群组,设置密码、语言及主题
11)检测内存,不会出现中文乱码
[root@centos03 yum.repos.d]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
<!--网络源安装zabbix4.0版本-->
[root@centos03 ~]# yum -y install zabbix-agent <!--安装依赖程序-->
[root@centos03 ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
<!--备份配置文件-->
[root@centos03 ~]# vim /etc/zabbix/zabbix_agentd.conf<!--修改zabbix客户端主配置文件-->
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.100.20 <!--zabbix服务器端-->
ServerActive=192.168.100.20 <!--zabbix服务器端-->
Hostname=192.168.100.30 <!--zabbix客户端计算机名或者IP地址-->
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#UnsafeUserParameters=0
[root@centos03 ~]# systemctl start zabbix-agent.service <!--启动zabbix-agent服务-->
[root@centos03 ~]# systemctl enable zabbix-agent.service <!--设置为开机自动启动-->
[root@centos03 ~]# netstat -anptu | grep zabbix <!--监听agent服务是否正常启动-->
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2244/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 2244/zabbix_agentd
—————— 本文至此结束,感谢阅读 ——————
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。