uytyrt 发表于 2017-2-15 09:39:15

ZABBIX3.0在CentOS6.6上的安装部署

Zabbix3.0界面焕然一新,一改10多年的老面孔,alpha4的更新具体记录下:http://www.zabbix.com/rn3.0.0alpha4.phpWhat's New in 3.0.0alpha4Zabbix 3.0安装过程与2.x的变化类似,但又少许需要注意的坑(以下标红的),否则会坑的不行。。。基础环境:CentOS 6.6 X64Nginx:1.9.7Mysql:5.5.32PHP:5.5.30( zabbix_3.0 要求php版本至少在5.4以上 )一、Nginx安装:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
1.rpm -qa pcre pcre-devel
2.yum install pcre pcre-devel openssl openssl-devel -y
3.mkdir -p /usr/local/nginx-1.9.7
4.useradd nginx -s /sbin/nologin -M
5../configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.9.7 --with-http_stub_status_module --with-http_ssl_module
make && make install
ln -s /usr/local/nginx-1.9.7 /usr/local/nginx
6.ls -l /usr/local/
7./usr/local/nginx/sbin/nginx
8.ps -ef|grep nginx
9.ss -lntup|grep nginx
[root@zabbix_3.0 conf]# egrep -v "#|^$" nginx.conf.default > nginx.conf
[root@zabbix_3.0 conf]# vim /usr/local/nginx/conf/nginx.conf
worker_processes 1;
error_log /usr/local/nginx/logs/error.log; --新增一行
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on; --新增一行
server {
listen 80;
server_name localhost;
access_log /usr/local/nginx/logs/access.log; --新增一行
root /usr/local/nginx/html; --更改为/usr/local/nginx/html,原来的值为html;
index index.php index.html index.htm; --加一个index.php
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;
}
}
}
10.为nginx提供 init脚本,新建文件/etc/rc.d/init.d/nginx,把以下内容复制到刚建的nginx文件下:
#!/bin/sh
#nx - 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: /usr/local/nginx/conf/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /usr/local/nginx/logs/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 /usr/local/nginx ] && . /usr/local/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
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
}
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
11.添加启动项并做成服务:
chmod +x /etc/rc.d/init.d/nginx
chkconfig --add nginx
chkconfig nginx on
# ps -A|grep nginx
62878 ? 00:00:00 nginx
62879 ? 00:00:00 nginx





二、MySql安装:二进制软件包(170多M)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# yum install tree nmap lrzsz dos2unix -y
# mkdir -p /usr/local/mysql-5.5.32
[root@zabbix_3.0]# tar -zxvf mysql-5.5.32-linux2.6-x86_64.tar.gz
[root@zabbix_3.0]# mv mysql-5.5.32-linux2.6-x86_64 /usr/local/mysql-5.5.32
[root@zabbix_3.0]# ln -s /usr/local/mysql-5.5.32/ /usr/local/mysql
[root@zabbix_3.0]# useradd mysql -s /sbin/nologin -M
[root@zabbix_3.0]# chown -R mysql.mysql /usr/local/mysql
[root@zabbix_3.0]# cd /usr/local/mysql
[root@zabbix_3.0 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
--这步不用做sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
cp support-files/my-small.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
# source /etc/profile
[root@zabbix_3.0]# echo $PATH
/usr/local/mysql/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@zabbix_3.0 application]# cp -a /application/mysql/bin/* /usr/local/sbin
[root@zabbix_3.0 application]#service mysqld start
[root@zabbix_3.0 application]#chkconfig mysqld on
[root@zabbix_3.0 application]#mysqladmin -uroot password 123456





