青蛙学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环境配置完成。

posted @ 2019-02-01 15:27  青蛙学Linux  阅读(253)  评论(0编辑  收藏  举报