一、zabbix概述

zabbix是一个基于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 agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系统之上。

zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。

另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。

zabbix的主要特点:

  • - 安装与配置简单,学习成本低

  • - 支持多语言(包括中文)   

  • - 免费开源   

  • - 自动发现服务器与网络设备   

  • - 分布式监视以及WEB集中管理功能   

  • - 可以无agent监视   

  • - 用户安全认证和柔软的授权方式   

  • - 通过WEB界面设置或查看监视结果   

  • -email等通知功能等等   

(摘自百度百科)

二、zabbix的常用名词

  • 主机(host):要监控的网络设备,可由IP或DNS名称指定

  • 主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组内的主机和模板不能互相链接,主机组通常在给用户或用户组指派监控权限时使用

  • 监控项(item):一个特定监控指标的相关数据,这些数据来自于被监控对象;因此item是zabbix进行数据收集的核心,没有item,将没有数据;相对某监控对象来说,每个item都有“key”进行标识

  • 触发器(trigger):一个表达式,用于评估某监控对象的某特定item内所就收到的数据是否在合理范围内,即阈值;接收到的数据量大于阈值时,触发器状态将从“OK”转换成“Probelm”,当数据量再次回顾到合理范围时,其状态将会由“Problem”转换回“OK”

  • 事件(event):即发生的一个值得关注的事情,例如触发器的状态转变,新的agent或重新上线的agent的自动注册等

  • 动作(action):指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作)

  • 报警升级(escalation):发送警报或执行远程命令的自定义方案,如每隔5分组发送一次警报,共发送5次等

  • 媒介(media):发送通知的手段或通道,如Email、Jabber或SMS等有开发API的组件

  • 通知(notification):通过选定的媒介向用户发送的有关事件的通知

  • 远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行

  • 模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application已经low-level discovery rule;模板可以直接链接至单个主机

  • 应用场景(application):一组item的组合

  • web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求

  • 前段(frontend):Zabbix的web接口

三、实验环境

IP地址 角色
安装软件 操作系统
172.16.88.2 服务器端+被监控端+数据库存储
zabbix-server、zabbix-web、zabbix-agent、mysql,php,httpd centos6.5
172.16.88.4 被监控端 zabbix-agent centos6.5

四、zabbix安装

zabbix可以采用rpm,yum,源码编译安装3种,我们这里采用编译安装!

下载源码包:

  • 在172.16.88.2服务器端安装:

1
2
3
4
5
[root@mogilefs2 ~]# yum install mysql-server mysql-devel libcurl-devel net-snmp-devel php php-gd php-xml php-mysql php-mbstring php-bcmath httpd
[root@mogilefs2 ~]# tar xf zabbix-
2.0
.
9
.tar.gz
[root@mogilefs2 ~]# cd zabbix-
2.0
.
9
[root@mogilefs2 zabbix-
2.0
.
9
]# groupadd zabbix
[root@mogilefs2 zabbix-
2.0
.
9
]# useradd -g zabbix zabbix

  • 创建数据库(使用mysql数据库)

1
2
3
4
[root@mogilefs2 zabbix-
2.0
.
9
]# mysql
mysql> create database zabbix character 
set 
utf8 collate utf8_bin;
mysql> grant all on zabbix.* to zabbix@
'localhost' 
identified by 
'zabbix'
;
mysql> flush privileges;

  • 数据库文件在zabbix-2.0.6/database/mysql目录下,导入进去

1
2
3
4
[root@mogilefs2 ~]# cd zabbix-
2.0
.
9
/database/mysql/
[root@mogilefs2 mysql]# mysql -uzabbix -pzabbix  zabbix <schema.sql
[root@mogilefs2 mysql]# mysql -uzabbix -pzabbix  zabbix <images.sql
[root@mogilefs2 mysql]# mysql -uzabbix -pzabbix  zabbix <data.sql

  • 编译安装

1
2
3
[root@mogilefs2 ~]# cd zabbix-
2.0
.
9
[root@mogilefs2 zabbix-
2.0
.
9
]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --
with
-mysql --enable-ipv6 --
with
-net-snmp --
with
-libcurl
[root@mogilefs2 zabbix-
2.0
.
9
]# make &&make install

  • 修改server配置文件