三、PHP安装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
1.yum -y install zlib-devel libxml2-devel libjpeg-devel libiconv-devel freetype-devel libpng-devel gd-devel curl-devel libxslt-devel
2.wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz
mkdir -p /usr/local/libiconv
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
cd ../
3.yum -y install libmcrypt-devel mhash mcrypt --这3个rpm包必须安装,CentOS6.6系统的标准YUM源里没有, 需要从EPEL源上找到下载安装
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
php 5.5.30:( --with-mysqli=mysqlnd和--with-gettext一定要加上,否则前者不装时安装 zabbix时database type没有选项 默认出来的数据库是SqLite 3,且不能切换 ,后者不装时,会报PHP gettext warning)
mkdir -p /usr/local/php-5.5.30
tar -zxvf php-5.5.30.tar.gz
cd php-5.5.30
./configure \
--prefix=/usr/local/php-5.5.30 \
--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回车
+-----------------------------------------------------------------------------------+
| License:                                                                        |
| This software is subject to the PHP License, available in this      |
| distribution in the file LICENSE. By continuing this installation       |
| process, you are bound by the terms of this license agreement.      |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                                    |
+-----------------------------------------------------------------------------------+
Thank you for using PHP.
config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
#make && make install
Generating phar.php
Generating phar.phar
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
directorytreeiterator.inc
directorygraphiterator.inc
invertedregexiterator.inc
clicommand.inc
pharcommand.inc
phar.inc
Build complete.
Don't forget to run 'make test'.
Installing PHP CLI binary: /usr/local/php-5.5.30/bin/
Installing PHP CLI man page: /usr/local/php-5.5.30/php/man/man1/
Installing PHP FPM binary: /usr/local/php-5.5.30/sbin/
Installing PHP FPM config: /usr/local/php-5.5.30/etc/
Installing PHP FPM man page: /usr/local/php-5.5.30/php/man/man8/
Installing PHP FPM status page: /usr/local/php-5.5.30/php/php/fpm/
Installing PHP CGI binary: /usr/local/php-5.5.30/bin/
Installing PHP CGI man page: /usr/local/php-5.5.30/php/man/man1/
Installing build environment: /usr/local/php-5.5.30/lib/php/build/
Installing header files: /usr/local/php-5.5.30/include/php/
Installing helper programs: /usr/local/php-5.5.30/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php-5.5.30/php/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /usr/local/php-5.5.30/lib/php/
Archive_Tar - installed: 1.3.12
Console_Getopt - installed: 1.3.1
Structures_Graph- installed: 1.0.4
XML_Util - installed: 1.2.3
PEAR - installed: 1.9.5
Wrote PEAR system config file at: /usr/local/php-5.5.30/etc/pear.conf
You may want to add: /usr/local/php-5.5.30/lib/php to your php.ini include_path
/root/software/php-5.5.30/build/shtool install -c ext/phar/phar.phar /usr/local/php-5.5.30/bin
ln -s -f phar.phar /usr/local/php-5.5.30/bin/phar
Installing PDO headers: /usr/local/php-5.5.30/include/php/ext/pdo/
[root@zabbix_3.0 php-5.5.30]# make test --此步可不做,是进行测试
[root@zabbix_3.0 php-5.5.30]# ln -s /usr/local/php-5.5.30/ /usr/local/php
生成配置php配置文件
[root@zabbix_3.0 php-5.5.30]# pwd
/root/software/php-5.5.30
[root@zabbix_3.0 php-5.5.30]# cp php.ini-production /usr/local/php/lib/php.ini
[root@zabbix_3.0 php-5.5.30]# cd /usr/local/php/etc/
[root@zabbix_3.0 etc]# pwd
/usr/local/php/etc
[root@zabbix_3.0 etc]# cp php-fpm.conf.default php-fpm.conf
php启动测试
[root@zabbix_3.0 etc]# /usr/local/php/sbin/php-fpm
验证是否成功启动
[root@zabbix_3.0 etc]# netstat -lntup|grep php-fpm




