前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >centos7.3搭建zabbix3.4.4

centos7.3搭建zabbix3.4.4

作者头像
py3study
发布2018-08-02 15:28:09
6700
发布2018-08-02 15:28:09
举报
文章被收录于专栏:python3

需要的一些包(所有的包都放在/opt目录下)

zabbix-3.4.4.tar.gz

boost_1_59_0.tar.gz 

mysql-5.7.14.tar.gz

php-7.0.9.tar.gz 

pcre-8.39.tar.gz 

openssl-1.0.1t.tar.gz 

zlib-1.2.8.tar.gz

tengine-2.2.1.tar.gz

msyh.ttf(字体文件-使用默认也行)

安装epel更新源(对应系统版本)

blob.png
blob.png

下载epel文件epel-release-latest-7.noarch.rpm

wget https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

安装

rpm -ivh epel-release-latest-7.noarch.rpm

blob.png
blob.png

安装编译环境

yum groupinstall -y "Development tools"

更新bash和openssl漏洞以及基本软件

yum install -y bash openssl* ntp vim wget telnet nscd

更新服务器时间

ntpdate ntp1.aliyun.com

优化系统

vim /etc/sysctl.conf

net.ipv4.tcp_mem = 3097431 4129911 6194862

net.ipv4.tcp_rmem = 4096 87380 6291456

net.ipv4.tcp_wmem = 4096 65536 4194304

net.ipv4.tcp_max_tw_buckets = 262144

net.ipv4.tcp_tw_recycle = 0

net.ipv4.tcp_tw_reuse  = 1

net.ipv4.tcp_syncookies  = 1

net.ipv4.tcp_fin_timeout = 15

net.ipv4.ip_local_port_range = 1024 65535

net.ipv4.tcp_max_syn_backlog = 65535

net.core.somaxconn  = 65535

重新加载下

sysctl -p

关闭selinux

vim /etc/selinux/config

SELINUX=disabled

setenforce 0

mysql安装

mysql 5.7编译cmake要求版本最低为2.8

升级cmake

yum -y install ncurses-devel cmake

创建用户和用户组

groupadd mysql

useradd -g mysql mysql

usermod -s /sbin/nologin mysql

创建目录

mkdir -p /data/3306/data /data/3306/logs

解压软件包

tar zxvf mysql-5.7.14.tar.gz -C /usr/src/

cd /usr/src/mysql-5.7.14/

注意boost_1_59_0.tar.gz的路径,这里我是放在/opt下的

编译

cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data/3306/data \

-DMYSQL_TCP_PORT=3306 \

-DMYSQL_UNIX_ADDR=/data/3306/mysqld.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DEXTRA_CHARSETS=all \

-DWITH_EMBEDDED_SERVER=1 \

-DWITH_SSL=bundled \

-DWITH_DEBUG=0 \

-DENABLE_DOWNLOADS=1 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/opt/boost_1_59_0.tar.gz

安装

make && make install

设置权限

chown mysql:mysql -R /data/3306 /usr/local/mysql

初始化

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data

以root初始化操作时要加–user=mysql参数,生成一个随机密码(注意保存登录时用)

2017-12-11T03:54:23.999606Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2017-12-11T03:54:24.644107Z 0 [Warning] InnoDB: New log files created, LSN=45790

2017-12-11T03:54:24.699612Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2017-12-11T03:54:24.818426Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: fa567738-de26-11e7-9c63-000c29e367e9.

2017-12-11T03:54:24.821586Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2017-12-11T03:54:24.825428Z 1 [Note] A temporary password is generated for root@localhost: K&Al1pUsfkl8

以上信息可以看到随机密码为 K&Al1pUsfkl8

备份配置文件

cd /etc/

mv my.cnf my.cnf.bak

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

编辑配置文件

vim my.cnf

basedir = /usr/local/mysql

datadir = /data/3306/data

port = 3306

server_id = 2

socket = /data/3306/mysqld.sock

pid-file = /data/3306/mysql.pid

max_allowed_packet=16M

log-error = /data/3306/logs/error.log

chown mysql:mysql -R /data/3306 /usr/local/mysql

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig --level 2345 mysqld on

编辑环境变量

vim /etc/profile

最后一行添加

PATH=$PATH:/usr/local/mysql/bin

重新加载环境变量,启动mysql

source /etc/profile

/etc/init.d/mysqld start

Starting MySQL. SUCCESS!

进入Mysql

mysql -u root -p

输入密码:K&Al1pUsfkl8

修改密码为root

alter user 'root'@'localhost' identified by '要更改的密码';

quit;

再次进入

mysql -u root -p

执行命令,就可以了

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)

exit;

php-7.0.9安装

创建用户和组

groupadd www

useradd -g www www

usermod -s /sbin/nologin www

安装组件

yum install -y libxml2 libxml2-devel libxml2-python curl curl-devel  libjpeg libjpeg-devel libpng libpng10 libpng10-devel libpng-devel freetype-devel libmcrypt libmcrypt-devel gd gd-devel

