最近入手zabbix,准备好好的研究,好好的弄。
 
环境准备:
mysql:5.6.29
PHP:5.6.12
Nginx:1.8.0
zabbix:3.2.6
操作系统:Centos6
用户:普通用户lile
所有的安装包:http://pan.baidu.com/s/1hsmpr96 (百度网盘)
 
一、搭建lnmp
 
1:编译安装mysql
1)安装依赖包

yum -y install gcc make cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel
 
注:在这里可以先创建一个download,用来准们存放需要的软件
       创建一个/usr/local/lnmp 专门用来存放解压的软件 
mkdir download
mkdir /usr/local/lnmp
2)下载源码安装包

wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.11.tar.gz
 
3)解压源码包

tar -zxvf mysql-5.6..tar.gz -C /usr/local/lnmp
cd /usr/local/lnmp/mysql-5.6.
cmake .-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=gbk,gb2312 -DENABLED_LOCAL_INFILE=
make
make install
-DDEFAULT_CHARSET=utf8 设置默认的字符集   
-DDEFAULT_COLLATION=utf8_general_ci 默认字符校对
-DWITH_EXTRA_CHARSETS=gbk,gb2312 扩展字符支持
-DENABLED_LOCAL_INFILE:启用加载本地数据    mysql5.6系列采用cmake构建安装
cmake -L:可以查看编译选项
 
4)创建配置文件和数据目录
 
创建配置文件目录和编辑配置文件:
sudo mkdir /usr/local/mysql/etc
 
配置文件 vim /usr/local/mysql/etc/my.cnf:
[mysqld]
port=
datadir=/mysql_data/data
socket=/mysql_data/mysql.sock
user=mysql [mysqld_safe]
log-error=/mysql_data/mysql_err.log
pid-file=/mysql_data/mysql.pid
创建mysql的数据目录
sudo mkdir /mysql_data
sudo mkdir /mysql_data/data
sudo chown -R mysql.mysql /mysql_data /usr/local/mysql -R
5)初始化数据库
sudo /usr/local/mysql/scripts/mysql_install_db --defaults-file=/usr/local/mysql/etc/my.cnf --user=mysql --basedir=/usr/local/mysql
--basedir:安装的路径,全路径,解决相对路径出错的问题
 
6)启动mysql    
sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf &
 
7)登录mysql
报错:

 
解决办法:
ln -s /mysql_data/mysql.sock /tmp/mysql.sock
然后就可以了。
 
2:编译安装php
 
1)安装php扩展包,这些包是rpm里没有自带,所以这里还是编译一下
    
 libiconv-1.13.tar.gz  --语言编码转换
tar xvf libiconv-1.13.tar.gz -C /usr/local/lnmp
cd /usr/local/lnmp/libiconv-1.13
./configure ;make ;make install
echo /usr/local/lib >/etc/ld.so.conf.d/lnmp.conf //这里普通用户使用sudo可能会报错,可以直接vim 编辑/etc/ld,so.conf.d/lnmp.conf,把路径写进去
/sbin/ldconfig
pcre-7.9.tar.gz  --perl兼容正则表达式,或者使用rpm自带的也可以(yum install pcre pcre-devel -y)
tar xvf pcre-7.9.tar.gz -C /usr/local/lnmp
cd /usr/local/lnmp/pcre-7.9
./configure ;make ;make install
/sbin/ldconfig
2)安装php
 
php-5.6.12.tar.gz
tar xf php-5.6..tar.bz2 -C /usr/local/lnmp
cd /usr/local/lnmp/php-5.6.
./configure --prefix=/usr/local/php--with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-mysqlnd --with-pcre-dir=/usr/local/--enable-opcache
make
make install
 
编译php时可能会出现的几种错误总结:
 
错误一:
 
./configure时报下面的错误
configure: error:Don't know how to define struct flock on this system, set --enable-opcache=no
 
解决方法:
ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/
ln -s /usr/local/mysql/lib/libmysqlclient.so./usr/lib/libmysqlclient.so.
ldconfig
--或者
echo /usr/local/mysql/lib >>/etc/ld.so.conf.d/lnmp.conf && ldconfig
错误二:
 
