Zabbix2.2.2源码安装部署排错以及MySQL数据库监控实例
Zabbix 开篇一直想写一个监控数据库性能(Oracle,MySQL,DB2,SqlServer)的软件, 但是它活在我的dream里.
本文详细介绍Zabbix源代码安装到部署,排错,以及一个简单MySQL数据库性能监控实例。
一、System Environments
服务端: 操作系统 - Fedora 19 x86_64 webServerType: LAMP(Apache+PHP+Mariadb) Zabbix Server Daemon
客户端: 操作系统 - Fedora 19 x86_64Zabbix Agentd Daemon
Zabbix 是C/S构架, zabbix agent负责收集客户端的系统性能, 转发给zabbix server, zabbix server 负责整理数据并存储到Maraidb数据库Repository; 并通过php展现给系统管理员.
注: 本实验的服务端跟客户端是统一台机器,standalone mode.
二、Zabbix installation from source code
假设我们已经安装好LAMP,从http://www.zabbix.com/download.php下载最新的Zabbix Sources Latest Releases 2.2.2.
有时候我们需要在没有网络的环境下部署zabbix,这个时候就不得不用源码去装,用源码来装往往有很多很多的坑,所以在此做下记录
部署MySQL 安装MySQL之前要先安装CMake
tar xvf cmake-2.6.4.tar.gzcdcmake-2.6.4./configure --prefix=/usr/local/cmakegmakemake install 更新环境变量
vi ~/.bash_profile#PATH=$PATH:$HOME/bin:/usr/local/cmake/binsource ~/.bash_profile 安装MySQL
tar -xvf mysql-5.6.12.tar.gz cd mysql-5.6.12cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_USER=kira \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_DATADIR=/usr/local/mysql/data \-DMYSQL_TCP_PORT=3306makemake installchmod -Rf 777 /usr/local/mysql/*chmod -Rf 777 /home/software/mysql-5.6.12cp /home/software/mysql-5.6.12/support-files/my-default.cnf /etc/my.cnf cd /home/software/mysql-5.6.12/scripts./mysql_install_db --user=root --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/groupadd mysqluseradd -r -g mysql mysql ##启动MySQL/usr/local/mysql/bin/mysqld_safe ##修改MySQL密码/usr/local/mysql/bin/mysqladmin -u root password '8565'ln -s /usr/local/mysql/bin/mysql /usr/sbin/mysql -uroot -p8565#GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '8565' WITH GRANT OPTION;#flush privileges;安装必须组件 安装libxml
tar zxvf libxml2-2.7.7.tar.gz cd libxml2-2.7.7./configure --prefix=/usr/local/libxml2makemake install安装zlib
tar -zxf zlib-1.2.5.tar.gz cd zlib-1.2.5 ./configuremake make install 安装jpeg
tar -xvf jpegsrc.v8c.tar.gz cd jpeg-8c/./configure --prefix=/usr/local/jpegmake make install 安装libpng
tar -xvf libpng-1.5.7.tar.gz cd libpng-1.5.7./configure --prefix=/usr/local/libpngmakemake install 安装freetype
tar -xvf freetype-2.4.8.tar.gzcd freetype-2.4.8./configure --prefix=/usr/local/freetypemake make install安装gettext
tar -xvf gettext-0.18.1.1.tar.gzcd gettext-0.18.1.1./configuremakemake installcp /usr/lib64/gettext/* /usr/lib64/(64位的系统才要)
安装gd
tar -xvf gd-2.0.35.tar.gz cd gd/2.0.35./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg \--with-png=/usr/local/libpng --with-freetype=/usr/local/freetype \--enable-m4_pattern_allowmakemake install
部署Apache 安装pcre
unzip pcre-8.10.zip cd pcre-8.10./configure --prefix=/usr/local/pcremake make install安装apr
tar -xvf apr-1.4.5.tar.gz cd apr-1.4.5./configure --prefix=/usr/local/aprmake make install安装apr-util
tar -xvf apr-util-1.3.12.tar.gz cd apr-util-1.3.12./configure --prefix=/usr/local/apr-util --with-apr=/home/software/apr-1.4.5make make install安装Apache
tar -xvf httpd-2.4.6cd httpd-2.4.6./configure --prefix=/usr/local/apache --enable-module=so --with-apr=/home/software/apr-1.4.5 --with-apr-util=/home/software/apr-util-1.3.12 --with-pcre=/usr/local/pcre/makemake install/usr/local/apache/bin/httpd -k start安装PHP 安装php
tar -xvf php-5.4.17.tar.gz cd php-5.4.17./configure --prefix=/usr/local/php\ --with-apxs2=/usr/local/apache/bin/apxs\ --with-jpeg-dir=/usr/local/jpeg\ --with-png-dir=/usr/local/libpng\ --with-libxml-dir=/usr/local/libxml2\ --with-gd=/usr/local/gd\ --with-freetype-dir=/usr/local/freetype\ --with-zlib=/usr/local/zlib --with-gettext\ --enable-bcmath --enable-ftp --enable-mbstring --enable-sockets\ --with-iconv-dir=/usr/lib --with-mysql=/usr/local/mysql -with-mysqli=/usr/local/mysql/bin/mysql_config makemake install修改php的配置文件
cp php.ini-production /usr/local/php/lib//php.inivi/usr/local/php/php.ini#date.timezone = Asia/shanghai#memory_limit = 256M#max_input_time = 600#max_execution_time = 600#post_max_size = 32M#upload_max_filesize = 16M开启Apache的PHP支持
vi /usr/local/apache/conf/httpd.conf#AddType application/x-httpd-php .php#DirectoryIndex index.html index.php/usr/local/apache/bin/httpd -k stop/usr/local/apache/bin/httpd -k start部署Zabbix 安装jabber
tar -xvf iksemel-1.4.tar.gz cd iksemel-1.4./configure --prefix=/usr/local/jabbermake make install安装Zabbix
tar -xvf zabbix-2.2.0rc2.tar.gz cd zabbix-2.2.0rc2./configure --prefix=/usr/local/zabbix \--enable-server --with-mysql=/usr/local/mysql/bin/mysql_config \--enable-agent --enable-ipv6 --with-net-snmp --with-jabber=/usr/local/jabber --with-libcurl启动zabbix server
cp /usr/local/mysql/lib/libmysqlclient.so.18 /usr/libcp /usr/local/jabber/lib/libiksemel.so.3 /usr/libgroupadd zabbixuseradd -g zabbix kirapasswd kirasu - kira/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf start启动zabbix页面
cp -Rf /home/software/zabbix-2.2.0rc2/frontends/ /usr/local/apache/htdocs/mv /usr/local/apache/htdocs/frontends/ /usr/local/apache/htdocs/zabbix
下面是用脚本安装:
最后按照PHP页面上的提示完成zabbix网站的配置即可
使用的rpm包+yum来安装zabbix2.2,安装以后可以直接使用uninstall来卸载
脚本测试是跑在没有安装httpd和mysql的机器上的,监控机器不会装其他的项目
如果mysql不在本地在远端,请自行修改config_mysql的配置
附:zabbix-agent端使用yum -y install zabbix-agent即可安装,163的yum源有这个包。不过好像都是6.X以上的。
uninstall 请慎用 并没有仔细去写remove,如需卸载请改成rpm -e方式。
#!/bin/bash
#encoding:utf8
function ins_pro() {
echo
echo "############################################################################"
echo "安装zabbix基本需求环境包----------------------------------------------------"
yum -y install gccnet-snmp-devel net-snmp net-snmp-utils OpenIPMI-devel curl-devel
echo "安装完成.-------------------------------------------------------------------"
echo "############################################################################"
echo
}
function ins_mysql() {
echo
echo "############################################################################"
echo "开始安装mysql数据库---------------------------------------------------------"
yum -y install mysql mysql-server mysql-devel
echo "mysql数据库安装完成。-------------------------------------------------------"
echo "############################################################################"
echo
}
function ins_httpd() {
echo
echo "############################################################################"
echo "开始安装httpd.--------------------------------------------------------------"
yum -y install httpd
echo "httpd安装完成.--------------------------------------------------------------"
echo "############################################################################"
echo
}
function ins_php() {
echo
echo "############################################################################"
echo "开始安装php环境包-----------------------------------------------------------"
yum -y installphp php-mysql php-gd php-bcmath php-xml php-mbstring php-snmp
echo "php安装完成。---------------------------------------------------------------"
echo "############################################################################"
echo
}
function ins_zabbix() {
echo
echo "############################################################################"
echo "开始安装zabbix--------------------------------------------------------------"
rpm -ivh http://repo.zabbix.com/zabbix/2. ... .2-1.el6.noarch.rpm
yum -y install zabbix-server-mysql zabbix-web-mysql
echo "安装完成--------------------------------------------------------------------"
echo "############################################################################"
echo
}
function config_zabbix(){
echo
echo "#######################################################################"
echo "添加/etc/services记录--------------------------------------------------"
cat >> /etc/services << "EOF"
zabbix-agent 10050/tcp Zabbix Agent
zabbix-agent 10050/udp Zabbix Agent
zabbix-trapper 10051/tcp Zabbix Trapper
zabbix-trapper 10051/udp Zabbix Trapper
EOF
sed -i 's/# DBPassword=/DBPassword=zabbix/' /etc/zabbix/zabbix_server.conf
echo "添加完成---------------------------------------------------------------"
echo "#######################################################################"
echo
}
function config_mysql() {
echo
echo "#######################################################################"
echo "开始配置mysql 数据库---------------------------------------------------"
cd /usr/share/doc/zabbix-server-mysql-2.2.0/create
mysql -uroot<<EOF
create database zabbix character set utf8;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
use zabbix;
source schema.sql;
source images.sql;
source data.sql;
EOF
cd
echo "数据库配置完成--------------------------------------------------------"
echo "######################################################################"
}
function config_php() {
echo
echo "#######################################################################"
echo "开始配置PHP.-----------------------------------------------------------"
sed -i 's/post_max_size = 8M/post_max_size = 32M/g' /etc/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /etc/php.ini
sed -i 's/;date.timezone =/date.timezone =PRC/' /etc/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 600/g' /etc/php.ini
sed -i 's/max_input_time = 60/max_input_time = 600/g' /etc/php.ini
sed -i 's/memory_limit = 128M/memory_limit = 256M/g' /etc/php.ini
echo
echo "PHP配置完成.-----------------------------------------------------------"
echo "#######################################################################"
}
function config_httpd() {
echo
echo "#######################################################################"
echo "开始配置httpd----------------------------------------------------------"
\cp -r /usr/share/zabbix/* /var/www/html/
echo "" > /etc/zabbix/web/zabbix.conf.php
cat >> /etc/zabbix/web/zabbix.conf.php << "EOF"
<?php
// Zabbix GUI configuration file
global $DB;
$DB["TYPE"] = 'MYSQL';
$DB["SERVER"] = 'localhost';
$DB["PORT"] = '0';
$DB["DATABASE"] = 'zabbix';
$DB["USER"] = 'zabbix';
$DB["PASSWORD"] = 'zabbix';
// SCHEMA is relevant only for IBM_DB2 database
$DB["SCHEMA"] = '';
$ZBX_SERVER = 'localhost';
$ZBX_SERVER_PORT= '10051';
$ZBX_SERVER_NAME= '';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
?>
EOF
echo "#######################################################################"
echo "httpd配置完成----------------------------------------------------------"
}
function remove() {
echo
echo "########################################################################"
echo "卸载安装的包-----------------------------------------------------------"
yum -y removenet-snmp-devel net-snmp net-snmp-utils OpenIPMI-devel curl-devel mysql mysql-server mysql-devel php php-mysql php-gd php-bcmath php-xml php-mbstring php-snmp httpd
echo "卸载完成---------------------------------------------------------------"
echo
echo "########################################################################"
echo "删除httpd配置文件------------------------------------------------------"
if [ -d /var/www/html ];
then
/etc/init.d/httpd stop
\cp -r /var/www/html /tmp/html
rm -rf /var/www/html/*
sed -i 's/date.timezone =PRC/;date.timezone =/' /etc/php.ini
echo "http配置文件已删除---------------------------------------------"
fi
echo "删除完成---------------------------------------------------------------"
echo "########################################################################"
echo
echo "########################################################################"
echo "准备删除数据库文件----------------------------------------------------------"
if[ -d /var/lib/mysql ];
then
/etc/init.d/mysqld stop
\cp -r /var/lib/mysql /tmp/mysql
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf
echo "数据库文件已删除------------------------------------------------"
fi
echo "########################################################################"
echo
echo "########################################################################"
echo "准备删除zabbix----------------------------------------------------------"
if [ -d /etc/zabbix ]
then
/etc/init.d/zabbix stop
rm -rf /etc/zabbix
echo "zabbix已经删除--------------------------------------------------"
fi
}
function start_services() {
echo
echo "#######################################################################"
echo "启动httpd服务"
/etc/init.d/httpd start
echo "#######################################################################"
echo "启动MYSQL数据库"
/etc/init.d/mysqld start
echo "#######################################################################"
echo "启动zabbix服务"
/etc/init.d/zabbix-server start
echo
echo "访问方法:http://localhost 或者:http://ip ------------------------------"
}
case "$1" in
install)
ins_pro
ins_mysql
ins_httpd
ins_php
ins_zabbix
start_services
config_zabbix
config_mysql
config_php
config_httpd
;;
mysql)
config_mysql
;;
uninstall)
remove
;;
start)
start_services
;;
*)
echo "Usage:$0 {install|mysql|uninstall|start}"
;;
esac
网上很多的,一搜一大把
页:
[1]