解压

tar zxvf php-7.0.9.tar.gz -C /usr/src/

cd /usr/src/php-7.0.9/

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc  \

--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib \

--with-libxml-dir --enable-xml --enable-bcmath \

--enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl \

--enable-mbregex  --enable-fpm  --enable-mbstring \

--with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash \

--enable-pcntl --enable-sockets \

--with-xmlrpc --enable-zip --enable-soap  --with-mysqlsock=/data/3306/mysqld.sock  \

--with-curl=/usr --with-gettext --with-iconv --enable-mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

安装

make && make install

复制配置文件以及启动脚本

cp php.ini-production /usr/local/php/etc/php.ini

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

cd /usr/local/php/etc/php-fpm.d

编辑配置文件

vim www.conf

修改用户和组为www

user = www

group = www

脚本设置权限,添加到开机自启动

chmod +x /etc/init.d/php-fpm

chkconfig --add php-fpm

chkconfig --level 2345 php-fpm on

启动php-fpm

/etc/init.d/php-fpm start

查看端口是否启动

netstat -anpt | grep php-fpm

tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      3208/php-fpm: maste

Tengine 安装

解压软件包,其中openssl,pcre,zlib都是最新版

tar zxvf openssl-1.0.1t.tar.gz -C /usr/src/

tar zxvf pcre-8.39.tar.gz -C /usr/src/

tar zxvf zlib-1.2.8.tar.gz -C /usr/src/

tar zxvf tengine-2.2.1.tar.gz -C /usr/src/

cd /usr/src/tengine-2.2.1/

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-openssl=/usr/src/openssl-1.0.1t --with-zlib=/usr/src/zlib-1.2.8 --with-pcre=/usr/src/pcre-8.39

make && make install

修改nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

user  www www;

worker_processes  auto;

worker_cpu_affinity auto;

worker_rlimit_nofile 65535;

error_log  logs/error.log;

pid        logs/nginx.pid;