验证LNMP安装是否成功。四、Zabbix安装:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
[root@zabbix_3.0 ~]# tar -zxvf zabbix-3.0.0.tar.gz
[root@zabbix_3.0 ~]# groupadd zabbix
[root@zabbix_3.0 ~]# useradd -g zabbix zabbix
[root@zabbix_3.0 ~]# ln -s /usr/local/libiconv/lib/libiconv.so.2 /usr/lib/libiconv.so.2 #添加软连接
[root@zabbix_3.0 ~]# /sbin/ldconfig #使配置立即生效
[root@zabbix_3.0 ~]# mkdir -p /usr/local/zabbix
[root@zabbix_3.0 ~]# cd software/zabbix-3.0.0
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
参数说明
―prefix=/usr/local/zabbix 为指定安装目录为/usr/local/zabbix
―enable-server 为安装zabbix服务端程序
―enable-agent 为安装agent程序
―with-mysql 为使用mysql数据库
―enable-ipv6 为启用ipv6支持
―with-net-snmp 为启用snmp支持
―with-libcurl 为启用curl
―with-libxml2 编译xml模块,主要用于监控vm虚拟机
报错
checking for net-snmp-config... no
configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
# rpm -qa | grep net-snmp-devel --发现没有该软件包,进行YUM安装
# yum install net-snmp-devel
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
解决依赖关系
--> 执行事务检查
---> Package net-snmp-devel.x86_64 1:5.5-49.el6_5.3 will be 安装
--> 处理依赖关系 tcp_wrappers-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要
--> 处理依赖关系 rpm-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要
--> 处理依赖关系 lm_sensors-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要
--> 处理依赖关系 elfutils-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要
--> 执行事务检查
---> Package elfutils-devel.x86_64 0:0.158-3.2.el6 will be 安装
---> Package lm_sensors-devel.x86_64 0:3.1.1-17.el6 will be 安装
---> Package rpm-devel.x86_64 0:4.8.0-37.el6 will be 安装
--> 处理依赖关系 popt-devel(x86-64),它被软件包 rpm-devel-4.8.0-37.el6.x86_64 需要
--> 处理依赖关系 file-devel(x86-64),它被软件包 rpm-devel-4.8.0-37.el6.x86_64 需要
---> Package tcp_wrappers-devel.x86_64 0:7.6-57.el6 will be 安装
--> 执行事务检查
---> Package file-devel.x86_64 0:5.04-21.el6 will be 安装
---> Package popt-devel.x86_64 0:1.13-7.el6 will be 安装
--> 完成依赖关系计算
依赖关系解决
=============================================================================================
软件包 架构 版本 仓库 大小
=============================================================================================
正在安装:
net-snmp-devel x86_64 1:5.5-49.el6_5.3 c6-media 304 k
为依赖而安装:
elfutils-devel x86_64 0.158-3.2.el6 c6-media 74 k
file-devel x86_64 5.04-21.el6 c6-media 26 k
lm_sensors-devel x86_64 3.1.1-17.el6 c6-media 22 k
popt-devel x86_64 1.13-7.el6 c6-media 21 k
rpm-devel x86_64 4.8.0-37.el6 c6-media 93 k
tcp_wrappers-devel x86_64 7.6-57.el6 c6-media 15 k
事务概要
=============================================================================================
Install 7 Package(s)
总下载量:555 k
Installed size: 1.3 M
确定吗?输入y回车
--再次执行configure,编译通过
# make && make install
[root@zabbix_3.0 ~]# chown -R zabbix:zabbix /usr/local/zabbix/
[root@zabbix_3.0 ~]# mkdir -p /var/log/zabbix-server
[root@zabbix_3.0 ~]# mkdir -p /var/log/zabbix-agentd
[root@zabbix_3.0 ~]# chown -R zabbix:zabbix /var/log/zabbix-server/
[root@zabbix_3.0 ~]# chown -R zabbix:zabbix /var/log/zabbix-agentd/
# mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> flush privileges;
mysql> quit;




