初识zabbix

监控是整个运维以及产品在整个生命周期中最重要的一环,旨在事前能够及时告警通告故障,事中能够结合监控数据定位问题,事后能够提供数据分析问题

zabbix是一个企业级的监控方案,我们可以通过zabbix第一时间了解到服务器的一些基本情况,保证服务可靠性安全性,或者当服务器出现异常时候及时采取措施,保证业务的稳定、可持续运行。

除了zabbix,还有其他一些监控方案像CactiNagiosGangliaPromethus等等。

特性

说到zabbix的优点,我第一个想到的就是开源,极大地减少了企业的成本投入;其次是功能较为齐全,自带多种监控模板,满足各种监控需求;在一些分布式集群中,zabbix支持分布式集中管理,而且有自动发现功能,可以实现自动化监控,极大地提高了运维效率。

缺点:

  • 需要在被监控主机上安装zabbix-agent
  • 所有数据都存放在数据库里面,数据库容易成为瓶颈
  • 自定义报警监控项需要自己定义,过程较为繁琐

zabbix架构以及组件结构

zabbix 监控AIX系统 zabbix监控方案_运维

  • zabbix-server:整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有配置、 统计数据及操作数据都由它组织。
  • Database:所有配置信息和zabbix收集到的数据都存储在数据库中。
  • zabbix-proxy:用于分布式系统中,可以代理zabbix-server的功能,减轻server的压力。
  • zabbix-agent:客户端软件,装在被监控主机上,用于采集监控数据,并把采集到的的数据发送给proxy或者server。
  • web界面:web界面可以让用户随时随地都能够轻松的访问到zabbix,是zabbix-server的一部分,通常跟server运行在同一台物理机上。

zabbix 监控AIX系统 zabbix监控方案_zabbix 监控AIX系统_02

监控方式

zabbix有两种监控方式——主动模式和被动模式

  • 主动模式
  • agent主动向zabbix-server请求与自己相关的监控项配置,主动将监控数据发送给server(有proxy情况下发送给proxy)
  • 被动模式
  • server向agent请求获取监控数据,agent收到请求,之后获取数据并响应给server

这两个方式的区别在于主动模式能够极大地节约server的资源,不需要server自己去找agent要,一般生产环境里面大多都是设置成主动模式。

zabbix-server部署

介绍完zabbix的一些基础知识后,我们少说多做——搭建一个简单分布式集群并使用zabbix对集群进行监控。

有三台虚拟机,一台为zabbix-server,另外两台为zabbix-agent

server:192.168.244.141

agent1:192.168.244.128

agent2:192.168.244.129

架构图如下:

zabbix 监控AIX系统 zabbix监控方案_zabbix 监控AIX系统_03

zabbix安装官网

zabbix 监控AIX系统 zabbix监控方案_linux_04

  • 首先下载Zabbix-server所需组件
[root@server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

[root@server ~]# yum clean all
[root@server ~]# yum install zabbix-server-mysql zabbix-web-mysql -y
  • 接着下载数据库,实现数据存储的功能
[root@server ~]# yum install mariadb-server -y

#启动数据库并设置成开机自启动
[root@server ~]# systemctl start mariadb
[root@server ~]# systemctl enable mariadb
  • 初始化数据库
[root@server ~]# # mysql -uroot -p
password :#回车即可
#创建一个名为zabbix的库并设置为utf8的字符编码格式
mysql> create database zabbix character set utf8 collate utf8_bin;

#创建用户并授权设置密码
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> flush privileges;
mysql> quit;
all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等


on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user


to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”xianyu”@”192.168.0.%”,表示xianyu这个用户只能在192.168.0IP段登录


identified by:指定用户的登录密码
  • 导入表
[root@server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

导入之后验证一下

zabbix 监控AIX系统 zabbix监控方案_linux_05

  • 我们对zabbix-server进行配置数据库密码

配置文件路径:

/etc/zabbix/zabbix_server.conf

[root@server ~]# vim /etc/zabbix/zabbix_server.conf
DBPassword=password
[root@server ~]# systemctl start zabbix-server.service
[root@server ~]# systemctl enable zabbix-server.service
  • 进行前端php配置
[root@server ~]# vim /etc/httpd/conf.d/zabbix.conf

#这里我们修改时区为亚洲上海即可
php_value date.timezone Asia/Shanghai

#启动服务
[root@node1 ~]# systemctl start httpd
[root@node1 ~]# systemctl enable httpd
  • 验证

至此完成zabbix 服务端的部署,我们可以在浏览器输入:ip/zabbix 进行访问。

zabbix 监控AIX系统 zabbix监控方案_运维_06

zabbix 监控AIX系统 zabbix监控方案_zabbix 监控AIX系统_07

zabbix 监控AIX系统 zabbix监控方案_zabbix 监控AIX系统_08

zabbix 监控AIX系统 zabbix监控方案_数据库_09

至此我们成功登录zabbix的web页面,我们也可以点击左上角头像图标进行语言设置

zabbix 监控AIX系统 zabbix监控方案_运维_10

总结

今天给大家简单介绍了一下zabbix以及zabbix-server的部署,由于篇幅问题,我打算在下一篇文章里面教大家如何进行zabbix-agent的部署以及自定义监控项对agent进行监控。

后面还会将其中一台机器部署为zabbix-proxy,让大家对server+proxy架构有个更清晰的认识!