编译安装zabbix3.2,LAMP
编译安装zabbix方式
1.1 环境准备
系统环境:
redhat 6.6 64位
mysql-5.6.34
php-5.6.28
zabbix-3.2.1
配置前先关闭iptables和SELINUX,避免安装过程中报错。
# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
——————————————————————————————
zabbix 3.2.0对环境的要求
MySQL 5.1以上最好是 5.6或者更高的版本
PHP 5.4或者更高的版本
1.2 LAMP安装
1.2.1 yum安装httpd
安装Apahce, PHP, MySQL以及php连接mysql库组件。
1
|
#yum -y install httpd httpd-devel |
1.2.2 编译安装mysql5.6
安装编译源码所需的工具和库
1
2
3
4
5
6
|
yum install \ make \ gcc \ gcc-c++ \ ncurses-devel \ cmake |
新增mysql用户组:
1
|
groupadd mysql |
新增mysql用户:
1
2
|
useradd -g mysql mysql -s /sbin/nologin chmod 755 /home/mysql/ |
新建MySQL所需要的目录
新建mysql安装目录
1
|
mkdir -p /usr/local/mysql |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
cmake \ -DCMAKE_INSTALL_PREFIX= /usr/local/mysql \
-DMYSQL_DATADIR= /home/mysql/ \
-DMYSQL_UNIX_ADDR= /home/mysql/mysql .sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DEXTRA_CHARSETS=all \ -DWITH_SSL=system \ -DMYSQL_TCP_PORT=3306 \ -- enable -proxy \
-DWITH_SSL=bundled |
注:重新运行配置,需要删除CMakeCache.txt文件
rm -f CMakeCache.txt
make
make install
修改mysql安装目录
chown -R mysql:mysql /usr/local/mysql
初始化配置
进入安装路径
# cd /usr/local/mysql
进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表
1
|
# scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql --user=mysql |
注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf"
注意:若在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。
复制mysql服务启动配置文件
1
2
|
# mv /etc/my.cnf /etc/my.cnf.bak # cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf |
启动MySQL
添加服务,拷贝服务脚本到init.d目录,并设置开机启动
1
|
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld |
设置开机启动
chkconfig mysqld on
service mysqld start
配置用户
MySQL启动成功后,root默认没有密码,我们需要设置root密码。
设置之前,我们需要先设置PATH,要不不能直接调用mysql
修改/etc/profile文件,在文件末尾添加
1
2
|
PATH= /usr/local/mysql/bin :$PATH
export PATH
|
关闭文件,运行下面的命令,让配置立即生效
source /etc/profile
执行下面的命令修改root密码
1
2
|
mysql -uroot mysql> SET PASSWORD = PASSWORD( '123456' );
|
或是
1
2
3
|
# mysqladmin -uroot -p password 123qwe Enter password: 这里直接回车 Warning: Using a password on the command line interface can be insecure.
|
若要设置root用户可以远程访问,执行
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
红色的password为远程访问时,root用户的密码,可以和本地不同。
配置防火墙
防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口
打开/etc/sysconfig/iptables
在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –jACCEPT”,下添加:
1
|
-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT |
然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:
service iptables restart
OK,一切配置完毕,你可以访问你的MySQL了~
1.2.3编译安装PHP5.6
添加依赖应用
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
|
yum install -y gcc \
gcc-c++ \ autoconf \ libjpeg \ libjpeg-devel \ libpng \ libpng-devel \ freetype \ freetype-devel \ libpng \ libpng-devel \ libxml2 \ libxml2-devel \ zlib \ zlib-devel \ glibc \ glibc-devel \ glib2 \ glib2-devel \ bzip2 \
bzip2 -devel \
ncurses \ curl \ openssl-devel \ gdbm-devel \ db4-devel \ libXpm-devel \ libX11-devel \ gd-devel \ gmp-devel \ readline-devel \ libxslt-devel \ expat-devel \ xmlrpc-c \ xmlrpc-c-devel \ libcurl \ libcurl-devel |
安装加密扩展库,先安装Libmcrypt
1
2
3
4
5
|
tar zxvf libmcrypt-2.5.8. tar .gz
cd libmcrypt-2.5.8
. /configure
make make install
|
编译安装
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
|
. /configure \
--prefix= /usr/local/php \
--with-config- file -path= /etc \
--with-apxs2= /usr/sbin/apxs \
--with-mysql= /usr/local/mysql \
--with-mysqli= /usr/local/mysql/bin/mysql_config \
-- enable -inline-optimization \
-- enable -fpm \
-- enable -soap \
--with-libxml- dir \
--with-xmlrpc \ --with-openssl \ --with-mcrypt \ --with-mhash \ --with-pcre-regex \ --with-sqlite3 \ --with-zlib \ -- enable -bcmath \
--with-iconv \ --with-bz2 \ -- enable -calendar \
--with-curl \ --with-cdb \ -- enable -dom \
-- enable -exif \
-- enable -fileinfo \
-- enable -filter \
--with-pcre- dir \
-- enable - ftp \
--with-gd \ --with-openssl- dir \
--with-jpeg- dir \
--with-png- dir \
--with-zlib- dir \
--with-freetype- dir \
-- enable -gd-native-ttf \
--with-gettext \ --with-gmp \ --with-mhash \ -- enable -json \
-- enable -mbstring \
--disable-mbregex \ --disable-mbregex-backtrack \ --with-libmbfl \ --with-onig \ -- enable -pdo \
--with-pdo-mysql \ --with-zlib- dir \
--with-pdo-sqlite \ --with-readline \ -- enable -session \
-- enable -shmop \
-- enable -simplexml \
-- enable -sockets \
-- enable -sysvmsg \
-- enable -sysvsem \
-- enable -sysvshm \
-- enable -wddx \
--with-libxml- dir \
--with-xsl \ -- enable -zip \
-- enable -mysqlnd-compression-support \
--with-pear |
注:
--with-mysql=/usr
--with-mysqli=/usr/bin/mysql_config
--with-apxs2=/usr/sbin/apxs
--enable-gd-jis-conv 会让中文乱码的不需要这个参数的
其中--with-apxs2是用来生成Apache的PHP模块libphp5.so的,不需要可以去掉。
php配置
php.ini是php运行核心配置文件
php-fpm.conf是php-fpm进程服务的配置文件
1
2
3
4
5
|
# cd php-5.6.28 # cp php.ini-production /etc/php.ini # cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf # cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm # chmod +x /etc/init.d/php-fpm |
fpm测试php配置
1
2
3
4
5
6
7
8
9
10
11
|
# /usr/local/php/sbin/php-fpm -t [23-May-2016 20:03:52] NOTICE: configuration file /usr/local/php/etc/php-fpm .conf test is successful
# chkconfig --add php-fpm # chkconfig php-fpm on # service php-fpm start Starting php-fpm done
netstat –anpt
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 705 /php-fpm
|
修改默认端口:
vi /usr/local/php/etc/php-fpm.conf
listen = 127.0.0.1:8000
1.3配置apache访问PHP
配置 httpd.conf 让apache支持PHP
# vi /usr/local/apache/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz (369)在其下添加如下内容
1
2
3
4
5
|
AddType application /x-httpd-php .php
AddType application /x-httpd-php-source .phps
DirectoryIndex index.php index.html // 调整首页文件设置
LoadModule php5_module /usr/lib64/httpd/modules/libphp5 .so
|
测试页面:
1
2
3
4
|
vi /var/www/html/test .php
<?php phpinfo(); ?> |
2.1 下载zabbix源码包
官网:http://www.zabbix.com/download.php
下载zabbix-3.2.1.tar.gz
安装zabbix所需的组件(server,agent)
1
|
yum -y install curl libcurl-devel net-snmp net-snmp-develperl-DBI libdbi-dbd-mysql mysql-devel gcc gcc++ make libxml2 libxml2-devel
|
2.2 编译安装zabbix
server: (172.28.3.103)服务端
创建zabbix用户组与用户:
# groupadd zabbix
# useradd -g zabbix -s /sbin/nologin zabbix
# tar xzvf zabbix-3.2.1.tar.gz
编译安装:
1
2
3
|
# cd zabbix-3.2.1 # ./configure --prefix=/usr/local/zabbix-server --enable-server --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-agent --enable-ipv6 make && make install
|
编译时加 --prefix=/usr/local/zabbix-server 参数,则zabbix配置文件默认在/usr/local/zabbix-server/etc目录下。(若编译时没有指定路径,则zabbix配置文件使用的默认路径,在/usr/local/etc/下)
创建数据库和授权用户
说明:
数据文件导入的顺序不能变,也可以在命令行使用mysql命令导入数据文件
[[email protected] ~]# service mysqld start
修改数据库的root密码
[[email protected] ~]# mysqladmin -u root -p password 123qwe
Enter password: 这里不用填写直接回车即可
1
2
3
|
mysql> create database zabbix character set utf8; mysql> grant all on zabbix.* to [email protected] 'localhost' identified by '123456' ;
mysql> flush privileges; |
导入数据库sql脚本:
# cd zabbix-3.2.1
在解压的zabbix目录下,将database/mysql目录下三个sql文件导入到zabbix数据库里。(下面用的是zabbix用户来导入文件,这个用户在数据库是默认存在的)
# mysql -uzabbix -p123456 zabbix < database/mysql/schema.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/images.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
或是
mysql> use zabbix;
Database changed
mysql> source /root/zabbix-3.2.1/database/mysql/schema.sql;
mysql> source /root/zabbix-3.2.1/database/mysql/images.sql;
mysql> source /root/zabbix-3.2.1/database/mysql/data.sql;
修改配置文件并启动
mkdir -p /var/www/zabbix
cp -R frontends/php /var/www/zabbix
chmod 777 /var/www/zabbix/php/conf
编辑配置文件(server,agent)
# cd /usr/local/zabbix-server/etc
去掉配置文件里的注释:
# cat zabbix_server.conf |grep -v"#" |grep -v "^$" > zabbix_server.conf.bak
# cp zabbix_server.conf.bak zabbix_server.conf
# cat zabbix_agentd.conf |grep -v"#" |grep -v "^$" > zabbix_agentd.conf.bak
# cp zabbix_agentd.conf.bak zabbix_agentd.conf
我们只需要关注DBHost、DBName、DBUser、DBPassword几项即可。这几项是配置zabbix server连接mysql数据库的参数。
服务端配置:
1
2
3
4
5
6
|
# vim /usr/local/zabbix-server/etc/zabbix_server.conf LogFile= /var/log/zabbix/zabbix_server .log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
|
客户端配置:
1
2
3
4
5
|
# vi /usr/local/zabbix-server/etc/zabbix_agentd.conf LogFile= /var/log/zabbix/zabbix_agentd .log
Server=172.28.3.103 ServerActive=172.28.3.103 Hostname=172.28.3.103 |
创建日志文件存放位置:
mkdir /var/log/zabbix
chown -R zabbix:zabbix /var/log/zabbix
启动zabbix服务:
/usr/local/zabbix-server/sbin/zabbix_server
用server来管理启动zabbix服务:
1
2
3
4
5
6
7
|
# cd zabbix-3.2.1 # cp misc/init.d/fedora/core/zabbix_server /etc/init.d/ # cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ # chkconfig --add zabbix_server # chkconfig --add zabbix_agentd # chkconfig zabbix_server on # chkconfig zabbix_agentd on |
创建软链接:
1
2
3
|
ln -s /usr/local/zabbix/sbin/zabbix_server /usr/local/sbin/
ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/
|
启动服务:
service zabbix_server start
service zabbix_agentd start
agent: (172.28.3.100)客户端
创建zabbix用户组与用户:
# groupadd zabbix
# useradd -g zabbix -s /sbin/nologin zabbix
编译安装:
1
2
3
4
5
6
7
8
9
10
|
# cd zabbix-3.2.1 # ./configure --prefix=/usr/local/zabbix-agent --enable-agent make && make install
# cd /usr/local/zabbix-agent # vi etc/zabbix_agentd.conf LogFile= /var/log/zabbix/zabbix_agentd .log
Server=172.28.3.103 ServerActive=172.28.3.103 Hostname=172.28.3.100 |
用server来管理启动zabbix服务:
1
2
3
4
|
# cd zabbix-3.2.1 # cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ # chkconfig --add zabbix_agentd # chkconfig zabbix_agentd on |
创建软链接:
1
|
# ln -s /usr/local/zabbix/sbin/zabbix_agentd/usr/local/sbin/ |
启动服务:
service zabbix_agentd start
2.3 配置zabbix web页面
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
|
vim /etc/httpd/conf .d /zabbix .conf
# # Zabbix monitoring system php web frontend # #Alias /zabbix/usr/share/zabbix Alias /zabbix /var/www/zabbix/php
<Directory "/var/www/zabbix/php" >
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
#Require all granted
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
php_value date .timezone Asia /Chongqing
< /IfModule >
< /Directory >
|
其中php_value date.timezone Asia/Chongqing主要是定义php的时区。
最后重启apache,zabbix服务,如下:
services httpd restart
services zabbix_server restart
然后访问http://172.28.3.103/zabbix/setup.php这个地址,如下进行安装:
完成后即可登录:zabbix默认的用户名和密码是Admin/zabbix
如果创建zabbix.conf.php文件这一步有报错话,可以手动下载好那个文件在相应目录创建zabbix.conf.php文件复制里面的内容即可:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
vi /var/www/zabbix/php/conf/zabbix.conf.php <?php // Zabbix GUI configuration file. global $DB; $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = '172.28.3.103'; $DB['PORT'] = '3306'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'zabbix'; // Schema name. Used for IBM DB2 and PostgreSQL. $DB['SCHEMA'] = ''; $ZBX_SERVER = '172.28.3.103'; $ZBX_SERVER_PORT = '10051'; $ZBX_SERVER_NAME = ''; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
|