实战企业Zabbix监控系统
在使用Zabbix监控主机的CPU、内存、磁盘和网络接口等信息前,我们需要先部署企业中的第一个Zabbix监控主机。本文主要介绍如何在RHEL6.7上部署一个Zabbix监控系统。
Part.1 Zabbix系统部署要求
Zabbix监控系统的运行条件,可以是运行Linux、IBM AIX、FreeBSD、NetBSD、OpenBSD、HP-UX、Mac OS X和Solaris操作系统的机器,并且需要C语言编译器。
Zabbix系统的Web GUI依赖于LAMP或者LNMP环境之上,其中本文使用的是zabbix2.4.6版本,其中MySQL版本最低要求5.0.3及以后,并且使用InnoDB存储引擎,其它依赖软件如下:
从上表中,我们下载满足条件的Apache、MySQL和PHP等软件,准备开始部署zabiix系统前的准备工作。
Part.2 Zabbix Server的基本配置
在正式安装Zabbix之前,我们需要做一些基本的准备工作如下:
1
关闭selinux和iptables
2
设置IP地址、子网掩码等网络信息
3
设置主机名和hosts文件
4
配置一个本地或网络的yum下载源
5
安装c语言和C++的开发环境(gcc、gcc-c++、automake、autoconf)
按照如上步骤,逐步完成Zabbix部署前的准备工作,由于准备工作比较基础,这里不再逐步说明。
Part.3 源码部署LAMP环境
Zabbix 最为重要的步骤是部署一个LAMP环境,这是运行zabbix所必须的。具体步骤如下:
安装Apache的依赖包apr、apr-util和pcre
下载apr软件包后,执行如下命令安装apr
# tar -zxf apr-1.5.2.tar.gz
# cd apr-1.5.2
# ./configure –prefix=/usr/local/apr
# make && make install
下载apr-util软件包后,执行如下命令安装apr-util
# tar -zxf apr-util-1.5.4.tar.gz
# cd apr-util-1.5.4
# ./configure –prefix=/usr/local/apr-util -with-apr=/usr/local/apr
# make && make install
下载pcre软件包后,执行如下命令安装
# tar -zxf pcre-8.37.tar.gz
# cd pcre-8.37
# ./configure –prefix=/usr/local/pcre
# make && make install
如果在安装过程中,遇到错误,请按照系统的错误提示解决,完成成以上步骤,Apache所依赖的apr、apr-util和pcre就安装完成了。
安装Apache软件包
Apache 是模块化的服务器,核心服务器中只包含了功能最常用的模块,而扩展功能由其他模块提供。设置过程中,你必须指定需要包含的模块。Apache 文档中有模块清单备查,其中状态为"Base"的模块会被默认地包含进核心服务器,如果不需要包含某个模块(比如mod_userdir),则必须明确地禁用它;其他状态的模块(比如mod_expires),也必须明确启用以使之包含进核心服务器。
一般情况下,核心模块功能我们全部启用;除此之外,我们为了使搜索引擎更容易收录我们的网页,需要将动态页面的URL 重写为静态页面的URL,需要mod_rewrite;为了今后动态添加模块而不重新编译apache(例如添加PHP 的支持),需要启用mod_so。
下载Apache软件包后,执行如下命令安装
# tar -zxf httpd-2.4.16.tar.gz
# cd httpd-2.4.16
# ./configure –prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-so --enable-rewrite --enable-mime-magic --enable-mem-cache
# make && make install
Part.4 安装MySQL数据库
安装cmake
下载cmake软件后,执行如下命令安装cmake,用于安装MySQL
# tar -zxf cmake-3.0.2.tar.gz
# cd cmake
# ./configure
# make && make install
安装MySQL
下载MySQL软件后,执行如下命令安装MySQL
# tar -zxf mysql-5.6.21.tar.gz
# cd mysql-5.6.21
# useradd -Mrs /sbin/nologin mysql
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
# make && make install
# cd /usr/local/mysql
# chown -R mysql .
# chgrp -R mysql .
# ./scripts/mysql_install_db --user=mysql
# chown -R root .
# chown -R mysql data
# bin/mysqld_safe --user=mysql &
# cp mysql-5.6.21/support-files/mysql.server /etc/init.d/mysql.server
Part.5 安装PHP
PHP 是一种嵌入在 HTML 并由服务器解释的脚本语言。它支持许多流行的数据库,包括 MySQL、PostgreSQL、Oracle、Sybase、Informix 和 Microsoft SQL Server。
要使PHP 支持相关的功能那么在安装前需要安装相应的软件,例如要使PHP支持MySQL 数据库,在编译PHP之前,必须首先安装MySQL 数据库。
在安装完Apache 和MySQL 后,可以开始安装PHP 了。安装PHP 的步骤如下:
安装GD库依赖软件包
下载zlib,执行如下命令安装
# tar -zxf zlib-1.2.8.tar.gz
# cd zlib-1.2.8
# ./configure --prefix=/usr/local/zlib
# make && make install
下载libpng,执行如下命令安装
# tar -zxf libpng-1.5.22.tar.gz
# cd libpng-1.5.22
# ./configure --prefix=/usr/local/libpng --enable-shared
# make && make install
下载jpeg,执行如下命令安装
# tar -zxf jpegsrc.v9a.tar.gz
# cd jpeg-9a/
# ./configure --prefix=/usr/local/jpeg
# make && make install
下载freetype,执行如下命令安装
# tar -zxf freetype-2.6.tar.gz
# cd freetype-2.6
# ./configure --prefix=/usr/local/freetype
# make && make install
下载libXpm,执行如下命令安装
# tar -zxf libXpm-3.5.11.tar.gz
# cd libXpm-3.5.11
# ./configure --prefix=/usr/local/libxpm
# make && make install
安装GD库
下载GD,执行如下命令安装
# tar -zxf libgd-2.1.1.tar.gz
# cd libgd-2.1.1
# ./configure --prefix=/usr/local/gd --with-zlib=/usr/local/zlib --with-png=/usr/local/libpng --with-jpeg=/usr/local/jpeg --with-freetype=/usr/local/freetype --with-xpm=/usr/local/libxpm
# make && make install
安装PHP依赖软件包
下载libxml2,执行如下命令安装
# yum install python-devel -y
# tar -zxf libxml2-2.9.2.tar.gz
# cd libxml2-2.9.2
# ./configure make && make install
下载libiconv,执行如下命令安装
# tar -zxf libiconv-1.14.tar.gz
# cd libiconv-1.14
# ./configure --prefix=/usr/local/libiconv
# make && make install
下载libmcrypt,执行如下命令安装
# tar -zxf libmcrypt-2.5.7.tar.gz
# cd libmcrypt-2.5.7
# ./configure --prefix=/usr/local/libmcrypt
# make && make install
安装PHP软件包
刚才已经提到,打算使用MySQL 来存储数据,因此必须要指名支持MySQL 数据(--with-mysql),并指名MySQL 数据的安装位置;如果需要处理XML 数据,需要 --wiht-xml 和 –with-dom; 如果需要使用PHP 脚本来生成图片, 需要使用--with-gd。总之如果需要使用的功能的库文件不在系统路径内,必须要明确支持,如果不明确支持,那么配置脚本自动进行处理。集体需要使用什么功能,这取决于站点的PHP 脚本使用的函数。
下载PHP,执行如下命令安装
# ln -s /usr/local/libxpm/include/X11/xpm.h /usr/include/X11/xpm.h
# tar -zxf php-5.6.4.tar.gz
# cd php-5.6.4
# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-gd=/usr/local/gd --with-zlib --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/local/libxpm --with-iconv=/usr/local/libiconv --with-mcrypt=/usr/local/libmcrypt --enable-mbstring --enable-bcmath --enable-sockets --with-mysql=/usr/local/mysql --with-mysqli --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-gettext
# make && make install
Part.6 配置Apache
在Apache配置文件httpd.conf中增加如下行,让Apache支持PHP。
... ...
AddType application/x-httpd-php .php
... ...
在Apache的网站主目录/usr/local/apache/htdoc下,创建一个测试文件,文件名称自定义,例如:phpinfo.php;编辑phpinfo.php测试页,内容如下:
phpinfo();
?>
利用该测试页,可以测试Apache是否支持PHP,同时可以通过输出结果查看是否支持MySQL。
启动Apache服务进行测试
# /usr/local/apache2/bin/apachectl start
在浏览器中访问刚才的页面,例如:http://localhost/phpinfo.php
如果成功返回php 的相关信息,说明安装成功。
Part.7 源码安装abbix
安装Zabbix Server依赖包
为了支持SNMP,需要net-snmp软件,执行如下命令安装:
# yum install net-snmp net-snmp-devel curl curl-devel
源码安装Zabbix Server
准备工作完成后,可以正式开始安装Zabbix,执行如下步骤完成Zabbix的安装:
1
创建Zabbix的用户和组
# groupadd zabbix
# useradd -g zabbix -s /sbin/nologin zabbix
2
在MySQL数据库中创建zabbix用户账号并授权
1
创建MySQL账号语法:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
其中:
• username :你将创建的用户名
• host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%
•password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。
2
授权语法:
GRANT privilegesON databasename.tablename TO 'username'@'host'
其中:
•privileges - 用户的操作权限,如SELECT ,INSERT , UPDATE 等.如果要授予所的权限则使用ALL
• databasename - 数据库名
• tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*
下面是创建zabbix账号,密码为zabbix的范例:
mysql>create user 'zabbix'@'localhost' identified by 'zabbix';
mysql>grant all privileges on zabbix.* to zabbix@'localhost'
3
在MySQL数据库中创建Zabbix数据库
mysql> create database zabbix character set utf8;
4
导入数据库的sql脚本
# tar -zxf zabbix-2.4.6.tar.gz
# cd zabbix-2.4.6
# mysql -uzabbix -pzabbix zabbix
# mysql -uzabbix -pzabbix zabbix
# mysql -uzabbix -pzabbix zabbix
5
Zabbix的编译安装
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --enable-proxy
# make
# make install
Part.8 配置Zabbix服务
1
添加配置文件到/etc目录下
# ln -s /usr/local/zabbix/etc/ /etc/zabbix
2
修改ZabbixServer配置文件zabbix_server.conf,在文件尾添加如下内容:
LogFile=/tmp/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户账户
DBPassword=zabbix #指定zabbix数据库密码
ListenIP=0.0.0.0 #服务器IP地址
3
修改ZabbixAgentd配置文件zabbix_agentd.conf,在文件尾添加如下内容:
LogFile=/tmp/zabbix_agentd.log #日志保存位置
PidFile=/tmp/zabbix_agentd.pid #进程PID
EnableRemoteCommands=1 #允许执行远程命令
Server=10.1.1.119 #agent端的ip
Hostname=localhost #必须与zabbix创建的host name相同
4
为Web前端,添加php文件
# cp -rf php /usr/local/apache2/htdocs/zabbix
# chown -R zabbix.zabbix zabbix
5
为Web前端修改php相关参数,编辑/etc/php.ini配置文件,找到如下几项,修改结果如下:
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
post_max_size = 32M
memory_limit = 128M
mbstring.func_overload = 0
always_populate_raw_post_data = -1
说明:找到以上几项,如果有;号的请删除掉,然后修改为以上值
6
重启Apache服务,使得修改生效
# /usr/local/apache2/bin/apachectl restart
7
开始配置Web前端:
• 在浏览器中访问Zabbix Server的地址,例如:http://10.1.1.119/zabbix
• 在“欢迎界面”单击“next”
• 在“Check ofpre-requisites”界面,确保所有项目全部显示“ok”,单击“next”
• 在“Configure DB connection”界面,输入MySQL中用于连接Zabbix数据库的用户名和密码
• 在“Zabbix server details”界面,输入Zabbix Server端的主机名或IP地址
• 在“Pre-Installationsummary”界面,单击“next”
• 在“Install”界面,按照提示将配置文件下载到/usr/local/apache/htdoc/zabbix/conf下,名称为zabbix.conf.php,注意文件权限为zabbix,完成后运行“Retry”点击“完成”
至此,Zabbix的安装已经完成,接下来启动Zabbix Server的服务。
Part.9 启动Zabbix服务
1
可以直接执行/usr/local/zabbix/sbin/下的zabbix_server和agentd程序文件
# /usr/local/zabbix/sbin/zabbix_server
# /usr/local/zabbix/sbin/zabbix_agentd
2
为了方便Zabbix Server和Agent的服务的启动和关闭,复制启动脚本
# cp ./misc/init.d/fedora/core/zabbix_server /etc/init.d/
# cp ./misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
3
将zabbix_server和agentd和启动脚本文件中的BASEDIR的值修改为
BASEDIR=/usr/local/zabbix
4
设置ZabbixServer和Agentd开机自动启动
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
5
最后使用http://ZabbixIP/zabbix访问,默认的用户名admin和密码为zabbix登录验证:
如果输入用户名密码后,到此,整个Zabbix部署完成。就可以开启你使用Zabbix监控资源之旅啦!
领取专属 10元无门槛券
私享最新 技术干货