1
2
3
4
5
6
7
[root@mogilefs2 etc]# vim  /usr/local/zabbix/etc/zabbix_server.conf
//修改如下:
LogFile=/tmp/zabbix_server.log
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/
var
/lib/mysql/mysql.sock

  • 启动

1
2
3
[root@mogilefs2 sbin]# cd /usr/local/zabbix/sbin/
[root@mogilefs2 sbin]# ./zabbix_server
[root@mogilefs2 sbin]# netstat -tnlp

  • 配置php

1
2
3
4
5
6
7
[root@mogilefs2 sbin]# vim /etc/php.ini
date.timezone =Asia/Shanghai
post_max_size = 32M
max_execution_time = 
400
max_input_time = 
400
//重启http服务
[root@mogilefs2 sbin]# service httpd restart

  • 复制web interface到www目录

1
2
3
[root@mogilefs2 sbin]# mkdir /
var
/www/html/zabbix
[root@mogilefs2 sbin]# cd /root/zabbix-
2.0
.
9
/frontends/php/
[root@mogilefs2 php]#  cp -a . /
var
/www/html/zabbix/

确认好web服务器配置并开启,就输入

选择next

1、查看哪个不ok就解决

我这个是全部ok,直接next

2、输入的数据库连接信息

3、输入你的zabbix服务信息

4、之前操作的汇总

没有问题,选择next

5、先下载这个文件,然后在传到服务器里,给与777权限,修改用户与组为zabbix

6、没有问题了,选择finish

wKiom1NzALujSHNWAAMD_RMe5CU434.jpg7、默认的账户为Admin,密码为zabbix,之后就进入zabbix界面了

8、修改语言为简体中文

改成中文时,有时候可能会出现乱码,我们可以通过以下操作来解决!

1、在windows系统中的C:\windows\fonts目录中复制一个自己喜欢的,如simfang.ttf(楷体简体);

2、将simfang.ttf文件上传到Zabbix Server网站目录中的fonts目录下;如:/var/www/html/zabbix/fonts中
3、将Zabbix Server网站目录中的fonts目录里原来的“DejaVuSans.ttf”改名。

4、将上传上去的文件改为DejaVuSans.ttf。

5、只需要刷新一下,无乱码!

五、zabbix的简单配置

  • 首先添加主机:

配置如下:

  • 添加主机完成后,添加监控项目:

继续添加3个项目:

  • 项目添加完成后,我们来添加图形!

在主机列表上,找到对应的主机,然后点击图形按钮,再点击创建图形!

  • 再来定义筛选

  • 定义触发器

  • 创建新的媒介

  • 定义动作

配置>动作>创建动作

  • 查看状态

  • 测试下,看是否会报警:

通过ping 172.16.88.2来增加网卡流量

为了演示修改,把触发器改成流量大于1024时,触发动作!

  • 我们来看下管理员有没有收到邮件通知

当流量正常时,状态就变成正常了

六、为zabbix创建模块

大家是不是发现上面为主机创建这些项目,图形,触发器非常麻烦,我们可以定义一个模块,让创建主机时,关联这个模块就可以了!

  • 另一台agent服务器的安装:

172.16.88.4上同样通过编译安装zabbix

1
2
3
4
5
6
[root@www ~]#  tar xf zabbix-
2.0
.
9
.tar.gz
[root@www ~]#  cd zabbix-
2.0
.
9
[root@www zabbix-
2.0
.
9
]# groupadd zabbix
[root@www zabbix-
2.0
.
9
]# useradd -g zabbix zabbix
[root@www zabbix-
2.0
.
9
]# ./configure --prefix=/usr/local/zabbix   --enable-agent
[root@www zabbix-
2.0
.
9
]# make && make install

修改配置文件

1
2
3
[root@www ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
//修改如下:
Server=
172.16
.
88.2

启动agent服务

1
2
3
4
[root@www ~]# cd /usr/local/zabbix/sbin/
[root@www sbin]# ./zabbix_agent
zabbix_agent   zabbix_agentd
[root@www sbin]# ./zabbix_agentd

查看端口:

连接新增主机:

当流量超了,依然会有报警

至此,zabbix的安装与简单应用已经介绍完毕,后期我们会来介绍下zabbix的高级应用!