1.  

#安装zabbix监控首先的先安装LNMP环境,在这里我采用事先准备好的脚本进行安装LNMP环境 脚本内容如下:

  1. #!/bin/bash
  2. # DATE:Wed Jan # hw226234@126.com #this is a lnmp-install
  3.  
  4. # The Nginx service is being installed
  5. ROOT_ID=
  6. ML=/usr/local/src
  7. NGINX_ML=/usr/local/src/nginx-1.12.
  8. PML=/usr/local/src/php-5.6.
  9. QD=`netstat -anpt | grep | awk '{print $7}' | cut -d "/" -f2 | cut -d ":" -f1`
  10. ADDR=`ip a | grep eth0$ | awk '{print $2}' | cut -d "/" -f1`
  11. MMM=`netstat -anput | grep mysqld | awk '{print $4}' | cut -d ":" -f4`
  12. MAR=`rpm -qa | grep mariadb`
  13. cd $ML && {
  14. wget http://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null
  15. mv Centos-.repo /etc/yum.repos.d/Centos-Base.repo
  16. yum clean all &> /dev/null
  17. yum makecache &> /dev/null
  18. }
  19.  
  20. if [ $? -eq ]
  21. then
  22. echo "Yum源更新完毕,开始安装!!!"
  23. else
  24. echo "Yum源error"
  25. exit
  26. fi
  27. echo "Yum源配置成功"
  28.  
  29. if [ "$UID" -eq "$ROOT_ID" ]
  30. then
  31. echo "root用户运行中" && systemctl stop firewalld && yum install -y gcc gcc-c++ pcre-devel zlib-devel openssl-devel &> /dev/null
  32. else
  33. echo "请使用Root用户运行"
  34. exit
  35. fi
  36. echo "依赖包安装完成!"
  37. cd $ML || {
  38. echo "进入目录失败!!!"
  39. exit
  40. }
  41.  
  42. wget http://nginx.org/download/nginx-1.12.2.tar.gz &> /dev/null && {
  43. tar zxf nginx-1.12..tar.gz && groupadd www && useradd -g www www -s /sbin/nologin
  44. }
  45. echo "Nginx包下载成功"
  46. cd $NGINX_ML && {
  47. ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www &> /dev/null && make &> /dev/null && make install &> /dev/null
  48. }
  49.  
  50. if [ $? -eq "" ]
  51. then
  52. ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin ;nginx && echo "Nginx启动成功,请访问http://$ADDR:80"
  53. else
  54. echo "Nginx启动失败!!!"
  55. exit
  56. fi
  57.  
  58. #Start installing MySQL5.!
  59. echo "开始下载MySQL二进制安装包,请稍等..."
  60. if [ -z "$MAR" ]
  61. then
  62. echo "开始安装MySQL"
  63. fi
  64. if [ -n "$MAR" ]
  65. then
  66. rpm -e mariadb-libs --nodeps && echo "卸载mariadb成功!正式安装MySQL"
  67. fi
  68.  
  69. cd $ML || {
  70. echo "进入目录失败!!!"
  71. exit
  72. }
  73.  
  74. #wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz &> /dev/null && {
  75. wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz && {
  76. tar zxf mysql-5.7.-linux-glibc2.-x86_64.tar.gz && mv mysql-5.7.-linux-glibc2.-x86_64 /usr/local/mysql
  77. cd /usr/local/mysql/ && mkdir data && mkdir log && echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
  78. source /etc/profile && groupadd mysql && useradd -r -g mysql -s /bin/false mysql
  79. }
  80. cat << EOF >/etc/my.cnf
  81. [client]
  82. socket=/usr/local/mysql/mysql.sock
  83. [mysqld]
  84. basedir=/usr/local/mysql
  85. datadir=/usr/local/mysql/data
  86. pid-file=/usr/local/mysql/data/mysqld.pid
  87. socket=/usr/local/mysql/mysql.sock
  88. log_error=/usr/local/mysql/log/mysql.err
  89. EOF
  90. if [ ! -d /etc/my.cnf ]
  91. then
  92. chmod data/ && chown -R mysql . && chgrp -R mysql . && bin/mysqld --initialize --user=mysql && cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start &> /dev/null
  93. else
  94. echo "错误!!!"
  95. fi
  96. if [ $? -eq "" ]
  97. then
  98. echo "MySQL正式安装完成杀青!"
  99. else
  100. echo "MySQL安装失败!!!"
  101. exit
  102. fi
  103. #PHP install sccessy
  104. yum -y install libxml2-devel libcurl-devel openssl-devel bzip2-devel &> /dev/null
  105. if [ $? -eq ]
  106. then
  107. echo "依赖包安装成功!!!"
  108. else
  109. echo "依赖包安装失败!!!"
  110. fi
  111. cd $ML || {
  112. echo "进入目录失败!!!"
  113. exit
  114. }
  115. wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz &> /dev/null && {
  116. tar zxf libmcrypt-2.5..tar.gz && cd libmcrypt-2.5./ && ./configure --prefix=/usr/local/libmcrypt &> /dev/null && make &> /dev/null && make install &> /dev/null
  117. }
  118. if [ $? -eq ]
  119. then
  120. echo "Libmcrypt安装成功!"
  121. else
  122. echo "Libmcrypt-ERROR!"
  123. exit
  124. fi
  125. # PHP install
  126. cd $ML || {
  127. echo "进入目录失败!!!"
  128. exit
  129. }
  130. wget http://cn2.php.net/distributions/php-5.6.27.tar.gz &> /dev/null && {
  131. tar zxf php-5.6..tar.gz && cd php-5.6./ && ./configure --prefix=/usr/local/php5. --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts &> /dev/null
  132. }
  133. if [ $? -eq ]
  134. then
  135. make &> /dev/null && make install &> /dev/null && echo "PHP编译安装成功,正在配置请稍等...."
  136. else
  137. echo "PHP安装失败"
  138. fi
  139. cd $PML || {
  140. echo "进入目录失败!!!"
  141. exit
  142. }
  143. cp php.ini-production /etc/php.ini && {
  144. cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm && chmod +x /etc/init.d/php-fpm && chkconfig --add php-fpm && chkconfig php-fpm on
  145. }
  146. if [ $? -eq ]
  147. then
  148. cp /usr/local/php5./etc/php-fpm.conf.default /usr/local/php5./etc/php-fpm.conf && echo "复制主配置成功"
  149. else
  150. echo "PHP权限失败,请重试!"
  151. fi
  152. if [ ! -d /usr/local/php5./etc/php-fpm.conf ]
  153. then
  154. sed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /usr/local/php5./etc/php-fpm.conf
  155. sed -i 's/listen = 127.0.0.1:9000/listen = 127.0.0.1:9000/g' /usr/local/php5./etc/php-fpm.conf
  156. sed -i 's/pm.max_children = 5/pm.max_children = 300/g' /usr/local/php5./etc/php-fpm.conf
  157. sed -i 's/pm.start_servers = 2/pm.start_servers = 20/g' /usr/local/php5./etc/php-fpm.conf
  158. sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g' /usr/local/php5./etc/php-fpm.conf
  159. sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g' /usr/local/php5./etc/php-fpm.conf
  160. else
  161. echo "NONONO"
  162. fi
  163. if [ $? -eq ]
  164. then
  165. systemctl start php-fpm && echo "PHP启动成功"
  166. else
  167. echo "启动PHP失败"
  168. fi
  169. #配置nginx解析php
  170. if [ ! -d /usr/local/nginx/conf/nginx.conf ]
  171. then
  172. sed -i 's/index index.html index.htm;/index index.php index.html index.htm;/g' /usr/local/nginx/conf/nginx.conf
  173. sed -i 's/# root html;/ root html;/g' /usr/local/nginx/conf/nginx.conf
  174. sed -i 's/# fastcgi_pass 127.0.0.1:9000;/ fastcgi_pass 127.0.0.1:9000;/g' /usr/local/nginx/conf/nginx.conf
  175. sed -i 's/# fastcgi_index index.php;/ fastcgi_index index.php;/g' /usr/local/nginx/conf/nginx.conf
  176. sed -i 's*# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;* fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;*g' /usr/local/nginx/conf/nginx.conf
  177. sed -i 's/# include fastcgi_params;/ include fastcgi.conf;/g' /usr/local/nginx/conf/nginx.conf
  178. sed -i '71d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;70a}' /usr/local/nginx/conf/nginx.conf
  179. sed -i '65d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;64alocation ~ \\.php$ {' /usr/local/nginx/conf/nginx.conf
  180. else
  181. echo "解析PHP失败!!!"
  182. fi
  183. touch /usr/local/nginx/html/phptest.php
  184. cat << EOF >/usr/local/nginx/html/phptest.php
  185. <?php
  186. phpinfo();
  187. ?>
  188. EOF
  189. if [ ! -d /usr/local/nginx/html/phptest.php ]
  190. then
  191. nginx -s reload && systemctl restart php-fpm
  192. else
  193. echo "测试目录文件失败"
  194. fi
  195. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo &> /dev/null && yum install -y sl &> /dev/null
  196. sl
  197. if [ $? -eq ]
  198. then
  199. echo "LNMP安装成功,请您访问http://$ADDR/phptest.php"
  200. else
  201. echo "安装失败"
  202. fi
  203. if [ $? -eq ]
  204. then
  205. echo "LNMP安装成功,请您访问http://$ADDR/phptest.php"
  206. else
  207. echo "安装失败"
  208. fi
  209. ###################################################################################################This is a lnmp-install~

以上为lnmp环境的搭建,不要准备包,全部在线下载,整个过程最多30分钟,这个只是基本的lnmp环境

如果说要安装zabbix4.0的话还需要满足他的先决条件,在这里我们一步步的来,遇到阻挡了再去安装。

zabbix4.0的先决条件先贴出来

Pre-requisite Minimum value Description
PHP version 5.4.0  
PHP memory_limit option 128MB In php.ini:
memory_limit = 128M
PHP post_max_size option 16MB In php.ini:
post_max_size = 16M
PHP upload_max_filesize option 2MB In php.ini:
upload_max_filesize = 2M
PHP max_execution_time option 300 seconds (values 0 and -1 are allowed) In php.ini:
max_execution_time = 300
PHP max_input_time option 300 seconds (values 0 and -1 are allowed) In php.ini:
max_input_time = 300
PHP session.auto_start option must be disabled In php.ini:
session.auto_start = 0
Database support One of: MySQL, Oracle, PostgreSQL, IBM DB2 One of the following modules must be installed:
mysql, oci8, pgsql, ibm_db2
bcmath   php-bcmath
mbstring   php-mbstring
PHP mbstring.func_overload option must be disabled In php.ini:
mbstring.func_overload = 0
PHP always_populate_raw_post_data option must be disabled Required only for PHP versions 5.6.0 or newer.
In php.ini:
always_populate_raw_post_data = -1
sockets   php-net-socket. Required for user script support.
gd 2.0 or higher php-gd. PHP GD extension must support PNG images (--with-png-dir), JPEG (--with-jpeg-dir) images and FreeType 2 (--with-freetype-dir).
libxml 2.6.15 php-xml or php5-dom
xmlwriter   php-xmlwriter
xmlreader   php-xmlreader
ctype   php-ctype
session   php-session
gettext   php-gettext
Since Zabbix 2.2.1, the PHP gettext extension is not a mandatory requirement for installing Zabbix. If gettext is not installed, the frontend will work as usual, however, the translations will not be available.

下面开始安装zabbix4.0

软件包下载地址:https://www.zabbix.com/download_sources

解压软件包:

  1. yum install -y net-snmp-devel
  1. tar zxf zabbix-4.0..tar.gz
  2. cd zabbix-4.0.
  3. ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

在这里有可能会发生报错:

现象1:

configure: error: Not found mysqlclient library

解决:将编译时的--with-mysql后面跟上数据库的安装路径

  1. make && make install

接下来是配置的修改

  1. cd /usr/src/zabbix-4.0./misc/init.d/
  2. cp fedora/core/zabbix_server /etc/init.d/
  3. cp fedora/core/zabbix_agentd /etc/init.d/
  4. vim /etc/init.d/zabbix_server
  5. BASEDIR=/usr/local/zabbix  #找到此行,并修改
  6. vim /etc/init.d/zabbix_agentd
  7. BASEDIR=/usr/local/zabbix  #找到此行,并修改

到这里安装成功,下面开始配置各项配置文件

  1. vim /usr/local/zabbix/etc/zabbix_server.conf
  2. DBHost=localhost #默认注释掉了,直接取消注释即可
  3. DBName=zabbix #数据库名字
  4. DBUser=zabbix #默认是root,我们授权的用户是zabbix
  5. DBPassword=zabbix #密码我们授权的也是zabbix

下面是数据库的导入与授权操作

1.先登录数据库

在这里也许你会不知道数据库该怎么登录,因为你并不知道数据库密码

初始密码获取方法:

  1. cat /usr/local/mysql/log/mysql.err | grep password

黄色框里面的就是数据库的初始密码了

登录数据库以后必须更改初密码,否则无法进行建库等操作

更改密码:

  1. use mysql;
  2. update user set password=password('mysql') where user='root';
  3. flush privileges;
  4. create database zabbix;
  5. grant all on zabbix.* to zabbix@'localhost' identified by 'zabbixmysql';
    6 flush privileges;

接下来是导入数据库:

  1. cd /usr/src/zabbix-4.0.
  2. mysql -uzabbix -pzabbixmysql zabbix < database/mysql/schema.sql
  3. mysql -uzabbix -pzabbixmysql zabbix < database/mysql/images.sql
  4. mysql -uzabbix -pzabbixmysql zabbix < database/mysql/data.sql

下面我们可以写一个数据库连通性的测试页面放到nginx的html目录下:

  1. vim /usr/local/nginx/html/mysqltest.php
  1. <?php
  2. $link=mysql_connect('localhost','zabbix','zabbix');
  3. if($link) echo "<h1>The database connection was successful!</h1>";
  4. else echo "<h1>The database connection was Fail!!</h1>";
  5. mysql_close();
  6. ?>

浏览器访问nginx的IP后面加上测试文件文件名出先下面内容则代表连接成功:

接下来就是进入zabbix的web界面了,这时候需要把前端文件copy到nginx的HTML目录下

  1. mkdir /usr/local/nginx/html/zabbix
  2. cd /usr/src/zabbix-4.0./frontends/php/
  3. cp * /usr/local/nginx/html/zabbix/

进入web界面:http://ip/zabbix/

下面是安装过程遇到的问题

提示不满足zabbix的先决条件

根据提示去更改php.ini的相关数值,参考上面的先决条件

在这个过程可能会涉及到php模块的安装,可以参考php扩展模块的安装方法安装就能完成

php扩展模块安装方法:https://www.cnblogs.com/hw226234/p/9777616.html

