zabbix4.0的安装与配置
#安装zabbix监控首先的先安装LNMP环境,在这里我采用事先准备好的脚本进行安装LNMP环境 脚本内容如下:
#!/bin/bash
# DATE:Wed Jan # hw226234@126.com #this is a lnmp-install # The Nginx service is being installed
ROOT_ID=
ML=/usr/local/src
NGINX_ML=/usr/local/src/nginx-1.12.
PML=/usr/local/src/php-5.6.
QD=`netstat -anpt | grep | awk '{print $7}' | cut -d "/" -f2 | cut -d ":" -f1`
ADDR=`ip a | grep eth0$ | awk '{print $2}' | cut -d "/" -f1`
MMM=`netstat -anput | grep mysqld | awk '{print $4}' | cut -d ":" -f4`
MAR=`rpm -qa | grep mariadb`
cd $ML && {
wget http://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null
mv Centos-.repo /etc/yum.repos.d/Centos-Base.repo
yum clean all &> /dev/null
yum makecache &> /dev/null
} if [ $? -eq ]
then
echo "Yum源更新完毕,开始安装!!!"
else
echo "Yum源error"
exit
fi
echo "Yum源配置成功" if [ "$UID" -eq "$ROOT_ID" ]
then
echo "root用户运行中" && systemctl stop firewalld && yum install -y gcc gcc-c++ pcre-devel zlib-devel openssl-devel &> /dev/null
else
echo "请使用Root用户运行"
exit
fi
echo "依赖包安装完成!"
cd $ML || {
echo "进入目录失败!!!"
exit
} wget http://nginx.org/download/nginx-1.12.2.tar.gz &> /dev/null && {
tar zxf nginx-1.12..tar.gz && groupadd www && useradd -g www www -s /sbin/nologin
}
echo "Nginx包下载成功"
cd $NGINX_ML && {
./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
} if [ $? -eq "" ]
then
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin ;nginx && echo "Nginx启动成功,请访问http://$ADDR:80"
else
echo "Nginx启动失败!!!"
exit
fi #Start installing MySQL5.!
echo "开始下载MySQL二进制安装包,请稍等..."
if [ -z "$MAR" ]
then
echo "开始安装MySQL"
fi
if [ -n "$MAR" ]
then
rpm -e mariadb-libs --nodeps && echo "卸载mariadb成功!正式安装MySQL"
fi cd $ML || {
echo "进入目录失败!!!"
exit
} #wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz &> /dev/null && {
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz && {
tar zxf mysql-5.7.-linux-glibc2.-x86_64.tar.gz && mv mysql-5.7.-linux-glibc2.-x86_64 /usr/local/mysql
cd /usr/local/mysql/ && mkdir data && mkdir log && echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile && groupadd mysql && useradd -r -g mysql -s /bin/false mysql
}
cat << EOF >/etc/my.cnf
[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/mysql.sock
log_error=/usr/local/mysql/log/mysql.err
EOF
if [ ! -d /etc/my.cnf ]
then
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
else
echo "错误!!!"
fi
if [ $? -eq "" ]
then
echo "MySQL正式安装完成杀青!"
else
echo "MySQL安装失败!!!"
exit
fi
#PHP install sccessy
yum -y install libxml2-devel libcurl-devel openssl-devel bzip2-devel &> /dev/null
if [ $? -eq ]
then
echo "依赖包安装成功!!!"
else
echo "依赖包安装失败!!!"
fi
cd $ML || {
echo "进入目录失败!!!"
exit
}
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz &> /dev/null && {
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
}
if [ $? -eq ]
then
echo "Libmcrypt安装成功!"
else
echo "Libmcrypt-ERROR!"
exit
fi
# PHP install
cd $ML || {
echo "进入目录失败!!!"
exit
}
wget http://cn2.php.net/distributions/php-5.6.27.tar.gz &> /dev/null && {
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
}
if [ $? -eq ]
then
make &> /dev/null && make install &> /dev/null && echo "PHP编译安装成功,正在配置请稍等...."
else
echo "PHP安装失败"
fi
cd $PML || {
echo "进入目录失败!!!"
exit
}
cp php.ini-production /etc/php.ini && {
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
}
if [ $? -eq ]
then
cp /usr/local/php5./etc/php-fpm.conf.default /usr/local/php5./etc/php-fpm.conf && echo "复制主配置成功"
else
echo "PHP权限失败,请重试!"
fi
if [ ! -d /usr/local/php5./etc/php-fpm.conf ]
then
sed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' /usr/local/php5./etc/php-fpm.conf
sed -i 's/listen = 127.0.0.1:9000/listen = 127.0.0.1:9000/g' /usr/local/php5./etc/php-fpm.conf
sed -i 's/pm.max_children = 5/pm.max_children = 300/g' /usr/local/php5./etc/php-fpm.conf
sed -i 's/pm.start_servers = 2/pm.start_servers = 20/g' /usr/local/php5./etc/php-fpm.conf
sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g' /usr/local/php5./etc/php-fpm.conf
sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g' /usr/local/php5./etc/php-fpm.conf
else
echo "NONONO"
fi
if [ $? -eq ]
then
systemctl start php-fpm && echo "PHP启动成功"
else
echo "启动PHP失败"
fi
#配置nginx解析php
if [ ! -d /usr/local/nginx/conf/nginx.conf ]
then
sed -i 's/index index.html index.htm;/index index.php index.html index.htm;/g' /usr/local/nginx/conf/nginx.conf
sed -i 's/# root html;/ root html;/g' /usr/local/nginx/conf/nginx.conf
sed -i 's/# fastcgi_pass 127.0.0.1:9000;/ fastcgi_pass 127.0.0.1:9000;/g' /usr/local/nginx/conf/nginx.conf
sed -i 's/# fastcgi_index index.php;/ fastcgi_index index.php;/g' /usr/local/nginx/conf/nginx.conf
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
sed -i 's/# include fastcgi_params;/ include fastcgi.conf;/g' /usr/local/nginx/conf/nginx.conf
sed -i '71d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;70a}' /usr/local/nginx/conf/nginx.conf
sed -i '65d' /usr/local/nginx/conf/nginx.conf && sed -i 'N;64alocation ~ \\.php$ {' /usr/local/nginx/conf/nginx.conf
else
echo "解析PHP失败!!!"
fi
touch /usr/local/nginx/html/phptest.php
cat << EOF >/usr/local/nginx/html/phptest.php
<?php
phpinfo();
?>
EOF
if [ ! -d /usr/local/nginx/html/phptest.php ]
then
nginx -s reload && systemctl restart php-fpm
else
echo "测试目录文件失败"
fi
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo &> /dev/null && yum install -y sl &> /dev/null
sl
if [ $? -eq ]
then
echo "LNMP安装成功,请您访问http://$ADDR/phptest.php"
else
echo "安装失败"
fi
if [ $? -eq ]
then
echo "LNMP安装成功,请您访问http://$ADDR/phptest.php"
else
echo "安装失败"
fi
###################################################################################################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
解压软件包:
yum install -y net-snmp-devel
tar zxf zabbix-4.0..tar.gz
cd zabbix-4.0.
./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后面跟上数据库的安装路径
make && make install
接下来是配置的修改
cd /usr/src/zabbix-4.0./misc/init.d/
cp fedora/core/zabbix_server /etc/init.d/
cp fedora/core/zabbix_agentd /etc/init.d/
vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix #找到此行,并修改
vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix #找到此行,并修改
到这里安装成功,下面开始配置各项配置文件
vim /usr/local/zabbix/etc/zabbix_server.conf
DBHost=localhost #默认注释掉了,直接取消注释即可
DBName=zabbix #数据库名字
DBUser=zabbix #默认是root,我们授权的用户是zabbix
DBPassword=zabbix #密码我们授权的也是zabbix
下面是数据库的导入与授权操作
1.先登录数据库
在这里也许你会不知道数据库该怎么登录,因为你并不知道数据库密码
初始密码获取方法:
cat /usr/local/mysql/log/mysql.err | grep password

黄色框里面的就是数据库的初始密码了
登录数据库以后必须更改初密码,否则无法进行建库等操作
更改密码:
use mysql;
update user set password=password('mysql') where user='root';
flush privileges;
create database zabbix;
grant all on zabbix.* to zabbix@'localhost' identified by 'zabbixmysql';
6 flush privileges;
接下来是导入数据库:
cd /usr/src/zabbix-4.0.
mysql -uzabbix -pzabbixmysql zabbix < database/mysql/schema.sql
mysql -uzabbix -pzabbixmysql zabbix < database/mysql/images.sql
mysql -uzabbix -pzabbixmysql zabbix < database/mysql/data.sql
下面我们可以写一个数据库连通性的测试页面放到nginx的html目录下:
vim /usr/local/nginx/html/mysqltest.php
<?php
$link=mysql_connect('localhost','zabbix','zabbix');
if($link) echo "<h1>The database connection was successful!</h1>";
else echo "<h1>The database connection was Fail!!</h1>";
mysql_close();
?>
浏览器访问nginx的IP后面加上测试文件文件名出先下面内容则代表连接成功:

接下来就是进入zabbix的web界面了,这时候需要把前端文件copy到nginx的HTML目录下
mkdir /usr/local/nginx/html/zabbix
cd /usr/src/zabbix-4.0./frontends/php/
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的安装与配置的更多相关文章
- zabbix4.0 本地安装详解及步骤
安装前说明下,下面安装过程中涉及selinux部分仅供参考,可能会导致启动服务时产生各种报错,作者也是在折腾了无数日夜后报错不断而放弃治疗,直接永久关闭了selinux(啊,没有selinux的日子真 ...
- centos zabbix4.0编译安装
zabbix的部署原理 zabbix server需要把监控数据入sql数据库,所以得Mysql环境 zabbix的web是基于php开发的,所以得LNMP环境 部署zabbix server和zab ...
- CentOS-7.0.中安装与配置Tomcat-7的方法
安装说明 安装环境:CentOS-7.0.1406安装方式:源码安装 软件:apache-tomcat-7.0.29.tar.gz 下载地址:http://tomcat.apache.org/down ...
- Solr(5.1.0) 与Tomcat 从0开始安装与配置
1.什么是Solr? Solr是一个基于Lucene的Java搜索引擎服务器.Solr 提供了层面搜索.命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式).它易于安装和配置 ...
- Yii2.0的安装与配置教程
版权声明:本文为博主原创文章,未经博主允许不得转载. PHP版本需求:PHP5.4.0以上,因为Yii2.0基于PHP5.4以上版本进行了完全重写. 目前有两种方法可以安装Yii2.0,一种是安装Co ...
- Win10+vs2012+cuda8.0的安装与配置
安装环境说明:NVDIA GeForce 930M.Intel(R) HD Graphics 520 显卡和cuda需要兼容匹配,我一开始下载的cuda6.5无法安装,所以又重新下了比较新的cuda8 ...
- mongodb 3.0下载安装、配置及mongodb最新特性、基本命令教程详细介绍
mongoDB简介(本文由www.169it.com搜集整理) MongoDB是一个高性能,开源,无模式的文档型数据库,是目前在IT行业非常流行的一种非关系型数据库(NoSql).它在许多场景下可用于 ...
- Apache2.4.34 + php 7.28 + MySQL8.0.12 安装及配置
服务端的学习 Apache2.4.34 的安装及配置 1.基本安装 最新的 Apache 已经不提供 Windows 的安装版本,所以我们这里使用的是解压版 -下载地址:https://www.apa ...
- AndroidStudio3.0的安装和配置笔记
开发Android项目要搭建开发环境.可以选择使用Eclipse安装ADT插件来开发安卓项目,也可以使用谷歌的官方IDE——AndroidStudio3.0. AndroidStudio3.0安装的具 ...
随机推荐
- ENS使用指南系列之一 [ 注册 .eth 域名详细教程 ]
ENS 域名系统中目前支持三种顶级域名,分别是 .eth .xyz .luxe.其中, .eth 是 ENS 系统的原生域名,是由一系列智能合约控制的去中心化的域名,另外两种是从互联网域名中接入的,要 ...
- JavaScript substring()
JavaScript substring() 方法 参数 描述 start 必需.一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置. stop 可选.一个非负的整数, ...
- ACM北大暑期课培训第七天
昨天没时间写,今天补下. 昨天学的强连通分支,桥和割点,基本的网络流算法以及Dinic算法: 强连通分支 定义:在有向图G中,如果任意两个不同的顶点 相互可达,则称该有向图是强连通的. 有向图G的极大 ...
- DZNEmptyDataSet框架阅读
前段时间使用公司封装的空白页占位视图工具,工具是对DZNEmptyDataSet框架的封装.这个框架以前在许多项目也都用过,却没有认真阅读过源码,真的很遗憾.这两天趁五一放假有空,将DZNEmpt ...
- Spring Boot 入门(十):集成Redis哨兵模式,实现Mybatis二级缓存
本片文章续<Spring Boot 入门(九):集成Quartz定时任务>.本文主要基于redis实现了mybatis二级缓存.较redis缓存,mybaits自带缓存存在缺点(自行谷歌) ...
- DevOps is Hard、DevSecOps is Even Harder . --- Enterprise Holdings
Enterprise Holdings. 的IT团队超过2000人,在2018年的演讲中介绍了Enterprise Holdings的DevOps是如何转型的.我们通过打造一个不只包涵了pipelin ...
- rest实践1
REST 即表述性状态传递,是一种针对网络应用的设计和开发,可以降低开发的复杂性.是主流的Web服务实现方案. 表述性状态转移是一组构架约束条件和原则,满足这些约束条件和原则的应用程序和设计就是RES ...
- 巧用位运算规律 Flags
找规律 (1 ) &1 =1 (1 ) &2 =0 (1 ) &3 =1 (1 ) &4 =0 (1 ) &5 =1 (1 ) &6 =0 (1 ) & ...
- cogs 3008. 朋友圈
3008. 朋友圈 ★★ 输入文件:friendscircle.in 输出文件:friendscircle.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] NO ...
- 关于Matplotlib中No module named 'matplotlib.finance'的解决办法
最近在研究量化分析,需要用到matplotlib中的一个库,输入from matplotlib.finance import quotes_historical_yahoo_ohlc, candles ...