源码安装LNMP与搭建Zabbix

摘要:
Cp/usr/local/MySQL/support files/my-default.cnf/etc/my.cnf注意:旧版本名为my-media.cnf37。)将MySQL添加到系统服务:Cp/usr/local/MySQL/support-files/MySQL.server/etc/init.d/mysqld8。)修改配置文件:/etc/my.cnfbasedir#MySQL的安装目录datadir#mysq的数据目录端口号默认为3306server _ Id#唯一服务标识号,介于1和2^32-1之间。需要在主设备和从设备上设置此值。如果未设置“主主机”,则默认值为1。但是,如果忽略此选项,MySQL将不会作为主套接字#生效。请为MySQL客户端和服务器之间的本地通信指定一个套接字文件。不需要配置默认文件。如果要将套接字指定到另一个目录,请在编译时根据目录设置软连接。

系统环境:CentOS release 6.5 (Final)

搭建Zabbix 3.0对PHP环境要求>= 5.4

一、下载NMP的软件包:

N:wget http://nginx.org/download/nginx-1.8.0.tar.gz

P:wget http://cn2.php.net/distributions/php-5.6.28.tar.gz

M:https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.36.tar.gz

二、搭建LNMP平台

1、M

1.)检测系统自带的mysql-libs包,并进行卸载

2.)由于MySQL源码安装:从mysql5.5以后是通过cmake来编译的安装的,但cmake要依赖ncurses,所以你懂的,有需要依赖就装给它!

下载如下插件并编译安装:

ncurses:ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.8.tar.gz

cmake:https://cmake.org/files/v3.0/cmake-3.0.2.tar.gz

./configure           make ; make install

3.)编译安装Mysql

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=/tmp/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

#######编译参数详解:

# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装路径
# -DMYSQL_DATADIR=/usr/local/mysql/data \ #数据文件存放位置
# -DSYSCONFDIR=/etc \ #my.cnf路径
# -DWITH_MYISAM_STORAGE_ENGINE=1 \ #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1 \ #支持Memory引擎
# -DWITH_READLINE=1 \ #快捷键功能(我没用过)
# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ #连接数据库socket路径
# -DMYSQL_TCP_PORT=3306 \ #端口
# -DENABLED_LOCAL_INFILE=1 \ #允许从本地导入数据
# -DWITH_PARTITION_STORAGE_ENGINE=1 \ #安装支持数据库分区
# -DEXTRA_CHARSETS=all \ #安装所有的字符集
# -DDEFAULT_CHARSET=utf8 \ #默认字符

4.)安装完成后续的操作:

useradd mysql

chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /mysql/data/

5.)初始化数据库(初始完之后会在数据文件中生成一些文件)

cd /usr/local/MySQL/scripts

./mysql_install_db    --user=mysql    --basedir=/usr/local/MySQL  --datadir=/usr/local/MySQL/data

6.)copy主配置文件到/etc/。
cp /usr/local/MySQL/support-files/my-default.cnf     /etc/my.cnf
注意:老版本名称是my-medium.cnf3

7.)将mysql添加到系统服务:
cp /usr/local/MySQL/support-files/mysql.server     /etc/init.d/mysqld

8.)修改配置文件:/etc/my.cnf

basedir #mysql的安装目录
datadir #mysq的数据目录
port #端口号默认是3306

server_id # 唯一的服务辨识号,数值位于 1 到 2^32-1之间。此值在master和slave上都需要设置。如果 “master-host” 没有被设置,则默认为1,但是如果忽略此选项,MySQL不会作为master生效

socket  #为MySQL客户程序与服务器之间的本地通信指定一个套接字文件。默认文件中不用配置,若是想将socket指定其他目录请根据编译时的目录设置软连接。

9.)修改默认MySQL账户密码并允许root从任何主机远程连接服务器(和zabbix无关,可忽略)

mysql> use mysql;
mysql> update user set password=PASSWORD('123456') where user='root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; #开启远程登录
mysql> flush privileges;

10. )创建zabbix数据库

mysql> create database zabbix charset utf8;

mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';

mysql> flush privileges;

注意事项:

重新编译时,需要清除旧的对象文件和缓存信息。

#make clean

#rm -f CMakeCache.txt

#rm -rf /etc/my.cnf

也可以使用二进制文件不用编译快速安装,这是一个已经比源码包大很多的一个已经完成编译安装步骤的封装包,下载完之后需要对配置进行一些修改:
https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

2.N

1.)相关插件安装:yum -y install pcre-devel zlib zlib-devel openssl openssl-devel

2.)创建用户并编译安装:

groupadd www
useradd www -g www -s /sbin/nologin -M

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre
 make ; make install

