一.关于zabbix的介绍
基本介绍
zabbix(音同 za:bix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
企业方面介绍
zabbix 是一个基于WEB界面的企业级的、开源的、分布式的监控套件,被用来监控IT基础设施的可用性和性能。它能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的告警机制,允许用户对事件发送基于邮件、短信、微信和钉钉等告警方式,这样可以保证用户可以快速定位/解决存在的各种问题。
zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得其成为容量规划的理想选择。
zabbix 所有的报表、统计数据和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。
适当的配置后,zabbix可以在监控IT基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。zabbix 是零成本的,因为zabbix编写和发布基于GPL V2协议. 意味着源代码是免费发布的。
zabbix的优缺点
优点:
1.数据采集:可用性和性能检测,自动发现,支持agent、snmp、JMX、telnet等多种采集方式,支持主动和被动模式数据传输、支持用户自定义插件,自定义间隔收集数据
2.高可用:server对设备性能要求低,支持proxy分布式监控,分布式集中管理,有自动发现功能,可以实现自动化监控;开放式接口,扩展性强,插件编写容易
3.告警管理:支持多条件告警,支持多种告警方式,支持多组模板,模板继承。
4.告警设置:告警周期,告警级别,告警恢复通知、告警暂停,时段阈值、支持维护周期、支持单机停用
5.图形化展示:允许自定义创建多监控项视图,网络拓扑,自定义面板展示,自定义IT服务可用性
6.历史数据:历史数据查询可配置,内置housekeeping数据清理机制
7.安全审计:具备安全的用户审计日志,权限认证,用户可以限制允许维护的列表。
缺点:
1.性能瓶颈,监控系统没有低估高峰期,具有持续性和周期性,机器量越大,数据的增大会使数据库的写入成为一定的瓶颈,官网给出的单机上限5000台,届时就需要增加proxy,增加成本。
2.Zabbix采集数据有pull方式,也就是server主动模式,当目标机器量大之后,pull任务会出现积压。采集数据会延迟
3.项目二次开发,需要分析MySQL表结构,表结构比较复杂,通过API开发对开发能力有要求。
4.内置housekeeping在执行过程中会对数据库增加压力,需要对数据库进行优化
zabbix的环境
要想搭建一个Zabbix的工作环境,需要从服务器入手。与服务器通信,管理员需要使用一个Zabbix前端界面,与Zabbix服务器和数据库进行通信。三个关键(界面、服务器和数据库)可以安装在同一台服务器上,但是如果你拥有一个更大更复杂的环境,将它们安装在不同的主机上也是一个选项。Zabbix服务器能够直接监控到同一网络中的设备,如果其他网络的设备也需要被监控,那还需要一台Zabbix代理服务器。
二.安装zabbix
下载zabbix的安装包进行安装(这里需要解决依赖性,按照提示安装相应的软件)
yum install -y zabbix-server-mysql
yum install -y zabbix-web-mysql
安装mariadb并开启mariadb服务
yum install mariadb-server -y
systemctl start mariadb
systemctl enable mariadb
设置安全初始化
mysql_secure_installation
登陆数据库,创建数据库,创建用户并授权
mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'westos'; westos是本地数据库用户zabbix的密码
导入zabbix数据库
cd /usr/share/doc/zabbix-server-mysql-4.0.5/
zcat create.sql.gz | mysql -p zabbix
导入数据库后再次查看数据库,发现此时有zabbix数据库
[root@server1 4.0]# mysql -p
MariaDB [(none)]> show databases;
查看zabbix数据库的表有144行
编辑zabbix的配置文件(修改密码和时区)
vim /etc/zabbix/zabbix_server.conf
vim /etc/httpd/conf.d/zabbix.conf
开启zabbix-server和zabbix-agent和httpd服务
在浏览器中安装zabbix
在浏览器中输入以下网址,便可以根据页面中的要求成功安装zabbix
http://172.25.15.1/zabbix/setup.php
点击Next step,之后会看到一个页面,显示检查php的结果
填写以下信息(输入密码,密码是mysql中的密码),点击Next step
输入name为zabbix server,点击Next step
安装前汇总,点击Next step
安装
登陆(默认用户是Admin,密码是zabbix)
登陆成功后,显示了以下的界面,点击由上角的"小人"头像
点击后选择language为Chinese(以便我们之后更好的操作)
三.添加agent主机:
(一)在server2上安装软件
开启服务
更改配置文件/etc/zabbix/zabbix_agentd.conf(注意此处的hostname必须是本地的主机名,而且在虚拟机上已经配置好解析了):
98 Server=172.25.66.1
139 ServerActive=172.25.66.1
150 Hostname=server2
(二)在server3安装软件
开启服务
类似于server2的操作,更改配置文件/etc/zabbix/zabbix_agentd.conf(此处的hostname必须是本地的主机名):
四.添加zabbix监控:
在server1(zabbix web)添加监控
添加监控有三种方式
手动添加
选择配置->主机->创建主机
写入主机名称为server2,群组为linux servers,ip地址写本机的ip地址,填完信息后点击上方的模板(不要点下方的添加)
选择模板后,进行模板添加,选择Template OS Linux
添加成功,显示以下界面,发现server2主机成功添加,不过可用性显示的还是灰色的,功能没有开启
在server2的shell界面中重新启动一下zabbix-agent
自动发现
删除掉手动添加的server2主机
删除成功
点击配置->动作->事件源->选择自动发现->会看到有一个已经停用的Auto discovery.Linux servers(因为已经配置好了,我们只需要把它开启使用就行),开启成功会有绿色提示
然后设置自动发现规则(设置名称,自动发现的IP范围,更新间隔,没有agent代理程序)
点击监测->自动发现,查看是否发现成功,发现成功可以查看已监测的主机以及在线时间/断线时间
此时再点击配置->主机,查看server2主机已经添加成功,如果可用性ZAB是灰色的,可以重启服务或者刷新界面,稍等一会二就变绿了
自动注册
自动注册是server3去发现主机,开启自动注册,需要先关闭自动发现,不然会相互干扰
在浏览器中点击配置->自动发现,点击“已启用”将自动发现禁用(也可以将其打上对勾,选择底下的禁用)
在浏览器中点击配置->动作,点击“已启用”将自动发现禁用(也可以将其打上对勾,选择底下的禁用)
选择自动注册,并点击创建动作
输入名称auto_reg,设置触发条件,主机名称,包含,server3,选择完后不要点添加,点击操作
在操作中点击新的添加操作
首先点击新的,选择操作类型为添加主机
其次,选择添加到主机群组,群组选择Linux servers
最后添加操作类型与模板关联,模板Template OS Linux,点击添加,点击更新
动作更新后显示的页面
此时点击配置->主机,会发现server3已经被发现(此时是自动注册),和之前一样如果可用性是灰色,刷新或者重启服务,一会儿就会变绿
关于zabbix监控的基础设置我就先介绍到这里了
其实最常用的添加监控方法应该是自动发现,因为一次可以发现多个