./configure之后如果直接make会报下面的错误
collect2: ld returned  exit status
make:***[sapi/cli/php]Error1
最好删掉php的源码目录,再重新解压,重新编译,使用下面的参数来编译
make ZEND_EXTRA_LIBS='-liconv'
make install
错误三:
 
chmod: cannot access `ext/phar/phar.phar': No such file or directory"
 
解决办法:
cp ext/phar/phar.php ext/phar/phar.phar
3)php成功安装后,继续安装php第三方模块
 
安装缓存模块memcache
tar xvf memcache-2.2..tgz -C /usr/local/lnmp
cd /usr/local/lnmp/memcache-2.2.
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make ;make install
用phpize生成编译的configure文件。注意使用的路径要为编译的/usr/local/php的路径;
phpize prepare a PHP extension for compiling
如果你不用phpize,你的这个目录里根本就没有configure这个文件
 
注意安装信息
Libraries have been installed in:
/usr/src/lnmp/memcache-2.2./modules
Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-/
echo /usr/src/lnmp/memcache-2.2./modules/>>/etc/ld.so.conf.d/lnmp.conf
/sbin/ldconfig
安装绘图引擎模块imagemagick,与GD类似
tar -zxvf ImageMagick-6.7.-.tar.gz -C /usr/local/lnmp
cd /usr/local/lnmp/ImageMagick-6.7.-
./configure
make;make install
/sbin/ldconfig
安装imagick(连接php与imagemagick的通道)
tar xf imagick-3.1..tgz-C /usr/src/lnmp/
cd /usr/src/lnmp/imagick-3.1./
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make;make install
注意安装的库路径的模块路径信息
Libraries have been installed in:
/usr/src/lnmp/imagick-3.1./modules
Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-/
echo /usr/local/lnmp/imagick-3.1./modules >>/etc/ld.so.conf.d/lnmp.conf
/sbin/ldconfig
到此,与nginx之前要编译的所有软件及扩展模块完成
 
验证此目录里有三个安装模块,表示安装OK
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-/
imagick.so memcache.so opcache.so opcache.a
4)拷贝并配置php配置文件,加上前面所编译的模块支持

cp /usr/local/lnmp/php-5.6./php.ini-production /usr/local/php/etc/php.ini
拷配置文件,拷的路径是根据编译时的--sysconfigdir参数决定的(因为,我指定安装路径为/usr/local/php,所以就要拷到/usr/local/php/etc/)
 
配置php.ini文件加上前面安装的扩展的模块支持
 
vim /usr/local/php/etc/php.ini  --直接在最后加上下面一段
extension_dir ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
extension ="memcache.so"
extension ="imagick.so"
date.timezone ="Asia/Shanghai"
[opcache]
zend_extension ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/opcache.so"
opcache.enable=
opcache.enable_cli=
opcache.memory_consumption=
opcache.optimization_level=
opcache.interned_strings_buffer=
opcache.max_accelerated_files=
opcache.revalidate_freq=
opcache.fast_shutdown=
opcache.save_comments=
关于几个参数的说明 
opcache.memory_consumption=128    --共享内存大小, 这个根需求可调
opcache.interned_strings_buffer=8   --interned string的内存大小, 也可调
opcache.max_accelerated_files=4000   --最大缓存的文件数目
opcache.revalidate_freq=60 --60s检查一次文件更新
opcache.fast_shutdown=1 --打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高
opcache.save_comments=0 --不保存文件或函数的注释 
 
3:编译安装nginx
 
1):我这里建立一个用户来跑nginx,不做也可以,它默认是用daemon用户来跑
useradd -r -d /dev/null -s /sbin/nologin nginx
 
2):解压编译安装
tar xf nginx-1.8..tar.gz -C /usr/local/lnmp
cd /usr/local/lnmp/nginx-1.8./
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/lnmp/pcre-7.9
make
make install
 
--with-http_stub_status_module模块记得要加,后面做查看nginx状态需要这个模块
 
3)查看是否安装成功
ls /usr/local/nginx
conf html logs sbin
看到这些文件,则表示nginx安装成功
 
4:配置优化php的fastcgi配置文件,并启动fastcgi模式的php
 
配置php-fpm配置文件 (配置fastcgi)
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
 
要在些配置文件配置的选项有:
监听的IP,端口或者socket
初始化的进程数
执行身份
错误是否显示
打开的资源限制等
# vim /usr/local/php/etc/php-fpm.conf
listen =/var/run/fastcgi/fastcgi.socket
php_flag[display_errors]= on
user = nginx
group = nginx
pm.max_children =
pm.start_servers =
pm.min_spare_servers =
pm.max_spare_servers =
pm.max_requests =
rlimit_files =
listen.owner = nginx
listen.group = nginx
listen.mode =
 
最后三行是控制启动fastcgi之后的socket文件的权限(特别是新版本的php,修复了以前socket访问权限的bug,所以这里指好权限,那么nginx才能有权限读取socket来访问fastcgi)
 
mkdir /var/run/fastcgi
chown nginx.nginx /var/run/fastcgi/
启动php fastcgi进程
/usr/local/php/sbin/php-fpm -D -y /usr/local/php/etc/php-fpm.conf
 
启动过后,就可以在/var/run/fastcgi/目录下找到socket文件
ls /var/run/fastcgi/
fastcgi.socket
查看进程:
ps -ef |grep fpm也可以用此命令来查看php的factcgi的进程,有20个进程,因为我在前面配置pm.start_servers = 20
如果要关闭fpm,可以直接pkill fpm就可以了
 
5:配置nginx.conf主配置文件
 
sudo vim /usr/local/nginx/conf/nginx.conf
    # vim /usr/local/nginx/conf/nginx.conf
user nginx nginx;--运行用户和组
worker_processes ;--启动ngnix的服务的工作进程数
error_log logs/error.log info;--错误日志以及日志等级
pid logs/nginx.pid;--pid文件
worker_rlimit_nofile ;--nginx每个进程能打开的最大的文件描述符数
events {
use epoll;--epoll工作模式
worker_connections ;--每个进程允许打开的并发连接数
}
http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
sendfile on;
tcp_nopush on;
keepalive_timeout ;
gzip on;
server {
listen ;--监听的端口
server_name 10.1.1.8;--域名或者IP
charset utf8;--字符集
root /lnmp/web;--家目录
index index.php index.html index.htm;--主页文件
error_page /50x.html;
location =/50x.html {
root html;
}
location ~.*\.php$ {
fastcgi_pass unix:/var/run/fastcgi/fastcgi.socket;--对应php-fpm.conf里的设置
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;--把/scripts改成$document_root,表示家目录下的.php文件也当会以php来执行
include fastcgi_params;
}
}
}
创建数据目录
    mkdir -p /lnmp/web
 
启动nginx
    /usr/local/nginx/sbin/nginx //启动nginx
/usr/local/nginx/sbin/nginx -s reload //reload的方法
/usr/local/nginx/sbin/nginx -s stop //关闭的方法
验证:
 vim /lnmp/web/test.php
    <?php
phpinfo();
?>
用http://10.0.0.146/test.php能验证支持php,说明整个基本的lnmp搭建完成 

 
 
二、zabbix的安装
 
服务端安装
 
2:先yum安装net-snmp-devel,要不然下面编译安装的时候会报错
    yum -y install net-snmp-devel
3:解压 、安装
    tar -zxvf zabbix-3.2..tar.gz -C /usr/local/lnmp
yum install net-snmp-devel
./configure --prefix=/usr/local/zabbix-3.2.--enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make
make install
这里的--with-mysql=/usr/local/mysql/bin/mysql_config 一定要指定,要不然怎么都启动不了zabbix server
 
4:添加zabbix用户
    useradd zabbix
groupadd zabbix
5:设置zabbix使用的数据库
创建用户
    create user 'zabbix'@'%' identified by '';

创建zabbix数据库

    create database zabbix
 
zabbix数据库授权给zabbix账号:
    grant all privileges on zabbix.* to 'zabbix'@'%' identified by ''
grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by ''
flush privileges;
使用zabbix账号登录进去以后可以看到zabbix数据库:/usr/local/mysql/bin/mysql -uzabbix -p
    mysql> show databases;
+--------------------+
|Database|
+--------------------+
| information_schema |
| test |
| zabbix |
+--------------------+
rows inset(0.00 sec)
从本地导入zabbix数据库的一些表
/usr/local/mysql/bin/mysql zabbix </usr/local/lnmp/zabbix-3.2./database/mysql/schema.sql
/usr/local/mysql/bin/mysql zabbix </usr/local/lnmp/zabbix-3.2./database/mysql/images.sql
/usr/local/mysql/bin/mysql zabbix </usr/local/lnmp/zabbix-3.2./database/mysql/data.sql
6:编辑zabbix服务端的配置文件
    mkdir -p /etc/zabbix
cp /usr/local/zabbix-3.2./etc/zabbix_server.conf /etc/zabbix
vim /etc/zabbix/zabbix_server.conf
    DBName=zabbix
DBUser=zabbix
DBPassword=
DBPort=
ListenIP=10.0.0.146
    echo "/usr/local/mysql/lib">>/etc/ld.so.conf
ldconfig
7:zabbix服务端的启动
    /usr/local/zabbix-3.2./sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
zabbix客户端的启动,这里在编译的时候顺便把客户端也编译了
    /usr/local/zabbix-3.2./sbin/zabbix_agentd
 
zabbix web 安装
 
1:创建zabbix数据目录,并且把前端文件拷贝过去
    mkdir -p /zabbix_web/zabbix
cp -r /usr/local/lnmp/zabbix-3.2./frontends/php/*/zabbix_web/zabbix
2:编辑虚拟主机文件
user nginx nginx;
worker_processes ;
error_log logs/error.log info;
pid logs/nginx.pid;
events {
use epoll;
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
sendfile on;
tcp_nopush on;
keepalive_timeout ;
gzip on;
server {
listen ;
server_name localhost;
access_log logs/host.access.log main;
index index.php index.html index.htm;
root /zabbix_web;
location /{
try_files $uri $uri//index.php?$args;
}
location ~.*\.(php)?$ {
fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi_params;
fastcgi_pass unix:/var/run/fastcgi/fastcgi.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
 
然后通过浏览器访问:10.0.0.146/zabbix,会出现

 
点击下一步:出现错误

 
说明配置文件没有配置好,打开php的配置文件php.ini
vim /usr/local/php/etc/php.ini
    post_max_size =16M
max_execution_time =
max_input_time =
always_populate_raw_post_data =-
然后杀掉fpm进程,重启,刷新界面,就得到正确的了
    pkill fpm
/usr/local/php/sbin/php-fpm -D -y /usr/local/php/etc/php-fpm.conf
 
点击下一步,配置数据库

 
点击下一步,设置zabbix服务器的一些东西

 
下一步,下一步,会出现

这里是没有权限写入进去,所以自己手动先下载配置文件,然后保存到/zabbix_web/zabbix/conf/zabbix.conf.php下面
 
打开这个文件,可以看大里面的内容就是刚刚设置的内容:vim /zabbix_web/zabbix/conf/zabbix.conf.php
    <?php
//Zabbix GUI configuration file.
global $DB;
$DB['TYPE']='MYSQL';
$DB['SERVER']='10.0.0.146';
$DB['PORT']='';
$DB['DATABASE']='zabbix';
$DB['USER']='zabbix';
$DB['PASSWORD']='';
//Schema name.Usedfor IBM DB2 and PostgreSQL.
$DB['SCHEMA']='';
$ZBX_SERVER ='10.0.0.146';
$ZBX_SERVER_PORT ='';
$ZBX_SERVER_NAME ='zabbix-server';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
完成之后,就进入到这个登录界面了:

 
默认账号:Admin
       密码: zabbix 
 
登录进去之后,会看到

 
 
zabbix 客户端安装 
 
下载、解压、安装
    tar -zxvf zabbix-3.2..tar.gz -C /usr/local/lnmp
./configure --prefix=/home/lile/zabbix-3.2.--enable-agent
make
make install
默认端口号为10050
 
客户端的配置文件:
vim zabbix-3.2.6/etc/zabbix_agentd.conf
    LogFile=/tmp/zabbix_agentd.log
Server=127.0.0.1 //zabbix server的地址
ServerActive=127.0.0.1 //zabbix server的地址
Hostname=Zabbix server
客户端启动:
    /usr/local/zabbix-3.2./sbin/zabbix_agentd
 
安装基本上完成了,接下来就是把怎么用zabbix,怎么用好zabbix了
 
 

zabbix安装、部署、lnmp(一)的更多相关文章

  1. 在ConoHa上Centos7环境下源码安装部署LNMP

    本文记录了从源码,在Centos 7上手动部署LNMP环境的过程,为了方便以后对nginx和mariadb进行升级,这里采用yum的方式进行安装. 1.建立运行网站和数据库的用户和组 groupadd ...

  2. 详解zabbix安装部署(Server端篇)

    原文:http://blog.chinaunix.net/uid-25266990-id-3380929.html Linux下常用的系统监控软件有Nagios.Cacti.Zabbix.Monit等 ...

  3. Zabbix安装部署(CentOS系统下)

    zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统 ...

  4. zabbix安装部署(server部分)

    Linux下常用的系统监控软件有Nagios.Cacti.Zabbix.Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员. 今天开始研究下Zabbix,使 ...

  5. 详解zabbix安装部署(Server端篇) (转)

    Linux下常用的系统监控软件有Nagios.Cacti.Zabbix.Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员. 今天开始研究下Zabbix,使 ...

  6. Zabbix安装部署实践

    操作系统: [root@mysql ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) Mysql :     版本5.7 ...

  7. CentOS下Zabbix安装部署及汉化

    搭建环境:Centos6.5_x86_64,Zabbix2.4.5,epel 源 服务端: 1.安装开发软件包yum -y groupinstall "Development Tools&q ...

  8. centos-6.5安装部署LNMP环境

    安装部署前,确保安装了gcc和gcc-c++ 系统信息: [root@zww ~]# cat /etc/redhat-release CentOS release 6.5 (Final) [root@ ...

  9. centos6.8下安装部署LNMP(备注:nginx1.8.0+php5.6.10+mysql5.6.12)

    在平时运维工作中,经常需要用到LNMP应用框架.以下对LNMP环境部署记录下: 1)前期准备:为了安装顺利,建议先使用yum安装依赖库[root@opd ~]#yum install -y make ...

  10. Zabbix安装部署

    zabbix服务器端配置:(10.27.98.29服务器端) 1.安装lamp环境 yum -y install autoconf curl-devel gcc gcc-c++ httpd httpd ...

随机推荐

  1. JS模态框 简单案例

    演示: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8 ...

  2. Annotaion——深入理解注解类型

    什么是注解? 对于很多初次接触的开发者来说应该都有这个疑问?Annontation是Java5开始引入的新特征,中文名称叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metada ...

  3. 三款免费实用的文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance)

    三款免费实用的本地文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance) Microsoft SyncToy SyncToy 是由 微软 推出的一款免费 ...

  4. VMware 虚拟机centos下链接网络配置

    1.点击Network Adapter 设置如下图所示,首先我们在虚拟机中将网络配置设置成NAT, 2.计算机右键->管理->服务和应用程序->服务,启动如下两个服务 3.在etc/ ...

  5. html5(五)拖放

    http://www.w3school.com.cn/html5/html_5_draganddrop.asp http://www.cnblogs.com/return-false/p/332628 ...

  6. python命名空间与作用域

    python命名空间与作用域   命名空间是名称与对象之间的关系,可以将命名空间看做是字典,其中的键是名称,值是对象. 命名空间不共享名称. 在命名空间中的名称能将任何python对象作为值,在不同的 ...

  7. windows下《Go Web编程》之Go开发工具

    Go开发工具很多,比较喜欢的使用作者列出的第一个工具,LiteIDE.它是一款专门为Go语言开发的跨平台轻量级集成开发环境. 一.LiteIDE下载安装 下载地址:https://sourceforg ...

  8. 福大软工 · 第十一次作业 - Alpha 事后诸葛亮(团队)

    福大软工·第十一次作业-Alpha事后诸葛亮 组长博客链接 本次作业博客链接 项目Postmortem 模板 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描 ...

  9. Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮

    效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...

  10. shell脚本监测DNS链接状态给传给zabbix值

    #!/bin/sh time_out=0 querygt3s=0 i=1 while [[ $i -le 15 ]] do i=`expr $i + 1` sleep 2 while read lin ...