3.P

1.)安装gd/curl/xml等开发库
yum install -y gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel

2.)解压编译并安装,如下参数是支持zabbix 3.0所必须安装的

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath

make ;make install

3.)收尾工作:

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/src/php-5.6.28/php.ini-production /usr/local/php/etc/php.ini

4.)启动php:/usr/local/php/sbin/php-fpm

5.)编辑nginx配置文件,验证是否可以访问php

user www www;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;

events
{
    use epoll;
    worker_connections 6000;
}
http
{
server
{
    listen 80;
    server_name localhost;
    index index.html index.htm index.php;
    root /usr/local/nginx/html;

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
    }
}
}

创建php测试页:
vim /usr/local/nginx/html/1.php
<?php
phpinfo();
?>
访问测试:http://address/1.php

三、搭建zabbix

1.)下载需要的插件:

yum install libdbi-dbd-mysql net-snmp-devel curl-devel net-snmp libcurl-devel libxml2-devel

2.)下载tar 包

wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz/download

3)解压编译安装 :

./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql=/usr/local/MySQL/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2

注意:--with-mysql=/usr/local/MySQL/bin/mysql_config:不这样写可能会出现找不到MySQL图书馆的错误。“路径根据环境写”

make&&makeinstall 

4.)创建用户: 

groupadd zabbix
useradd -g zabbix zabbix

5.)安装完后就进行数据库文件导入操作

cd/root/zabbix-3.0.4/database/mysql

 mysql -uzabbix -p zabbix < schema.sql
 mysql -uzabbix -p zabbix < images.sql
 mysql -uzabbix -p zabbix < data.sql

6.)配置PHP

vim  /usr/local/php/etc/php.ini

date.timezone = Asia/Shanghai
post_max_size = 16M
max_execution_time = 300
max_input_time = 300

7.)编辑配置文件

vim /usr/local/zabbix-server/etc/zabbix_server.conf

ListenPort=10051
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ListenIP=0.0.0.0

8.)启动Zabbix 并查看监听的端口

/usr/local/zabbix-server/sbin/zabbix_server-c/usr/local/zabbix-server/etc/zabbix_server.conf 

netstat-nplt|grepzabbix_server

9.)可能出现的错误

启动报错:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

提示lib错误方案:

cp /usr/local/MySQL/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

vim /etc/ld.so.conf →>》 /usr/local/MySQL/lib/libmysqlclient.so.18
ldconfig

安装完成zabbix启动mysql错误,解决方案:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

后台报错:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

116852:20170525:154449.330 Cannot connect to the database. Exiting...
zabbix_server [116907]: cannot recreate Zabbix semaphores for IPC key 0x7a004442 Semaphore ID 4294967295: [22] Invalid argument
zabbix_server [117197]: cannot recreate Zabbix semaphores for IPC key 0x7a004442 Semaphore ID 4294967295: [22] Invalid argument

++++++++++++++++++++++解决办法:ipcrm -S 0x7a004442

10291:20161122:091648.178 using configuration file: /etc/zabbix/zabbix_agentd.conf
10291:20161122:091648.178 cannot set resource limit: [13] Permission denied
10291:20161122:091648.178 cannot disable core dump, exiting...

++++++++++++++++++++++解决办法:setenforce 0

10)拷贝zabbix web文件到Nginx根目录

