您的位置:首页 > 其它

zabbix 3.0 安装

2016-04-19 17:34 204 查看

zabbix-server安装

参考文档:https://www.suseyh.com/

基础环境:
Nginx:1.9.7
Mysql:5.5.32
PHP:5.5.30( zabbix_3.0 要求php版本至少在5.4以上 )


nginx安装

#创建nginx用户和组
> useradd nginx -s /sbin/nologin
#安装PCRE以及OPENSSL
> yum install -y pcre-devel openssl-devel openssl
#下载Nginx
wget http://nginx.org/download/nginx-1.9.10.tar.gz tar -xvf nginx-1.9.10.tar.gz
cd nginx-1.9.10#编译安装Nginx
./configure  \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--with-http_stub_status_module  \
--with-http_ssl_module
make && make install


启动脚本

vi /etc/init.d/nginx
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
#   proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
killall -9 nginx
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
# chmod +x /etc/init.d/nginx


编辑配置文件

# cat /usr/local/nginx/conf/nginx.conf
worker_processes  1;
events {
worker_connections  1024;
}
http {
include       mime.types;
include          vhost/*.conf;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
server {
listen       80;
server_name  localhost;
location / {
root   html;
index  index.php index.html index.htm;
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
location ~ \.(php|php5)?$ {
root           /usr/local/nginx/html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
# fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
include        fastcgi_params;
}
}
}
#由于包含了vhost目录,需要单独创建
mkdir /usr/local/nginx/conf/vhost


安装mysql

#安装mysql编译环境
yum -y install make gcc-c++ cmake bison-devel  ncurses-devel
#创建mysql用户和组
useradd mysql -s /sbin/nologin -M
#下载mysql源码包
wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.27.tar.gz tar -xvf mysql-5.6.27.tar.gz
cd mysql-5.6.27
#编译安装
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install
#修改mysql目录权限
chown -R mysql:mysql /usr/local/mysql
#初始化mysql
cd /usr/local/mysql
./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
#复制启动脚本
cp support-files/mysql.server /etc/init.d/mysqld
service mysqld start
chkconfig --add mysqld
chkconfig mysqld on
#设置mysql环境变量
vi /etc/profile
#末尾添加
PATH=/usr/local/mysql/bin:$PATH
export PATH
#保存退出,执行
source /etc/profile
#此时数据库仍然没有设置root密码,下面开始设置root密码
mysql -uroot
mysql> SET PASSWORD = PASSWORD('yourpassword');
#至此,mysql安装完毕


!!!> ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/

安装PHP

#安装需要的环境
yum -y install zlib-devel libxml2-devel libjpeg-devel libiconv-devel freetype-devel libpng-devel gd-devel curl-devel libxslt-devel libmcrypt-devel mhash mcrypt
#安装libiconv
wget http://www.suseyh.com/download/libiconv-1.14.tar.gz tar -xvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
#下载php
wget http://cn2.php.net/distributions/php-5.5.31.tar.gz tar -xvf php-5.5.31.tar.gz
cd php-5.5.31
./configure \
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql/ \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--with-gettext \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp \
--enable-opcache=no
make && make install
#复制配置文件
cp php.ini-production /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf


* 添加php-fpm启动脚本

vi /etc/init.d/php-fpm
#! /bin/sh
### BEGIN INIT INFO
# Provides:          php-fpm
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO
prefix=/usr/local/php
exec_prefix=${prefix}
php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"
wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN --daemonize $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-quit"
exit 1
else
echo " done"
fi
;;
status)
if [ ! -r $php_fpm_PID ] ; then
echo "php-fpm is stopped"
exit 0
fi
PID=`cat $php_fpm_PID`
if ps -p $PID | grep -q $PID; then
echo "php-fpm (pid $PID) is running..."
else
echo "php-fpm dead but pid file exists"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
configtest)
$php_fpm_BIN -t
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"
exit 1
;;
esac
#赋予执行权限
chmod +x /etc/init.d/php-fpm
#启动php-fpm
service php-fpm start


安装zabbix

#添加zabbix用户和组
groupadd zabbix && useradd -g zabbix zabbix
#添加链接
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
#安装必须环境
yum install net-snmp-devel -y
#下载zabbix3.0
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Release%20Candidates/3.0.0rc1/zabbix-3.0.0rc1.tar.gz tar -xvf zabbix-3.0.0rc1.tar.gz
cd zabbix-3.0.0rc1
#编译安装zabbix
./configure \
--enable-server \
--enable-agent \
--with-mysql \
--enable-ipv6 \
--with-net-snmp \
--with-libcurl \
--with-libxml2
make && make install
#创建zabbix数据库
mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'your password';
mysql> flush privileges;
mysql> quit;
#导入数据库
mysql> use zabbix
mysql> source /root/zabbix-3.0.0rc1/database/mysql/schema.sql
mysql> source /root/zabbix-3.0.0rc1/database/mysql/images.sql
mysql> source /root/zabbix-3.0.0rc1/database/mysql/data.sql
mysql> quit;
#修改数据库连接文件
vi /usr/local/etc/zabbix_server.conf
#数据库名称
DBName=zabbix
#数据库用户名
DBUser=zabbix
#数据库密码
DBPassword=yourpassword
#数据库ip地址
ListenIP=localhost
#zabbix运行脚本存放目录
AlertScriptsPath=/usr/local/zabbix/alertscripts
:wq
chown -R zabbix.zabbix /usr/local/zabbix/
#复制启动脚本
cp /root/zabbix-3.0.0rc1/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server
cp /root/zabbix-3.0.0rc1/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
#启动zabbix
service zabbix_server start
#查看10051端口是否监听
netstat -ntl


安装zabbix web

#修改php.ini配置
vi /usr/local/php/lib/php.ini
post_max_size 16M
max_execution_time 300
max_input_time 300
date.timezone=Asia/Shanghai
#重启php-fpm
service php-fpm restart
#复制zabbix web程序
cd /root/zabbix-3.0.0rc1/frontends/php
cp -rf ./* /home/wwwroot/zabbix/
chown -R nginx.nginx /home/wwwroot/zabbix/
#创建zabbix站点
vi /usr/local/nginx/conf/vhost/zabbix.conf
server{
listen 80;
server_name zabbix.suseyh.cn;
access_log /home/wwwlogs/zabbix.suseyh.cn_nginx.log combined;
index index.html index.htm index.php;
root /home/wwwroot/zabbix;
location ~ [^/]\.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
:wq

# service nginx restart


zabbix_agent 安装

#安装环境
System  Zabbix
Centos6.5 X86_64    zabbix3.0.0RC1
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Release%20Candidates/3.0.0rc1/zabbix-3.0.0rc1.tar.gz tar -xvf zabbix-3.0.0rc1.tar.gz
cd zabbix-3.0.0rc1
ln -s /usr/local/lib/libiconv.so.2  /usr/lib/libiconv.so.2
ldconfig
#添加zabbix用户
useradd zabbix
./configure --prefix=/usr/local/zabbix --enable-agent
make && make install
#添加系统软连接
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
#添加zabbix服务对应端口
echo 'zabbix-agent 10050/tcp #Zabbix Agent' >> /etc/services
echo 'zabbix-agent 10050/udp #Zabbix Agent' >> /etc/services
echo 'zabbix-trapper 10051/tcp #Zabbix trapper' >> /etc/services
echo 'zabbix-trapper 10051/udp #Zabbix trapper' >> /etc/services
#修改配置文件
vi /usr/local/zabbix/etc/zabbix_agentd.conf
Server = Your zabbix server IP
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1
:wq
#添加开机启动脚本
cp ./misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
#修改配置
vi /etc/rc.d/init.d/zabbix_agentd
#修改为zabbix安装目录
BASEDIR=/usr/local/zabbix/
#设置开机启动
chkconfig zabbix_agentd on
#启动zabbix_agentd服务
service zabbix_agentd start
#查看10050端口是否监听
netstat -ntl


zabbix_proxy安装

#编译安装
yum install net-snmp-devel curl-devel
./configure --prefix=/usr/local/zabbix-proxy --enable-proxy --with-mysql --with-net-snmp --with-libcurl
make && make install
#mysql设定
mysql -u -p
mysql> create database zabbix_proxy character set utf8;
mysql> GRANT ALL ON zabbix_proxy.* TO zabbixproxy@'localhost' IDENTIFIED BY 'zabbixproxy';
mysql> flush privileges;
mysql> quit;
cd create/schema
cat mysql.sql | mysql -u -p zabbix
#zabbix_proxy.conf配置文件设定:
Server=zabbix_server #zabbix server的ip地址或者域名
Hostname=zabbix-proxy-qyhk01 #proxy主机名,在zabbix web会以这个名字为准
#DB 设定档
DBName=zabbixproxy
DBUser=zabbixproxy
DBPassword=123456
ProxyLocalBuffer=0 #设定为0小时,除非有其他第三方应用和插件需要调用
ProxyOfflineBuffer=1 #proxy或者server无法连接时,保留离线的监控数据的时间,单位小时
ConfigFrequency=600 #server和proxy配置修改同步时间间隔,设定5-10分钟即可。
DataSenderFrequency=10 #数据发送时间间隔,10-30s;
#网络传输质量越好,可以设定间隔时间越短,监控效果也越迅速;
StartPollers=10 #开启多线程数,一般不要超过30个;
StartPollersUnreachable=1 #该线程用来单独监控无法连接的主机,1个即可;
StartTrappers=10 #trapper线程数
StartPingers=1 #fping线程数
CacheSize=64M #用来保存监控数据的缓存数,根据监控主机数量适当调整;
Timeout=10 #超时时间,设定不要超过30s,不然会拖慢其他监控数据抓取时间;
TrapperTimeout=30 #同上
FpingLocation=/usr/sbin/fping #配合simple check icmp检测使用,如不需要可关闭;


* 启动时需要导入zabbix数据

mysql -uzabbixproxy -p zabbix_proxy < schema.sql
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: