一、简介

  1、由于zabbix是php得,所有lnmp环境这里测试用的上一个实验环境,请查看https://www.cnblogs.com/zhangxingeng/p/10330735.html ;

  2、就是上一个例子得架构图加上zabbix,架构图如下;

  

  3、系统环境CentOS Linux release 7.6.1810 (Core);

  4、zabbix4,就zabbix3来说,安装起来还是很简单得,这次测试zabbix4.0+

  5、添加zabbix源;

  

yum install http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

  注意:如果不是使用这个源,出现如下这个报错那么请更换正确得源就能解决

  

 Error: Package: zabbix-server-mysql-4.0.-.el7.x86_64 (zabbix)
Requires: libiksemel.so.3()(64bit)

二、开始部署(由于动静分离架构,稍微麻烦些)

    

  1、web5-55-php-fpm 部署zabbix动态内容

   安装依赖,zabbix没有单独得包,安装zabbix-server-mysql即可

   zabbix-server-mysql    #主程序包及数据库文件

      zabbix-web-mysql   #

   zabbix-get  #为了便于agent端发起测试采集数据请求用得

   iksemel

   libiksemel   Required for Jabber support.

   fping  Required for ICMP ping items.

     yum install -y  zabbix-server-mysql zabbix-web-mysql

   yum install zabbix-get

 Installed:
zabbix-server-mysql.x86_64 :4.0.-.el7 Dependency Installed:
OpenIPMI-libs.x86_64 :2.0.-.el7 OpenIPMI-modalias.x86_64 :2.0.-.el7 iksemel.x86_64 :1.4-.el7.centos Complete!

  

 [root@web5 yum.repos.d]# rpm -qa |grep zabbix
zabbix-server-mysql-4.0.-.el7.x86_64
zabbix-get-4.0.-.el7.x86_64
zabbix-release-4.0-.el7.noarch
zabbix-web-mysql-4.2.-.3alpha3.el7.noarch
zabbix-web-4.2.-.3alpha3.el7.noarch
[root@web5 yum.repos.d]#

  然后看一下文档

 [root@web5 yum.repos.d]# rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-4.0.
/usr/share/doc/zabbix-server-mysql-4.0./AUTHORS
/usr/share/doc/zabbix-server-mysql-4.0./COPYING
/usr/share/doc/zabbix-server-mysql-4.0./ChangeLog
/usr/share/doc/zabbix-server-mysql-4.0./NEWS
/usr/share/doc/zabbix-server-mysql-4.0./README
/usr/share/doc/zabbix-server-mysql-4.0.4/create.sql.gz #zabbix数据库sql脚本
/usr/share/man/man8/zabbix_server..gz
/var/log/zabbix
/var/run/zabbix

  2、初始化数据库

    2.1、准备好数据库机器mysql1,ip-56

    关闭selinux,firewall,安装数据库

    yum install  mariadb-embedded mariadb-libs mariadb-bench mariadb mariadb-server

    systemctl start mariadb

    systemctl enable mariadb

 [root@mysql1 /]# netstat -untlp | grep
tcp 0.0.0.0:3306 0.0.0.0:* LISTEN /mysqld

    2.2、创建zabbix数据库及zabbix用户

 CREATE DATABASE zabbix character set utf8 collate utf8_bin;   

 GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';

 MariaDB [mysql]> flush privileges;

      2.3、修改数据库root密码

 [root@mysql1 /]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is
Server version: 5.5.-MariaDB MariaDB Server Copyright (c) , , Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
MariaDB [mysql]> update user set password=password('newpassword') where user='root';
Query OK, rows affected (0.01 sec)
Rows matched: Changed: Warnings: 0

MariaDB [mysql]> flush privileges;

 

    测试web5-55  测试连接数据库

 [root@web5 web]# vim index.php 

 <?php
#echo ("");
$link=mysql_connect('192.168.216.56','zabbix','admin123');
if($link) echo "<h1>The database connection was successful!</h1>";
else echo "<h1>The database connection was Fail!!</h1>";
mysql_close();
# phpinfo();
?>

   2.4、解压缩zabbix数据库脚本,并发送到数据库服务器

    gunzip /usr/share/doc/zabbix-server-mysql-4.0.4/create.sql.gz

    cd /usr/share/doc/zabbix-server-mysql-4.0.4/

    scp create.sql root@192.168.216.56:/

   2.5、导入数据库

    mysql -uroot zabbix < /create.sql  -p

  3、配置nginx

    web2-52 -nginx,配置文件

  

 [root@web2 zabbix]# cat /etc/nginx/conf.d/default.conf
upstream php-cluster {
#server 127.0.0.1: max_fails= fail_timeout=10s;        #首先注释本地得php-fpm
server 192.168.216.55:9000 max_fails=3 fail_timeout=10s;
} server {
listen ;
server_name 192.168.216.52;
index index.html index.htm index.phpi;
root /usr/share/zabbix;                          #更换web目,zabbix默认目录,测试无所事先用默认得吧
location / { root /usr/share/nginx/html;                          
} location ~.*\.php$ { fastcgi_pass php-cluster;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

  4、配置zabbix 

    web5-55

    4.1、修改zabbix配置

    vim  /etc/zabbix/zabbix_server.conf

    修改下面几项即可

  

 ### Option: DBHost
DBHost=192.168.216.56
### Option: DBName
# DBName=
DBName=zabbix
# DBUser=
DBUser=zabbix
### Option: DBPassword
DBPassword=admin123

    systemctl start zabbix-server    

    4.2、解决error问题

    测试访问www.web1.com/index.php,报错500,网上查询说display_errors没配置得原因,这里可以设置成on

    问题1、网页返回500错误码,修改display_errors

    web5-55

    vim /etc/php.ini

    display_errors = On

    systemctl restart php-fpm

 display_errors
错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项。错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。推荐关闭此选项。
display_errors = On
开启状态下,若出现错误,则报错,出现错误提示
dispaly_errors = Off
关闭状态下,若出现错误,则提示:服务器错误。但是不会出现错误提示

    问题2、269的warning,给权限

    再次访问www.web1.com/index.php,发现是269得warning,因为是nginx启动得php-fpm我们可以给一下权限

 Warning: require_once(/etc/zabbix/web/maintenance.inc.php): failed to open stream: Permission denied in /usr/share/zabbix/include/classes/core/ZBase.php on line  Fatal error: require_once(): Failed opening required '/etc/zabbix/web/maintenance.inc.php' (include_path='.:') in /usr/share/zabbix/include/classes/core/ZBase.php on line 

   chown nginx:nginx -R /etc/zabbix

   chown nginx:nginx -R /usr/share/zabbix

   chmod 755 -R /etc/zabbix

   chmod 755 -R /usr/share/zabbix

  

   问题3、没有图片效果,因为架构是动静分离,所以静态内容需要放到静态服务器上

   

    先访问一下,什么鬼,文字模式,没有图片效果

    我们先用访问192.168.216.52/index.php,效果一样,也是文字模式,那我们看一下nginx的error.log

    tail -5  /var/log/nginx/error.log

 
 // :: [error] #: * open() "/usr/share/zabbix/styles/blue-theme.css" failed (: No such file or directory), client: 192.168.216.1, server: 192.168.216.52, request: "GET /styles/blue-theme.css HTTP/1.1", host: "192.168.216.52", referrer: "http://192.168.216.52/setup.php"
// :: [error] #: * open() "/usr/share/zabbix/js/browsers.js" failed (: No such file or directory), client: 192.168.216.1, server: 192.168.216.52, request: "GET /js/browsers.js HTTP/1.1", host: "192.168.216.52", referrer: "http://192.168.216.52/setup.php"
// :: [error] #: * open() "/usr/share/zabbix/js/browsers.js" failed (: No such file or directory), client: 192.168.216.1, server: 192.168.216.52, request: "GET /js/browsers.js HTTP/1.1", host: "192.168.216.52", referrer: "http://192.168.216.52/setup.php"
// :: [error] #: * open() "/usr/share/zabbix/styles/blue-theme.css" failed (: No such file or directory), client: 192.168.216.1, server: 192.168.216.52, request: "GET /styles/blue-theme.css HTTP/1.1", host: "192.168.216.52", referrer: "http://192.168.216.52/setup.php"

    提示没有找到/usr/share/zabbix/styles,/usr/share/zabbix/js,提示找不到这两个目录,我们把目录复制过来,看看,为了方便可以先把所有目录一起复制过来

  web5

  cd /usr/share/

  tar -jcvf zabbix.tar.bz2 zabbix

  scp zabbix.tar.bz2 root@192.168.216.52:/

  web2

  cd /

  tar -jxvf zabbix.tar.bz2

  完成在访问一下,成功

  

  那么放在  httpd服务器的效果那

  web5-55

  scp zabbix.tar.bz2 root@192.168.216.54:/

  web4-54

  cd /

  tar -jxvf zabbix.tar.bz2

  chown -R apache:apache zabbix

  vim /etc/httpd/conf/httpd.conf

 

 DocumentRoot "/zabbix"
<Directory "/zabbix">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
<Directory "/zabbix">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks #
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None #
# Controls who can get stuff from this server.
#
Require all granted
</Directory>

  systemctl restart httpd

  访问一下www.web1.com/index.php

三、开始配置zabbix

  1、welcome,进入zabbix界面我们开始部署,点next

    2、check of pre-requisites

    编辑解决这三个问题

    web5

    vim /etc/php.ini

    post_max_size = 16M         # PHP将接受的POST数据的最大大小

    max_execution_time = 300 #每个脚本最大执行时间

    max_input_time = 300        #每个脚本可能花费在解析请求数据上的最大时间

    systemctl restart php-fpm

    刷新网页

  

  3、configure  DB connect

  4、zabbix server details

  5、pre-installation summary

  6、insatll

下面几步,请参考Centos7+lnmp+zabbix+分离mysql实验

总结,这个例子主要是试试看的心态,并没有向下做下去,下一篇只对zabbix---》mysql做分离实验。并介绍一些用法。谢谢

转载请注明出处:https://www.cnblogs.com/zhangxingeng/p/10402917.html

Centos7 nginx 虚拟主机、反向代理服务器及负载均衡,多台主机分离php-fpm实验,之强化篇,部署zabbix为例的更多相关文章

  1. 简单聊聊不可或缺的Nginx反向代理服务器--实现负载均衡【上篇】

    今天又是新的一周,我养足了精神去对待新一周的工作,但是今天到公司发现还是有一点空闲时间的,所以就想与之前接触过的Nginx再交往得更深一点儿. 什么是Nginx: Nginx是一款高性能的http服务 ...

  2. Nginx代理与反向代理、负载均衡实

    通过 Nginx 提供的反向代理和负载均衡功能,可以合理的完成业务的分配,提高网站的处理能力:同时利用缓存功能,还可以将不需要实时更新的动态页面输出结果,转化为静态网页形成缓存,从而提高网站的响应速度 ...

  3. Nginx代理与反向代理、负载均衡实践

    通过 Nginx 提供的反向代理和负载均衡功能,可以合理的完成业务的分配,提高网站的处理能力;同时利用缓存功能,还可以将不需要实时更新的动态页面输出结果,转化为静态网页形成缓存,从而提高网站的响应速度 ...

  4. nginx 虚拟主机、反向代理服务器及负载均衡,多台主机分离php-fpm实验

    一.简介 本章介绍一些架构原理基础知识, 1.1.LNMP及php-fpm 请参考https://www.cnblogs.com/zhangxingeng/p/10242902.html 1.2.透明 ...

  5. nginx详解反向代理、负载均衡、LNMP架构上线动态网站(week4_day1_part1)-技术流ken

    nginx介绍 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理 ...

  6. nginx详解反向代理、负载均衡、LNMP架构上线动态网站

    简介 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.N ...

  7. Nginx服务器 之反向代理与负载均衡

    一.反向代理 正向代理: 客户端要获取的资源就在服务器上,客户端请求的资源路径就是最终响应资源的服务器路径,这就是正向代理.正向代理的特点:就是我们明确知道要访问哪个网站地址. 反向代理: 客户端想获 ...

  8. Nginx的upstream反向代理、负载均衡详解

    这篇文章的前提是已经配置好了NGINX,而且tomcat已经配置好了,而且能能够访问了. 说反向代理之前,我们先看看正向代理,正向代理也是大家最常接触的到的代理模式. 正向代理最大的特点是客户端非常明 ...

  9. 循序渐进nginx(二):反向代理、负载均衡、缓存服务、静态资源访问

    目录 反向代理 使用 1.创建代理目标服务端: 2.配置nginx反向代理目标服务端: 3.测试使用: 负载均衡 使用 1.准备服务端 2.修改nginx配置 3.测试 负载均衡策略 负载均衡的额外参 ...

  10. 使用Nginx实现服务器反向代理和负载均衡

    前言 同事总问我Nginx做反向代理负载均衡的问题,因此特意留下一篇扫盲贴! 直接部署服务器的风险 假设,我开发了一个网站,然后买了一台Web服务器和一台数据库服务器,直接部署到公共网络上.如下图,网 ...

随机推荐

  1. spring boot入门篇,helloworld案例演示

    为什么用spring boot? 嵌入的 Tomcat,无需部署 WAR 文件 简化 Maven 配置 无需 XML 配置,轻松快速地搭建Spring Web应用 开始学习SpringBoot 构建简 ...

  2. 爬虫之ssh证书警告错误

    错误信息: 错误信息如下: requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_proce ...

  3. JVM GC-----垃圾回收算法

    说到Java,一定绕不开GC,尽管不是Java首创的,但Java一定是使用GC的代表.GC就是垃圾回收,更直接点说就是内存回收.是对内存进行整理,从而使内存的使用尽可能大的被复用. 一直想好好写一篇关 ...

  4. Codeforces Round #483 (Div. 2) C. Finite or not?

    C. Finite or not? time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  5. 关于input的一些问题解决方法分享

    前言 input是我们接受来自用户的数据常用标签,在前端开发中,相信每个人都会用到这个标签,所以在开发过程中也时候也会遇到一些问题,本文的内容是我在跟input相爱相杀过程中产生的,在此记录分享一下. ...

  6. Linux设置开放一个端口

    修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条. -A RH-Firewall-1-INPUT -m state --state ...

  7. linux线程及互斥锁

    进程是资源管理的最小单元,线程是程序执行的最小单元.在操作系统的设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销. 就像进程有一个PID一样,每个线程也有 ...

  8. 【Java入门提高篇】Java集合类详解(一)

    今天来看看Java里的一个大家伙,那就是集合. 集合嘛,就跟它的名字那样,是一群人多势众的家伙,如果你学过高数,没错,就跟里面说的集合是一个概念,就是一堆对象的集合体.集合就是用来存放和管理其他类对象 ...

  9. 全局唯一ID发号器的几个思路

    标识(ID / Identifier)是无处不在的,生成标识的主体是人,那么它就是一个命名过程,如果是计算机,那么它就是一个生成过程.如何保证分布式系统下,并行生成标识的唯一与标识的命名空间有着密不可 ...

  10. LINUX PID 1和SYSTEMD 专题

    Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) idle进程其pid=0,其前身是系统创建的第一个进程,也是唯一一个 ...