zoukankan      html  css  js  c++  java
  • 青蛙学Linux—Zabbix部署之构建LNMP环境

    Zabbix的部署非常简单,官方提供了Linux软件管理器如YUM、APT源;带操作系统的镜像ISO;虚拟机镜像;容器;源码和对应平台的安装包。

    这里通过源码安装Zabbix Server,通过RPM包安装Zabbix Agent。Zabbix Server和Zabbix Agent的版本均为3.4.15。

    Zabbix Server需要数据库来存储其收集到的信息,支持MySQL、Oracle、SQLite等数据库,这里选择MySQL。注意,Zabbix要求MySQL的版本在5.0.3-5.7.x,使用InnoDB引擎。注意:Zabbix 4.0之前的版本不支持MySQL 8.0。

    Zabbix Web需要Web服务和PHP支持。Web服务器可以使用Nginx和Apache,Apache要求在1.3.12或以上版本;PHP要求在5.4.0或以上版本,同时对PHP的扩展包也有要求,例如GD要求2.0或以上版本,libXML要求2.6.15或以上版本等。

    安装Zabbix 3.4的具体环境要求可参考以下链接:https://www.zabbix.com/documentation/3.4/manual/installation/requirements

    实验环境:

    • 主机A:操作系统CentOS 7.6.1810,IP地址192.168.0.86,安装Zabbix Server和Zabbix Web
    • 主机B:操作系统CentOS 7.6.1810,IP地址192.168.0.88,安装Zabbix Agent
    • 主机C:操作系统CentOS 7.6.1810,IP地址192.168.0.110,安装Zabbix Agent

    软件版本:

    • PHP: 7.1.26
    • Nginx: 1.14.2
    • MySQL: 5.7.25
    • Zabbix Agent:3.4.15
    • Zabbix Server:3.4.15

    1、源码安装Nginx

    Nginx安装路径/usr/local/nginx。

    创建虚拟用户www用于运行Nginx:

    [root@localhost ~]# useradd -s /sbin/nologin www

    安装依赖环境:

    [root@localhost ~]# yum install zlib pcre pcre-devel openssl openssl-devel

    解压源码包,进入源码目录,执行configure:

    [root@localhost nginx-1.14.2]# ./configure --prefix=/usr/local/nginx --user=www --group=www --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre

    configure执行完毕无报错,执行:

    [root@localhost nginx-1.14.2]# make && make install

    至此,Nginx安装完成。

    Nginx的配置和启动可以参考:https://www.cnblogs.com/yu2006070-01/p/10207152.html

    2、二进制包安装MySQL

    由于通过源码编译安装MySQL耗时过长,所以这里使用二进制包的方式安装MySQL。MySQL安装路径为/usr/local/mysql,数据存储路径为/db/mysql,日志文件路径/usr/local/mysql/logs,PID文件路径/var/run/mysqld/mysqld.pid。

    创建虚拟用户mysql用于运行MySQL:

    [root@localhost apps]# useradd -s /sbin/nologin mysql

    解压二进制包并拷贝到MySQL安装路径:

    [root@localhost apps]# tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
    [root@localhost apps]# cp -r mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/mysql

    创建MySQL数据存储目录并授权:

    [root@localhost apps]# mkdir -p /db/mysql
    [root@localhost apps]# chown -R mysql:mysql /db/mysql

    创建MySQL日志目录、日志文件并授权:

    [root@localhost apps]# mkdir /usr/local/mysql/logs
    [root@localhost apps]# touch /usr/local/mysql/logs/mysqld.log
    [root@localhost apps]# chown -R mysql:mysql /usr/local/mysql/logs

    创建PID文件目录并授权:

    [root@localhost apps]# mkdir /var/run/mysqld
    [root@localhost apps]# chown -R mysql:mysql /var/run/mysqld

    初始化MySQL:

    [root@localhost apps]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/db/mysql

    创建MySQL配置文件/etc/my.cnf,内容如下:

    [mysqld]
    datadir=/db/mysql
    socket=/tmp/mysql.sock
    pid-file=/var/run/mysqld/mysqld.pid
    symbolic-links=0
    
    [mysqld_safe]
    log-error=/usr/local/mysql/logs/mysqld.log
    
    [client]
    socket=/tmp/mysql.sock
    • 注意:Zabbix Server默认使用的MySQL socket文件名为mysql.sock,这里一定要设置成mysql.sock

    拷贝MySQL服务管理脚本到/etc/init.d目录下:

    [root@localhost apps]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    启动MySQL:

    [root@localhost apps]# /etc/init.d/mysqld start
    Starting MySQL. SUCCESS!

    3、源码安装PHP

    PHP安装路径/usr/local/php。

    安装依赖环境:

    [root@localhost apps]# yum install php-mcrypt libmcrypt libmcrypt-devel  autoconf  freetype freetype-devel gd libmcrypt libpng libpng-devel openjpeg openjpeg-devel  libjpeg libjpeg-devel  libxml2 libxml2-devel zlib curl curl-devel

    Zabbix需要PHP以下扩展:

    1

    解压PHP源码包并进入源码目录,执行configure(注意启用Zabbix需要的扩展):

    [root@localhost php-7.1.26]# ./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-gd --with-png-dir --with-jpeg-dir --with-freetype-dir --enable-bcmath --enable-ctype --enable-xml --enable-xmlreader --enable-xmlwriter --enable-session --enable-sockets --enable-mbstring --with-gettext --with-zlib --with-curl --with-openssl --enable-ftp --enable-pdo --enable-tokenizer --enable-zip

    configure执行完毕无报错后执行:

    [root@localhost php-7.1.26]# make && make install

    命令执行完毕无报错后,将PHP配置文件拷贝到安装目录下:

    [root@localhost php-7.1.26]# cp php.ini-production /usr/local/php/lib/php.ini

    在php.ini中找到以下内容并修改成指定的值(Zabbix要求):

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

    4、配置Nginx支持PHP

    Nginx通过PHP-FPM与PHP进行整合。

    拷贝PHP-FPM服务管理Unit到systemd目录下:

    [root@localhost php-7.1.26]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system

    开启PHP-FPM的两个配置文件:

    [root@localhost php-7.1.26]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    [root@localhost php-7.1.26]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

    启动PHP-FPM:

    [root@localhost php-7.1.26]# systemctl start php-fpm

    配置Nginx的location,使其支持PHP(PHP文件存储目录为/db/zabbix):

    location ~ .php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   /db/zabbix$fastcgi_script_name;
        include        fastcgi_params;
    }

    至此,Zabbix需要的LNMP环境配置完成。

  • 相关阅读:
    提高开发效率
    layer的alert图
    javascript改写 <select>checked的选中,并不会出发change事件,太好了!
    $.ajax 在请求没有完成,是可以往下继续执行js代码的
    解决 hibernate cannot define positional parameter after any named parameters have been defined
    el表达式便利map集合
    c/c++ 多线程 std::call_once的应用
    c/c++ 多线程 std::call_once
    c/c++ 多线程 unique_lock的使用
    c/c++ 多线程 层级锁
  • 原文地址:https://www.cnblogs.com/yu2006070-01/p/10345999.html
Copyright © 2011-2022 走看看