一、Zabbix简介:
1、zabbix的概述
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。Zabbix主要由2部分构成,分别是zabbix server端(一个)与zabbix agent端(多个)。它支持多种监控方式:agent(被动模式),agent(主动模式),snmp,ipmi,jmx等。
agent端:主机通过安装agent方式采集数据。
server端:通过收集agent发送的数据,写入数据库(MySQL,ORACLE等),再通过php+apache在web前端展示.
监控系统的基本模型:
2、zabbix的运行条件
server端:zabbixserver需运行在LAMP(Linux+Apache+Mysql+PHP)环境下(或者LNMP),对硬件要求低。
agent端:目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows。
3、Zabbix的功能
zabbix具备常见的商业监控软件所具备的功能,如主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细的报表图表绘制等等。
另外zabbix还有以下特点:
a、支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现);
b、编写插件容易,可以自定义监控项,报警级别的设置;
c、支持snmp(包括trappingandpolling),IPMI,JMX,SSH,TELNET;
d、定义的检测,自定义收集数据的频率;
e、灵活的触发器,高可定制的报警,发送通知,可定制的报警升级,收件人;
f、实时的绘图功能,监控项实时的将数据绘制在图形上面;
zabbix的监控项目
主机监控:CPU、内存、磁盘的剩余空间/利用率和I/O、SWAP使用率、、进程数。
网卡监控:网卡流量,包括流入/流出量和错误的数据包数。
应用程序:端口和内存使用率、CPU使用率、服务状态、请求数、并发连接数、消息队列的字节数、Client事务处理数、Service状态等。
硬件:温度、风扇转速、电压等。
4、zabbix的一些名词解释
项目(item) 定义收集被监控的数据的项,如收集被监控机内存使用情况
触发器(trigger) 通过项目获得的数据(或者通过计算)来判断主机状态的定义
图形(graph) 通过项目获得数据,以图形方式展示
模板(template) 可将项目,集合,触发器,图形汇总为一个模板,直接链接到主机
主机(host) 被监控对象,服务器或其他网络设备
低级自动发现(low_discovery) 通过低级自动发现可以简单定义一种类型有多个项的的情况,如:对磁盘容量监控,通常磁盘会有多个分区,我们通过一次定义可以监控磁盘上的所有分区
最新数据
(last data) 可查看主机项目获得的最新数据
键值(key) 在配置项目时用到的重要参数,可以看做是一种映射关系,监控程序通过配置此参数来完成对特定数据的获取
二、Zabbix的安装
zabbix服务器(server端)运行的环境必须为Linux(UNIX)+PHP+Web Service+DataBase,这里的Web Service可以为Nginx、Apache,DataBase可以为MySQL、Oracle、PostgreSQL等。所以在安装server端的时候必须先配置LAMP环境。
我们这采用在CentOS6.5操作系统下,以 Apache作为服务器,Mysql做数据库进行存储。
环境:
CentOS 6.5 zabbix版本:2.4.4
server ip: 192.168.212.2 被监控端ip: 192.168.212.3
服务端的操作
1、 服务器安装LAMP平台
1
|
yum -y
install
gcc gcc-c++ autoconf httpd php mysqlmysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gdphp-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmathmysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-develOpenIPMI-devel java-devel libssh2-devel openldap openldap-devel
|
2、 启动mysql和http服务
1
2
3
4
|
service httpd restart;
chkconfig httpd on;
service mysqld start;
chkconfig mysqldon;
|
3、 下载zabbix-server并安装
a、 下载并解压
1
2
|
#wget
#tar -zxf zabbix-2.4.4.tar.gz
|
b、创建zabbix运行需要的用户
1
2
|
#groupadd zabbix;
#useradd zabbix -g zabbix
|
c、创建数据库并授权
1) 进入mysql数据库;
1
|
#mysql -uroot -p
|
2) 创建zabbix数据库,并设置为UTF8编码;
1
|
mysql>createdatabase zabbix
character
set
utf8;
|
3) 把所有zabbix数据库中的表的操作权限赋予zabbix用户,密码为zabbix;
1
|
mysql>grantall
on
zabbix.*
to
zabbix@localhost identified
by
'zabbix'
;
|
d、导入zabbix自定义的表结构和数据
1) 进入zabbix自带mysql 数据库文件目录;
1
|
cd
zabbix-2.4.4
/database/mysql
|
2) 把zabbixserver自带的3个数据库导入zabbix数据库;
1
2
3
|
mysql -uzabbix -pzabbix zabbix< schema.sql
mysql -uzabbix -pzabbix zabbix< images.sql
mysql -uzabbix -pzabbix zabbix< data.sql
|
e、编译安装zabbix-server
# cd zabbix-2.4.4
1
|
.
/configure
--prefix=
/usr/local/zabbix
--
enable
-server--
enable
-proxy --
enable
-agent --
enable
-ipv6 --with-mysql=
/usr/bin/mysql_config--with-net-snmp
--with-libcurl --with-openipmi --with-unixodbc --with-ldap--with-ssh2 --
enable
-java
|
f、服务端口定义
1
2
3
|
#vim /etc/services 追加以下内容
zabbix-agent10050
/tcp
#zabbixagent
zabbix-agent10050
/udp
#zabbixagent
|
g、 修改zabbix的配置文件
1
2
3
4
5
6
7
8
|
#vim/usr/local/zabbix/etc/zabbix_server.conf
LogFile=
/tmp/zabbix_server
.log
##日志位置,根据需求修改;
PidFile=
/tmp/zabbix_server
.pid
##PID所在位置
DBHost=localhost
##服务器为本机
DBName=zabbix
##数据库名称
DBUser=zabbix
##数据库用户名
DBPassword=zabbix
##数据库密码
DBSocket=
/var/lib/mysql/mysql
.sock
##修改MYSQL路径
|
h、添加并修改启动脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#cp zabbix-2.4.4/misc/init.d/fedora/core/zabbix_server /etc/init.d
#chmod +x /etc/init.d/zabbix_server
#vim /etc/init.d/zabbix_server
BASEDIR=
/usr/local/zabbix
##修改这个,zabbix的安装目录
CONFILE=$BASEDIR
/etc/zabbix_server
.conf
##添加这一行,定义配置文件位置
action$
"Starting $BINARY_NAME: "
$FULLPATH -c $CONFILE
# service zabbix_serverstart
#chkconfigzabbix_server on
#cp -r zabbix-2.4.4/frontends/php /var/www/html/zabbix
#chown -R apache:root /var/www/html/zabbix
#vim /etc/php.ini
date
.timezone =Asia
/Shanghai
##更改时区
post_max_size = 32M
##提交数据的最大值
max_execution_time= 300
##php脚本的最长执行时间
max_input_time =300
##php最长接受数据时间
#/etc/init.d/httpd reload
|
访问http://192.168.212.2/zabbix登陆测试,默认账号admin,密码zabbix
更改语言为中文Profile—Language---Chinese(zh CN)
建议用英文,中文翻译的不准确。
客户端的操作:
Agented的监控方式(被动模式)
1、 下载agent压缩包
1
|
wget http:
//www
.zabbix.com
/downloads/2
.4.4
/zabbix_agents_2
.4.4.linux2_6.amd64.
tar
.gz
|
2、 创建zabbix的工作目录
1
|
mkdir
/usr/local/zabbix
|
3、 把下载好的压缩文件解压到工作目录;
1
|
tar
-zxf zabbix_agents_2.4.4.linux2_6.amd64.
tar
.gz -C
/usr/local/zabbix
|
4、 修改配置文件
1
2
3
4
|
#vim/usr/local/zabbix/conf/zabbix_agentd.conf
LogFile=
/tmp/zabbix_agentd
.log
##配置日志文件路径
#Server=192.168.212.2 ##agentd被动模式服务器IP
Hostname=Zabbix server
##在zabbix server配置host时指定的主机名要相同,这样主动模式才能获取到数据
|
注:使用主动模式时,StartAgents设为0,关闭被动模式!
5、 修改启动脚本
下载的agent安装包里面没有启动脚本,但在192.168.212.2的zabbix 源码包里有
1
2
3
4
5
6
7
|
scp
zabbix-2.4.4
/misc/init
.d
/fedora/core/zabbix_agentd
192.168.212.3:
/etc/init
.d/
# chmod +x/etc/init.d/zabbix_agentd
# vim /etc/init.d/zabbix_agentd
BASEDIR=
/usr/local/zabbix
##修改为agent的安装目录,添加以下两行
CONFILE=$BASEDIR
/conf/zabbix_agentd
.conf
action $
"Starting $BINARY_NAME: "
$FULLPATH -c $CONFILE
#groupadd zabbix
|
在服务端测试能否监控到客户端
1
2
|
[root@zabbix~]
# /usr/local/zabbix/bin/zabbix_get -s 192.168.212.3-k"system.hostname"
Client
|
至此,zabbix的服务端及客户端agent主动模式的安装已经完毕。
本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1662051,如需转载请自行联系原作者