rm-fr/usr/local/nginx/html/*

cd/root/zabbix-3.0.4/frontends/php/

cp-a./usr/local/nginx/html/

chown-R www.www /usr/share/nginx/html/*

11.)配置Nginx

user  www;
worker_processes  5;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
    listen 80;
    server_name localhost;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log error;

    location / {
        root /usr/local/nginx/html;
        index index.html index.htm index.php;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/local/nginx/html;
    }

    location ~ \.php$ {
        root           /usr/local/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
 }

当上诉的配置完成后,依次启动各个服务后进入浏览器输入IP即可进入zabbix的配置面

12.)zabbix页面配置

PHP 配置检查界面,结果是 OK 表示正常,如果是 fail 状态,请修改相关的 php 配置参数,并重启php服务

源码安装LNMP与搭建Zabbix第1张
可能会出现的错误:PHP option "always_populate_raw_post_data" must be set to "-1"
解决方案:将php.ini中相应的注释去掉,重启php

13.)检查都通过后,就进入到下面这个界面,选择数据库及相关配置信息,其中有数据库地址、端口、用户名及密码。

源码安装LNMP与搭建Zabbix第2张

在操作连接数据库时可能会出现

The frontend does not match Zabbix database. Current database version (mandatory/optional): 2050061/2050061. Required mandatory version: 3000000. Contact your system administrator.

遇到这种问题需要删除一下创建的zabbix库,然后在从新导入zabbix库文件。

14.)数据库信息都填写正确之后,就会进入到下一步,如下图:

源码安装LNMP与搭建Zabbix第3张

这里出现权限报错,将配置文件下载下来保存到/usr/local/nginx/html/conf/zabbix.conf.php文件中。如果手动写入配置文件之后如果还报错,可以忽略,将浏览器关闭并重新打开连接即可。登录账号Admin,登录密码zabbix

15.)完成上面操作就安装完了,下面就进入到了Zabbix 3.0主界面。

源码安装LNMP与搭建Zabbix第4张

16.)点击页眉最右侧的小人头像进入如下界面配置语言

源码安装LNMP与搭建Zabbix第5张

17.)Zabbix缺省使用DejaVuSans字体来生成图表中的动态文字,所以在将界面切换成中文后,图表中的中文汉字会因为缺少对应的字体文件而现实不正常,汉字会显示为一个一个小方块。

(1)、windows操作系统 ----  控制面板 ---- 字体 ---- 自行选择一种字体复制出来再上传到zabbix服务器上。

源码安装LNMP与搭建Zabbix第6张

(2)上传到 /usr/local/nginx/html/fonts/,并且把TTF后缀改为ttf,然后修改/usr/local/nginx/html/include/defines.inc.php,将其中多处使用“DejaVuSans“的地方,替换为”SIMKAI“重启httpd服务,中文图表中的汉字就显示正常了。

至此zabbix的安装已经完成,不幸运的小伙伴搭建完成后可能会出现配置都对,但就是css样式无法加载,web页面只显示文字不显示图片的问题。我遇到过两次这种问题但是都没有解决,都是通过重新搭建修复的,我从网上找到了如下的解决方案,可以试试。ps:知道什么原因造成的小伙伴请评论留言。

zabbix web页面css样式不显示只显示文字问题:
查看nginx报错文件,若是有类似FastCGI sent in stderr: "Access to the script。。。这样子的错误,就去php配置文件里面更改这个文件:security.limit_extensions = .php .php3 .php4 .php5 .js .css .jpg .gif .png .jpeg .html .ico .bmp

免责声明:文章转载自《源码安装LNMP与搭建Zabbix》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SSD固态盘应用于Ceph集群的四种典型使用场景element日期时间段选择器的使用心得下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java+Selenium元素定位的八种方法(二)

Selenium自动化一般需要几个步骤操作:定位元素,获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动化出测试报告。 一、WebDriver API提供了8种元素定位的方法 1、id 2、name 3、class name 4、link text 5、Xpath 6、Css selector 7、tag name 8、part...

centos7安装配置mysql8

 centos7安装配置mysql8 第一步:下载mysql 百度云下载地址:链接:https://pan.baidu.com/s/1HPG0Yju9wd9T2VULZIb03g    提取码:z299 第二步:查找并卸载原有的mysql数据库        1、 使用rpm -qa | grep mysql 命令查找mysql数据库软件包及依赖包,若没有...

Linux编程 | 使用 make

目录 简单的 makefile 文件常规的 makefile 文件常用参数make 内置规则后缀和模式规则make 管理函数库 在Linux 环境中,make 是一个非常重要的编译命令。不管是自己进行项目还是安装应用软件,用户经常会用到 make 或 make install 命令。 make 与 makefile 文件 make 工具,可以将大型的...

php json_encode方法实现中文不被转为unicode

static public function test6() { //在数据库随便拿一条有中文的数据 $user = DB::table('users')->select('name','company')->where('id', '=', 3)->first(); //第一种序列化方式...

MySQL 主从复制:基于二进制文件复制配置详解

MySQL-主从复制:基于二进制文件复制详解 前言 主从复制是指把一个MySQL的数据库服务器作为主服务器(master),然后把master的数据复制到一个或者多个MySQL数据库服务器作为从服务器(slave)。从master到slave的复制一般是异步复制,所以从服务器的复制可以随时停止,也不会影响到主服务器的使用。可以通过配置来决定只复制哪些数据库...

.NET、NET Framewor以及.NET Core的关系(二)

什么是CLR,.NET虚拟机? 实际上,.NET不仅提供了自动内存管理的支持,他还提供了一些列的如类型安全、应用程序域、异常机制等支持,这些 都被统称为CLR公共语言运行库。 CLR是.NET类型系统的基础,所有的.NET技术都是建立在此之上,熟悉它可以帮助我们更好的理解框架组件的核心、原理。在我们执行托管代码之前,总会先运行这些运行库代码,通过运行库的代...