zabbix(音同 zæ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的工作环境,需要从服务器入手。与服务器通信,管理员需要使用一个Zabbix前端界面,与Zabbix服务器和数据库进行通信。三个关键(界面、服务器和数据库)可以安装在同一台服务器上,但是如果你拥有一个更大更复杂的环境,将它们安装在不同的主机上也是一个选项。Zabbix服务器能够直接监控到同一网络中的设备,如果其他网络的设备也需要被监控,那还需要一台Zabbix代理服务器。
zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
等等
Zabbix主要功能:
- CPU负荷
- 内存使用
-磁盘使用
- 网络状况
- 端口监视
- 日志监视。
安装前准备
1.将不必要编译的软件安装的机器上
yum install -y beecrypt beecrypt-devel curl curl-devel freetype freetypr-devel fontconfig fontconfig-devel gettext gettext-devel ImageMagick ImageMagick-devel mingw32-iconv.noarch libmcrypt libmcrypt-devel libpng libpng-devel libxml2 libxml-devel libxslt libxslt-devel mhash mhash-devel mcrypt zlib zlib-devel gd gd-devel libjpeg libjpeg-devel gcc gcc-c++ ncurses-devel
2.下载需要编译的软件包
包名称 | 下载地址 |
Mysql5.6.5-M8 | http://downloads.mysql.com/archives/get/file/mysql-5.6.5-m8.tar.gz |
cmake-2.8.8 | http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz |
php-5.4.29 | http://cn2.php.net/get/php-5.4.29.tar.gz/from/this/mirror |
libiconv-1.14 | https://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz |
jdk-6u45 | http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin |
nginx-1.2.9 | http://nginx.org/download/nginx-1.2.9.tar.gz |
iksemel-1.4 | http://iksemel.googlecode.com/files/iksemel-1.4.tar.gz |
libssh2-1.4.3 | http://libssh2.org/download/libssh2-1.4.3.tar.gz |
fping-2.4b2_to | http://download.chinaunix.net/down.php?id=6038&ResourceID=3222&site=1 |
OpenIPMI-2.0.21 | https://jaist.dl.sourceforge.net/project/openipmi/OpenIPMI%202.0%20Library/OpenIPMI-2.0.21.tar.gz |
Zabbix-2.0.21 | https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.21/zabbix-2.0.21.tar.gz |
LNMP环境安装
1.安装cmake软件包
安装cmake所需要的软件gcc gcc-c++ ncurses-devel
tar -zxvf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./bootstrap
gmake
gmake install
2.安装Mysql
tar -zxvf mysql-5.6.5-m8.tar.gz
cd mysql-5.6.5-m8
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DWITH_INNODB_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
make
make install
useradd -s /sbin/nologin mysql
cd /usr/local/mysql
cp support-files/my-large.cnf /etc/my.cnf
mkdir -p data/mysql/data
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cp support-files/mysql.server /etc/init.d/
chkconfig --add mysql.server
systemctl start mysql.server
echo "PATH=$path:/usr/local/mysql/bin">>/etc/profile
3.安装PHP
需要安装软件libiconv,作用是转换语言编码
cd libiconv-1.14/
./configure --prefix=/usr/local/
进入srclib目录 执行 sed -i -e '/gets is a security/d' ./stdio.in.h
make &&make install
ldconfig
tar -zxvf php-5.4.29
cd /usr/local/src/php-5.4.29
执行编译配置可能会提醒openssl,ldap无安装,执行如下语句:
#yum install openssl.x86_64 openssl-devel.x86_64 -y
#yum install openldap openldap-server openldap-clients openldap-devel
#cp -frp /usr/lib64/libldap* /usr/lib/
#安装libmcrypt
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz
#解压
tar -zxvf libmcrypt-2.5.7.tar.gz
#进入目录
cd libmcrypt-2.5.7
#编译(默认安装到/usr/local/lib/)
./configure --prefix=/usr/local/libmcrypt
#执行安装
make && make install
#安装libiconv-devel
1、 安装epol源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
2、安装libmcrypt
[root@A tools]# yum install libmcrypt-devel -y
3、检查
[root@A tools]# rpm -qa libmcrypt-devel
libmcrypt-devel-2.5.8-9.el6.x86_64
编译PHP
./configure --prefix=/usr/local/php --disable-debug --disable-ipv6 \
--disable-rpath --enable-bcmath --enable-exif \
--enable-gd-native-ttf -enable-mbregex --enable-mbstring=all --enable-pcntl \
--enable-shmop --enable-soap --enable-sockets \
--enable-xml --with-config-file-path=/usr/local/php/etc \
--with-curl --with-curlwrappers --with-freetype-dir --with-gd --with-gettext \
--with-iconv-dir=/usr/local/bin/iconv --with-jpeg-dir --with-ldap \
--with-ldap-sasl --with-libdir=lib --with-libxml-dir=/usr/ \
--with-mcrypt=/usr/local/libmcrypt \
--with-mhash --with-openssl --with-pdo-mysql --with-pear --with-png-dir \
--with-xmlrpc --with-zlib-dir --with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-mysql=/usr/local/mysql --enable-fpm
./configure后
编辑MakeFile
找到 开头是 'EXTRA_LIBS' 这一行 在结尾加上 '-llber' 然后执行 make && make install
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-production /usr/local/php
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
4.安装Nginx
tar -zxvf nginx-1.2.9.tar.gz
cd nginx-1.2.9/
yum install perl perl-devel perl-ExtUtils-Embed 安装依赖软件
./configure --prefix=/usr/local/nginx --user=nobody --group=nobody \
--with-poll_module --with-http_ssl_module --with-http_sub_module \
--with-http_perl_module --with-mail --with-pcre --with-ld-opt="-Wl,-E"
make
make install
5.启停服务
/usr/local/php/sbin/php-fpm #启动php的fpm
killall php-fpm #关闭php的fpm
/usr/local/nginx/sbin/nginx #开启nginx
/usr/local/nginx/sbin/nginx -s stop #关闭nginx
安装Zabbix
1.安装JDK软件
chmod +x jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
mv jdk1.6.0_45/ /usr/local/
echo JAVA_HOME=/usr/local/jdk>>/etc/profile
echo PATH=\$PATH:/usr/local/jdk/bin>>/etc/profile
echo export JAVA_HOME>>/etc/profile
echo export PATH>>/etc/profile
source /etc/profile
2.安装iksemel软件包
iksemel用于Zabbix系统通过Jabber方式发送报警信息的软件包,此软件一般可以不安装
tar -zxvf iksemel-1.4.tar.gz -C /usr/local/src/
cd iksemel-1.4
./configure --prefix=/usr/local/iksemel
make && make install
3.安装libssh2软件包
libssh2用于Zabbix系统通过SSH协议采集监控数据所必须的安装包
tar -zxvf libssh2-1.4.3.tar.gz
cd libssh2-1.4.3
./configure
make && make install
4.安装OpenIPMI软件包
OpenIPMI是让Zabbix系统通过IPMI采集监控数据所必须安装的软件包
yum install -y popt-devel 安装软件依赖包
tar -zxvf OpenIPMI-2.0.21.tar.gz
cd OpenIPMI-2.0.21
./configure
make && make install
5.几个重要的Zabbix编译选项
--prefix=DIR 指定Zabbix安装路径
--enable-static 使用静态方法编译Zabbix,执行效率高
--enable-server 开启服务器组件
--enable-porxy 开启服务器代理组件,分担Zabbix服务器压力
--enable-agent 开启被监控设备代理组件
--enable-java 开启java网关组件
--with-mysql 开启支持mysql组件
--with-jabber 指定iksemel路径,通过Jabber方式发送报警信息
6.准备数据库
/usr/local/mysql/bin/mysql -u root -p 连接到数据库
create database zabbix default character set=utf8;创建zabbix数据库
insert into mysql.user(Host,User,Password) values('localhost','zabbix',password('zabbix')); #新建账户zabbix,密码zabbix
flush privileges; #刷新系统授权表
grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix' with grant option; #允许账户zabbix能从本机连接到数据库zabbix
flush privileges; #再次刷新系统授权表
tar -zxvf zabbix-2.0.21.tar.gz -C /usr/local/src/
mysql -u zabbix -p zabbix< /usr/local/src/zabbix-2.0.21/database/mysql/schema.sql
mysql -u zabbix -p zabbix < /usr/local/src/zabbix-2.0.21/database/mysql/images.sql
mysql -u zabbix -p zabbix < /usr/local/src/zabbix-2.0.21/database/mysql/data.sql
7.安装unixODBC及数据库驱动软件
yum install -y unixODBC unixODBC-devel mysql-connector-odbc
8.安装Zabbix软件包
创建zabbix用户
- groupadd zabbix
- useradd -g zabbix zabbix
编译安装zabbix组件
- yum install -y net-snmp net-snmp-devel 依赖软件安装
- ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-jabber=/usr/local/iksemel --with-net-snmp --with-libcurl --with-ssh2 --with-openipmi --with-unixodbc=/usr/bin/odbc_config
- make
- make install
修改配置文件
vim zabbix_server.conf在zabbix安装目录etc/下
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=centos
配置启动脚本
cp /usr/local/src/zabbix-2.0.21/misc/init.d/fedora/core5/zabbix_server /etc/init.d/
cp /usr/local/src/zabbix-2.0.21/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
systemctl start zabbix_server start 启动zabbix服务器组件
systemctl stop zabbix_agentd start 启动被监控设备代理组
9.编译安装fping工具包
fping4.0下载http://www.fping.org/dist/fping-4.0.tar.gz
tar -zxvf fping-4.0.tar.gz -C /usr/local/src/
cd fping-4.0/
./configure
make
make install
部署Web前端组件
1.配置虚拟主机
编辑nginx/conf下nginx.conf文件
server {
listen 80;
server_name zabbix;
access_log off;
charset utf8;
autoindex off;
autoindex_exact_size off;
autoindex_localtime on;
location / {
index index.html index.htm index.php;
root /www/zabbix;
}
location ~ \.php {
include fastcgi_params;
fastcgi_param SERVER_NAME $server_addr;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
/usr/local/nginx/sbin/nginx -s reload 重启nginx环境
killall php-fpm 关闭所有php-fpm进程
/usr/local/php/sbin/php-fpm 启动php-fpm进程
复制PHP文件
mkdir -p /www/zabbix
在zabbix源码包frontends/php复制站点内程序到站点目录
cp -Rpfv frontends/php/* /www/zabbix
chown -R nobody:nobody /www/zabbix/ 修改站点权限
3.修改PHP配置
打开http://hostname
修改php.ini文件如上图要求
配置项名称 | 最低要求配置 | 配置方法 |
PHP版本 | 5.3.0 | |
时区设置 | 不能为空 | 修改date.timezone = Asia/Shanghai |
内存限制 | 128MB | memory_limit = 128M |
最大提交数据大小 | 16MB | post_max_size=16M |
最大上传文件大小 | 2MB | upload_max_filesize = 2M |
最大执行时间 | 300秒 | max_execution_time = 300 |
最大输入时间 | 300秒 | max_input_time = 300 |
自动开启session | 禁止 | session.auto_start = 0 |
端口默认为10051
安装完成后系统会引导登录,默认用户为admin,密码为zabbix