events {

    worker_connections  65535;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    charset utf-8;

    keepalive_timeout 65;

    proxy_read_timeout 200;

    sendfile on;

    tcp_nopush on;

    tcp_nodelay on;

    gzip on;

    gzip_min_length 1000;

    gzip_proxied any;

    gzip_types text/plain text/css text/xml

               application/x-javascript application/xml

               application/atom+xml text/javascript;

    client_max_body_size 64M;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    fastcgi_intercept_errors on;

    include vhosts/*;

}

cd /usr/local/nginx/conf/

mkdir vhosts

vim zabbix.conf

server {

        listen   80;

        server_name ip地址或者域名;

        root /usr/local/zabbix/php;

        index index.php index.html index.htm;

        location / {

            if (!-e $request_filename) {

                rewrite  ^(.*)$  /index.php/$1  last;

                break;

            }

        }

        location ~ \.php {

                fastcgi_pass   127.0.0.1:9000;

                fastcgi_index  index.php;

                include        fastcgi_params;

                set $real_script_name $fastcgi_script_name;

                if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {

                   set $real_script_name $1;

                   set $path_info $2;

                }

                fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;

                fastcgi_param SCRIPT_NAME $real_script_name;

                fastcgi_param PATH_INFO $path_info;

        }

}

检查nginx配置

/usr/local/nginx/sbin/nginx -t

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

configuration file /usr/local/nginx/conf/nginx.conf test is successful

/usr/local/nginx/sbin/nginx

写入开机自动启动

echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

nginx日志切割

mkdir -p /manage

cd /manage/

vim nginx_cut.sh 

#!/bin/bash

source /etc/profile

#/usr/local/nginx/sbin/nginx -s stop

cd /usr/local/nginx/logs

mv access.log access_$(date -d "today" +"%Y%m%d").log

mv error.log error_$(date -d "today" +"%Y%m%d").log

/usr/local/nginx/sbin/nginx -s reload

#日志保留7天

find /usr/local/nginx/logs -mtime +7 -type f -name "*.log" -exec rm {} \;

chmod 755 nginx_cut.sh

添加任务计划

crontab -e

10 4 * * * /manage/nginx_cut.sh

netstat -anpt | grep nginx

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      23150/nginx: master

zabbix安装

创建zabbix用户

groupadd zabbix

useradd -g zabbix zabbix -s /sbin/nologin

解压源码包

tar zxvf zabbix-3.4.4.tar.gz -C /usr/src/

进入数据库

mysql -u root -p

创建zabbix数据库

CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

创建zabbix授权库账户zabbix,密码是123456

grant all privileges on zabbix.* to zabbix@localhost identified by '123456';

导入zabbix数据表结构

use zabbix;

source /usr/src/zabbix-3.4.4/database/mysql/schema.sql;

source /usr/src/zabbix-3.4.4/database/mysql/data.sql;

source /usr/src/zabbix-3.4.4/database/mysql/images.sql;

安装组件

yum install -y net-snmp net-snmp-devel curl curl-devel

进入解压目录,编译安装

cd /usr/src/zabbix-3.4.4/

./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy

编译过程中报错

configure: error: Unable to use libevent (libevent check failed)

解决方法

yum install libevent libevent-devel -y

重新编译

./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy

成功应该看到的结果

blob.png
blob.png

make && make install

创建日志目录

mkdir /usr/local/zabbix/logs

编辑zabbix_agentd配置文件

cd /usr/local/zabbix/etc/

mv zabbix_agentd.conf zabbix_agentd.conf.bak

vim zabbix_agentd.conf

内容如下:

LogFile=/usr/local/zabbix/logs/zabbix_agentd.log

Server=127.0.0.1

#ServerActive=127.0.0.1

Hostname=Zabbix server

编辑zabbix_server配置文件

mv zabbix_server.conf zabbix_server.conf.bak

vim zabbix_server.conf

内容如下:

LogFile=/usr/local/zabbix/logs/zabbix_server.log

DBName=zabbix

DBUser=zabbix

DBHost=localhost

DBPassword=123456

AlertScriptsPath=/usr/local/zabbix/alertscripts

创建自定义脚本目录,设置权限,目录下的脚步,可以被zabbix调用

mkdir /usr/local/zabbix/alertscripts

chown zabbix:zabbix -R /usr/local/zabbix

更改php.ini文件

sed -i 's/post_max_size = 8M/post_max_size = 32M/g' /usr/local/php/etc/php.ini

sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /usr/local/php/etc/php.ini

sed -i 's/;date.timezone =/date.timezone =PRC/' /usr/local/php/etc/php.ini

sed -i 's/max_execution_time = 30/max_execution_time = 600/g' /usr/local/php/etc/php.ini

sed -i 's/max_input_time = 60/max_input_time = 600/g' /usr/local/php/etc/php.ini

sed -i 's/memory_limit = 128M/memory_limit = 256M/g' /usr/local/php/etc/php.ini

vim /usr/local/php/etc/php.ini

cgi.fix_pathinfo=0

改为

cgi.fix_pathinfo=1

重启php-fpm

service php-fpm restart

进入源码目录,复制启动脚本 

cd /usr/src/zabbix-3.4.4/misc/

cp init.d/tru64/zabbix_server /etc/init.d/

cp init.d/tru64/zabbix_agentd /etc/init.d/

chmod +x /etc/init.d/zabbix_*

修改zabbix_agentd、zabbix_server程序目录的位置

vim /etc/init.d/zabbix_agentd

内容如下:

DAEMON=/usr/local/zabbix/sbin/zabbix_agentd

vim /etc/init.d/zabbix_server

内容如下:

DAEMON=/usr/local/zabbix/sbin/zabbix_server

由于zabbix_server 服务不支持 chkconfig,使用下列方法自启动

vim /etc/init.d/zabbix_server

在#!/bin/sh下面一行添加

#chkconfig: 345 95 95

#description: Zabbix_Server

vim /etc/init.d/zabbix_agentd

在#!/bin/sh下面一行添加

#chkconfig: 345 95 95

#description: Zabbix_agentd

添加到系统服务

chkconfig zabbix_server on

chkconfig zabbix_agentd on

编辑系统库配置文件

vim /etc/ld.so.conf

加入一行

/usr/local/mysql/lib/

重新加载

ldconfig

启动服务

/etc/init.d/zabbix_server start

/etc/init.d/zabbix_agentd start

查看端口

netstat -ntpl|grep zabbix

tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      21188/zabbix_agentd

tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      21140/zabbix_server

复制php页面,并设置权限

cp -rf /usr/src/zabbix-3.4.4/frontends/php/ /usr/local/zabbix/php

chown www:www -R /usr/local/zabbix/php/

重新加载nginx

/usr/local/nginx/sbin/nginx -s reload

编辑php配置文件,开启中文

vim /usr/local/zabbix/php/include/locales.inc.php

 'zh_CN' => ['name' => _('Chinese (zh_CN)'),     'display' => true],

下载微软雅黑字体,放到/root目录

将zabbix默认的字体覆盖

cd /usr/local/zabbix/php/fonts/

\cp /opt/msyh.ttf DejaVuSans.ttf

访问zabbix安装页面

http://ip地址或者域名/setup.php

blob.png
blob.png

下一步

blob.png
blob.png

这里报错

blob.png
blob.png

解决方法

vim /usr/local/php/etc/php.ini

mysqli.default_socket = /data/3306/mysqld.sock

/usr/local/nginx/sbin/nginx -s reload

/etc/init.d/php-fpm restart

在刷新页面

blob.png
blob.png

后面的下一步安装即可

访问http://192.168.0.110

blob.png
blob.png

这里注意  zabbix默认页面

帐号:admin

密码:zabbix

进去后可修改

blob.png
blob.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/12/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档