zabbix4.0的安装与配置的更多相关文章

  1. zabbix4.0 本地安装详解及步骤

    安装前说明下,下面安装过程中涉及selinux部分仅供参考,可能会导致启动服务时产生各种报错,作者也是在折腾了无数日夜后报错不断而放弃治疗,直接永久关闭了selinux(啊,没有selinux的日子真 ...

  2. centos zabbix4.0编译安装

    zabbix的部署原理 zabbix server需要把监控数据入sql数据库,所以得Mysql环境 zabbix的web是基于php开发的,所以得LNMP环境 部署zabbix server和zab ...

  3. CentOS-7.0.中安装与配置Tomcat-7的方法

    安装说明 安装环境:CentOS-7.0.1406安装方式:源码安装 软件:apache-tomcat-7.0.29.tar.gz 下载地址:http://tomcat.apache.org/down ...

  4. Solr(5.1.0) 与Tomcat 从0开始安装与配置

    1.什么是Solr? Solr是一个基于Lucene的Java搜索引擎服务器.Solr 提供了层面搜索.命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式).它易于安装和配置 ...

  5. Yii2.0的安装与配置教程

    版权声明:本文为博主原创文章,未经博主允许不得转载. PHP版本需求:PHP5.4.0以上,因为Yii2.0基于PHP5.4以上版本进行了完全重写. 目前有两种方法可以安装Yii2.0,一种是安装Co ...

  6. Win10+vs2012+cuda8.0的安装与配置

    安装环境说明:NVDIA GeForce 930M.Intel(R) HD Graphics 520 显卡和cuda需要兼容匹配,我一开始下载的cuda6.5无法安装,所以又重新下了比较新的cuda8 ...

  7. mongodb 3.0下载安装、配置及mongodb最新特性、基本命令教程详细介绍

    mongoDB简介(本文由www.169it.com搜集整理) MongoDB是一个高性能,开源,无模式的文档型数据库,是目前在IT行业非常流行的一种非关系型数据库(NoSql).它在许多场景下可用于 ...

  8. Apache2.4.34 + php 7.28 + MySQL8.0.12 安装及配置

    服务端的学习 Apache2.4.34 的安装及配置 1.基本安装 最新的 Apache 已经不提供 Windows 的安装版本,所以我们这里使用的是解压版 -下载地址:https://www.apa ...

  9. AndroidStudio3.0的安装和配置笔记

    开发Android项目要搭建开发环境.可以选择使用Eclipse安装ADT插件来开发安卓项目,也可以使用谷歌的官方IDE——AndroidStudio3.0. AndroidStudio3.0安装的具 ...

随机推荐

  1. list查询

    public List<MISSINGISTEMS> getMissList(MISSINGISTEMS missingistems) throws Exception { List< ...

  2. 《C++Primer》第五版习题答案--第一章【学习笔记】

    C++Primer第五版习题解答---第一章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2022/1/7 第一章:开始 练习1.3 #includ ...

  3. 【记】VirtualBox安装CentOS6

    推荐随笔 VirtualBox中安装CentOS-6.6虚拟机 问题1: 在选择虚拟硬盘大小时,最好不要用默认的8G 我的分区 /boot 200M swap 1024M /home 4096M / ...

  4. 字符串String类常见算法题

    1.将一个字符串进行反转.将字符串中指定部分进行反转. public class StringDemo { //方式一:转换为char[] public String reverse(String s ...

  5. Promise里的代码为什么比setTimeout先执行

    当浏览器或者Node拿到一段代码时首先做的就是传递给JavaScript引擎,并且要求它去执行. 然而,执行 JavaScript 并非一锤子买卖,宿主环境当遇到一些事件时,会继续把一段代码传递给 J ...

  6. 01.flask pycharm开启debug模式

    代码照旧

  7. redis 数据类型之列表

    1.lpush lpush(name,values) # 在name对应的list中添加元素,每个新的元素都添加到列表的最左边 # 如: # conn.lpush('oo', 11,22,33) # ...

  8. Qt Installer Framework翻译(3-1)

    初始化安装 下图说明了安装应用程序的默认工作流程: 本节使用在macOS上运行的Your Application Installer示例来说明默认工作流程.安装程序具有本地化外观,并可感知每个受支持的 ...

  9. Linux中两个重要的基础服务

    本文服务器基于centos7,客户端Windows10 FTP FTP(File Transfer Protocol),文件传输协议,是一个比较古老的基于TCP,用于不同计算机间传递文件的协议. 安装 ...

  10. .net core 3.1 DbFirst mysql

    这是一套完全配置正确的方式 创建项目此步骤省略 打开nuget 搜索 Pomelo.EntityFrameworkCore.MySql 添加完毕该引用之后nuget 搜索 Microsoft.Enti ...