Linux下常用的系统监控软件有Nagios、Cacti、Zabbix、Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员。

今天开始研究下Zabbix,使用Zabbix的目的,是为了能够更好的监控MySQL数据库服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大。 首先,我们先来介绍下Zabblx:

一.Zabbix简介

  1. zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  2. zabbix由zabbix server与可选组件zabbix agent两部门组成。
  3. zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
  4. zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

zabbix的主要特点: - 安装与配置简单,学习成本低 - 支持多语言(包括中文) - 免费开源 - 自动发现服务器与网络设备 - 分布式监视以及WEB集中管理功能 - 可以无agent监视 - 用户安全认证和柔软的授权方式 - 通过WEB界面设置或查看监视结果 - email等通知功能 等等

Zabbix主要功能: - CPU负荷 - 内存使用 - 磁盘使用 - 网络状况 - 端口监视 - 日志监视

二.Zabbix安装

2.1 zabbix WEB环境搭建 zabbix的安装需要LAMP或者LNMP环境,选择编译安装或yum安装,新手推荐yum安装。 编译安装 Apache-2.4.3安装: Mysql-5.x安装: php-5.6.28安装: yum安装

yum install mysql-server httpd php

一路都选”Y”就行了; zabbix依赖包安装

yum install mysql-dev gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xm

2.2 zabbix 数据库设置

zabbix数据库可以和zabbix服务器分离,采用用专门的mysql服务器存储数据,此时要给zabbix数据库受相应的权限。

grant all privileges on zabbix.* to zabbix_user@'ip' identified by '123456';

注:ip为zabbix服务器的IP地址。 关于数据库的安装,可以查看Mysql安装,我习惯使用二进制包。 启动数据库

/usr/local/mysql/bin/mysqld_safe  --user=mysql &

登录数据库,创建帐号和设置权限:

mysql> use mysql;
mysql>create database zabbix character set utf8;
mysql>grant all privileges on zabbix.* to zabbix_user@'192.168.10.197' identified by '123456';

2.3安装zabbix服务

增加zabbix用户和组

#groupadd zabbix
#useradd -g zabbix -m zabbix

下载软件包:

# tar -zxvf  zabbix-2.0.3.tar.gz
#cd zabbix-2.203
导入数据库表
#cd  zabbix-2.0.3/database/mysql
#mysql -uroot -pmysql zabbix < schema.sql
#mysql -uroot -pmysql zabbix < images.sql
#mysql -uroot -pmysql zabbix < data.sql

2.4编译安装zabbix

./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy

编译报错checking for main in -lmysqlclient … no yum 安装mysql-devel即可

#make
#make install

添加服务端口

vim /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper

添加配置文件

# mkdir -p /etc/zabbix
# cp -r zabbix-2.203/conf/* /etc/zabbix/
# chown -R zabbix:zabbix /etc/zabbix

修改server配置文件,添加zabbix数据库密码

vim /etc/zabbix/zabbix_server.conf

LogFile=/tmp/zabbix_server.log

PidFile=/tmp/zabbix_server.pid

DBName=zabbix

DBUser=zabbix_user

DBPassword=123456     #指定zabbix数据库密码

ListenIP=192.168.10.197    #服务器IP地址

修改Agentd配置文件,更改HOSTNAME为本机的hostname

vim /etc/zabbix/zabbix_agentd.conf

PidFile=/tmp/zabbix_agentd.pid #进程PID

LogFile=/tmp/zabbix_agentd.log #日志保存位置

EnableRemoteCommands=1 #允许执行远程命令

Server=192.168.10.197 #agent端的ip

Hostname=client1 #必须与zabbix创建的host name相同

如图设置hostname

windows zabbix安装部署_mysql

添加web前段php文件

# cd zabbix-2.203/frontends/
# cp -rf php /usr/local/apache2/htdocs/zabbix #yum默认虚拟主机目录/var/www/html
# chown -R zabbix:zabbix zabbix

web前端安装配置 修改PHP相关参数

vim /usr/local/php/lib/php.ini  #yum默认位置/etc/php.ini

max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 32M
date.timezone = Asia/Shanghai
mbstring.func_overload=2
在客户端浏览器上面访问zabbix,开始WEB的前端配置,http://ZabbixIP/zabbix,按提示点击下一步

Step1:下一步。

Step2:如果全部OK的话才能进行下一步的安装,如果有错误请返回到server端检查相关的软件包是否安装。 检测php文件未通过,尝试安装:yum install php-xml

Step3:需要输入mysql数据库帐号密码,如果数据库不在zabbix服务器上面,在Host里面添加数据库服务器的地址,并且要用grant命令给数据库授权。

出现错误:Can’t connect to MySQL server on ‘XXX’ (13)

解决:setsebool httpd_can_network_connect 1

错误:[Z3001] connection to database ‘zabbix’ failed: [2003] can’t connect to Mysql server on ‘XXX’(111)

解决:zabbix_server.conf中DBPort没配置正确

windows zabbix安装部署_windows zabbix安装部署_02

Step4:输入服务器端 host name or host IP addres;

最后会自动写入配置文件:zabbix.conf.php(写入失败,手动复制),配置完成后出现登陆界面,默认的用户名为:admin,密码为:zabbix。

登陆界面错误 1.mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead [include/db.inc.php:77] 解决:http://www.ttlsa.com/php/deprecated-mysql-connect/

三.启动zabbix服务 在zabbix安装目录下面可以直接启动

#/usr/local/zabbix/sbin/zabbix_server start
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      7140/zabbix_agentd

启动错误解决: 1.error while loading shared libraries: libmysqlclient.so.xx: cannot open shared object file: No such file or directory

vim /etc/ld.so.conf
/usr/local/mysql/lib   #你的mysql,libmysqlclient.so.xx路径
[root@zabbix_server sbin]# ldconfig

2.[Z3001] connection to database ‘zabbix’ failed: [1045] Access denied for user ‘root’@’localhost’ (using password: NO)

解决:给localhost授权

mysql -uzabbix -p123456
GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'localhost' WITH GRANT OPTION ;
FLUSH PRIVILEGES;

四.设置开启自动启动

vim /etc/rc.d/rc.local  最后添加下面两行

/usr/local/zabbix/sbin/zabbix_server start
/usr/local/zabbix/sbin/zabbix_agentd start

至此,zabbix server端的安装完毕,我们可以通过浏览器来访问。如图:

windows zabbix安装部署_zabbix安装_03

接下来会介绍关于客户端监控的使用,以及监控模版的新建,自定义监控服务等。

更新:客户端安装可以查看http://blog.chinaunix.net/uid-25266990-id-3387002.html