按照SQL语句顺序导入SQL:
1
2
3
4
shell> mysql -uzabbix -p<password> zabbix < database/mysql/schema.sql
# stop here if you are creating database for Zabbix proxy
shell> mysql -uzabbix -p<password> zabbix < database/mysql/images.sql
shell> mysql -uzabbix -p<password> zabbix < database/mysql/data.sql




1.修改zabbix.conf:
1
2
3
4
5
6
7
8
9
10
11
# vim /usr/local/zabbix/etc/zabbix_server.conf
增加:
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户名
DBPassword=zabbix #数据库密码
ListenIP=localhost #数据库ip地址 (--根据实际情况更改)
AlertScriptsPath=****/zabbix/alertscripts #zabbix运行脚本存放目录
LogFile=/var/log/zabbix-server/zabbix_server.log --更改Logfile的值为/var/log/zabbix-server/zabbix_server.log,原来的默认值为/tmp/zabbix_server.log
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/var/log/zabbix-agentd/zabbix_agentd.log --更改Logfile的值为/var/log/zabbix-agentd/zabbix_agentd.log,原来的默认值为/tmp/zabbix_agentd.log
Hostname=test202




2.zabbix 3.0启动方式:

1
2
3
4
5
6
7
8
9
# cp /root/software /zabbix-3.0.0/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server #服务端
# cp /root/software/zabbix-3.0.0/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd #客户端
# vi /etc/rc.d/init.d/zabbix_server
# Zabbix-Directory
BASEDIR=/usr/local/zabbix --更改BASEDIR的值为/usr/local/zabbix,原来的值为/usr/local,如果安装时不指定--prefix,就默认安装在/usr/local,因为我安装zabbix在/usr/local/zabbix
同理,也把zabbix_agentd的BASEDIR的值改为/usr/local/zabbix
shell> zabbix_server
zabbix_server : cannot open "/var/log/zabbix-server/zabbix_server.log": Permission denied
报错是权限的问题,将var/log/zabbix-server的目录及其下所有文件都设为zabbix用户和zabbix所属组即可




3.将/usr/local/zabbix/sbin目录、/usr/local/nginx/sbin目录、/usr/local/php/sbin目录也写入/etc/profile的环境变量PATH当中
1
2
3
# vi /etc/profile
export PATH=/usr/local/zabbix/sbin:/usr/local/nginx/sbin:/usr/local/php/sbin:/usr/local/mysql/bin:$PATH'
# source /etc/profile




4.然后启动php
1
# /usr/local/php/sbin/php-fpm




5.配置web环境:
1
2
# cd /root/software/zabbix-3.0.0/frontends
# cp -rf php /usr/local/nginx/html/zabbix




6.在浏览器里输入http://10.101.0.15/zabbix 回车
7.修改php.ini:(php5.5默认值较小)
1
2
3
4
5
6
7
vim /usr/local/php/lib/php.ini 主要为下面几个参数
--在vi里查找出上面的参数,再修改其值
PHP option post_max_size 16M --更改值为16M,原来的值为8M
PHP option max_execution_time 300 --更改值为300,原来的值为60
PHP option max_input_time 300 --更改值为300,原来的值为30
PHP time zone Asia/Shanghai --添加值为Asia/Shanghai,原来的值为空,并把前面的;去掉,使其生效
:x





8.这里修不修改端口都可,如果编译php时你没有带上 --with-mysqli=mysqlnd 你会悲剧的发现这里默认出现的是SQLite3,且无法更换。。。

9.需要给此目录下/usr/local/nginx/html/zabbix/conf的zabbix.conf.php w+x权限,否则install之前会报错需要下载conf,且赋权。10.安装至此完毕。界面如下(是比以前好看了。。)

flybear 发表于 2017-2-19 12:04:08

{:6_393:}
页: [1]
查看完整版本: ZABBIX3.0在CentOS6.6上的安装部署