文档章节

Centos 搭建 Zabbix(nginx+php+mysql) 服务

诸葛孔明亮
 诸葛孔明亮
发布于 2016/07/22 10:55
字数 1778
阅读 62
收藏 0

一、简介

     

Alexei Vladishev 创建了 Zabbix 项目

 

 Zabbix 是一个企业级的、开源的、分布式的监控套件;

 

 

二、zabbix 进程构成

     

     默认 zabbix 包含5个进程:

 

     zabbix_agentd:客户端守护进程,收集客户端数据,例如 cpu 负载、内存、硬盘使用情况;

     zabbix_get:zabbix 工具,单独使用命令,通常在 server 或者 proxy 端执行,用户获取被监控端数据,命令方式获取客户端数据,用于排错;

     zabbix_proxy:zabbix 代理守护进程,功能类似 server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到 server 里;

     zabbix_server:zabbix 服务端守护进程,其他的进程的数据都最终提交到 server,备注:数据都不是主动提交给 zabbix_server,大都是 server 主动去取数据;

     zabbix_sender:zabbix 工具,用于发送数据给 server 或 proxy,通常用于耗时比较长的 check,并且与 trapper 配合使用;

     zabbix_java_gateway(需另外安装):java 网关,类似 agents,只用与 java ,只能主动去获取数据,而不能被动获取数据;

 

三、安装

    时间同步:安装 Zabbix 服务需确保所有服务器的时间都是正确的,可以添加 crontab 同步时间:

    yum install ntpdate

    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    00 00 * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP

    

    LNMP 环境配置

    1、 Nginx 安装

         1)安装必要软件

        yum install pcre pcre-decel openssl openssl-devel gcc make cmake gcc-c++

        2) 编译安装 nginx

        下载 nginx-1.10.1.tar.gz

        tar zxvf nginx-1.10.1.tar.gz && cd nginx-1.10.1

        ./configure --prefix=/usr/local/nginx-1.10.1 --with-http_ssl_module --with-http_stub_status_module --with-pcre

        参数详细信息参考 README

        编译无报错:

        make && make install

        /usr/local/nginx-1.10.1/sbin/nginx 

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

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

 

    2、编译安装 php

        1)下载

            yum install gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel

            tar -zxvf php-5.6.23.tar.gz

            cd php-5.6.23

            ./configure --prefix=/usr/local/php-5.6.23 --with-config-file-path=/usr/local/php-5.6.23/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath

            

            zabbix 对于 php参数、php模块有特殊的要求,编译 php 时要注意加上;

            并且对安装完成的 php.ini 文件中要特别修改:(zabbix 要求)

            max_execution_time = 300

            memory_limit = 128M

            post_max_size = 16M

            upload_max_filesize = 2M

            max_input_time = 300

            date.timezone = PRC 

            always_populate_raw_post_data = -1

            执行

            make && make install

        2)配置 php

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

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

        3)启动 php

            /usr/local/php-5.6.23/sbin/php-fpm

 

    3、安装 mysql

        1)安装必要组件、下载

            yum install autoconf automake imake libxml2-devel expat-devel libaio libaio-devel bzr bison libtool ncurses5-devel

            

            wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz/from/http://cdn.mysql.com/ -O mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz

            tar zxvf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz –C ../

            ln -s mysql-5.6.14-linux-glibc2.5-x86_64 mysql

        2)创建 mysql 用户组和用户、及数据库存放目录

            mkdir -p /data/mysq_data

            mkdir -p /data/mysql_log

            mkdir -p /data/log-bin

            groupadd mysql

            useradd mysql -g mysql -M -s /sbin/nologin

            chown -R mysql.mysql /data/mysql_data /data/mysql_log /data/log-bin        

            chown -R mysql.mysql /usr/local/mysql-5.6.14-linux-glibc2.5-x86_64

        3)配置 my.cnf 根据具体环境配置

############################################################            

[mysqld]

# GENERAL #

user = mysql

default-storage-engine = InnoDB

socket = /data/mysql_data/mysql.sock

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

port = 3306

# MyISAM #

key_buffer_size = 1344M

myisam_recover = FORCE,BACKUP

# SAFETY #

max_allowed_packet = 16M

max_connect_errors = 1000000

skip_name_resolve

# DATA STORAGE #

datadir = /data/mysql_data/

long_query_time = 1

# BINARY LOGGING #

log-bin = /data/log-bin/mysql-bin

expire-logs-days = 14

sync-binlog = 1

server-id = 1

max_binlog_size = 500M

# REPLICATION #

relay-log = /data/log-bin/relay-bin

slave-net-timeout = 60

# CACHES AND LIMITS #

tmp_table_size = 32M

max_heap_table_size = 32M

max_connections = 500

thread_cache_size = 50

open_files_limit = 65535

table_definition_cache = 4096

table_open_cache = 4096

# INNODB #

innodb_data_file_path = ibdata1:128M;ibdata2:10M:autoextend

innodb_flush_method = O_DIRECT

innodb_log_files_in_group = 2

innodb_lock_wait_timeout = 50

innodb_log_file_size = 256M

innodb_flush_log_at_trx_commit = 1

innodb_file_per_table = 1

innodb_thread_concurrency = 8

innodb_buffer_pool_size = 8G

# LOGGING #

log-error = /data/mysql_log/mysql-error.log

log-queries-not-using-indexes = 1

slow-query-log = 1

long_query_time = 1

slow-query-log-file = /data/mysql_log/mysql-slow.log

# FOR SLAVE #

#binlog-format = ROW

#log-slave-updates = true

#gtid-mode = on

#enforce-gtid-consistency = true

#master-info-repository = TABLE

#relay-log-info-repository = TABLE

#sync-master-info = 1

#slave-parallel-workers = 2

#binlog-checksum = CRC32

#master-verify-checksum = 1

#slave-sql-verify-checksum = 1

#binlog-rows-query-log_events = 1

#report-port = 3306

#report-host = 10.1.1.10

############################################################           

                my.cnf 文件 使用需加上参数 --defaults-file=/etc/my.cnf

                my.cnf 文件影响 mysql 启动,其中参数配置过大,可能会因为 mysqld 进程启动占用内存过大而被系统强制 kill 掉;

            4)系统服务初始化

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

                vi /etc/init.d/mysql

                basedir=/usr/local/mysql

                datadir=/data/mysql_data

                

                chmod 755 /etc/init.d/mysql

                chkconfig -add mysql

                chkconfig --level 345 msql on

            5)初始化数据库    

                cd /usr/local/mysql

                ./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf

            6)启动数据库

                service mysql start 

            7)修改root密码

                /usr/local/mysql/bin/mysql -p -u root -S /tmp/mysql.sock

                Mysql> delete from mysql.user where user='';

                Mysql> update mysql.user set password=PASSWORD('xxxxxxxx') where user='root';

                Mysql> flush privileges;

            

 

    4、安装 zabbix 服务

        1)下载安装 zabbix   

            http://www.zabbix.com/download.php  下载需要的版本

            tar -xzvf zabbix-3.0.3.tar.gz

            cd zabbix-3.0.3

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

            PS:错误可参考 http://os.51cto.com/art/201104/252989.htm

            make && make install 

           zabbix server 一般充当两个角色,server、agent(需要监控自己),所以添加了 --enabe-agent

        

        2)创建用户

            在 root 环境下运行 zabbix,zabbix 将会主动尝试以 zabbix 身份来运行;

            groupadd zabbix

            useradd -g zabbix zabbix

        3)初始化数据库

            zabbix server 与 proxy 需要数据库,agent 不需要,proxy 只需要导入 schema.sql 一个文件即可,server 则需导入三个;

            mysql -u root -p123456

            mysql> create database zabbix default charset utf8;   -----防止中文乱码出现

            mysql> quit;

            mysql -u root -p 123456 zabbix < database/mysql/scherm.sql

            server :

            mysql -u root -p 123456 zabbix < database/mysql/images.sql

            mysql -u root -p 123456 zabbix < database/mysql/data.sql

        4) 配置 zabbix        

            mkdir /etc/zabbix 

            cp conf/zabbix_server.conf /etc/zabbix/

            vim /etc/zabbix/zabbix_server.conf 

            DBHost=localhost

            DBName=zabbix

            DBUser=root

            DBPassword=123456

            DBPort=3306

        5)启动 zabbix server

            /usr/local/zabbix-3.0.3/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf

            default port:10051

    5、客户端安装配置

            http://www.zabbix.com/download.php

            tar -zxvf zabbix-3.0.3.tar.gz

            cd zabbix-3.0.3

            ./configure --prefix=/usr/local/zabbix-3.0.3/ --enable-agent

            make && make install 

           1)客户端配置

                vim /usr/local/zabbix-3.0.3/etc/zabbix_agentd.conf

                Server=127.0.0.1

                ServerActive=127.0.0.1

                Hostname=Zabbix server

            其中 server 和 serveractive 都指向 zabbixserver 的 ip,不同的是,前者是被动后者是主动,server 配置是用来允许 127.0.0.1 这个 ip 来我这获取数据,而 serverActive 则是客户端主动提交数据给它,主机安装客户端需添加 zabbix 用户;

            2)客户端启动

                /usr/local/zabbix-3.0.3/zabbix_agentd

                default prot: 10050

 

    6、zabbix 管理网站配置

        1)拷贝前端文件

            mkdir /data/logs/nginx

            mkdir /data/site/zabbix

            cp -rp /root/zabbix-3.0.3/frontends/php/* /data/site/zabbix

        2)配置虚拟主机

            vim /usr/local/nginx-1.10.0/conf/nginx.conf

############################################################

    server {
        listen 80;
        server_name *IP*;
        access_log /data/logs/nginx/zabbix.access.log main;

        index index.html index.php index.html;
        root /data/site;

        location /
        {
        try_files $uri $uri/ /index.php?$args;
        }

        location ~ ^(.+\.php)(.*)$
        {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        include fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param PATH_INFO       $fastcgi_path_info;
        }
        }

##############################################################

         7、在线配置 zabbix

            后台nignx、php、zabbix_server 服务都开启

               浏览器打开 http://IP/zabbix

            按步骤配置完成,zabbix server details 里面 name 可以不填默认即可;

            Install 步骤中需下载 zabbix.conf.php 至 /data/site/zabbix/conf 下

        8、登录 zabbix

            默认 User:Admin /zabbix

        9、zabbix 升级

          关闭 zabbix server ,防止有新的数据提交到数据库,直接关闭数据库效果也是一样的;

            备份配置文件(/etc/zabbix)、php 网站源码、zabbix 二进制文件(整个目录备份即可);

            重新下载新版本,然后 configue ---> make && make install

    10、zabbix 中文乱码处理

        上传 simkai.ttf 到服务器的 /data/site/zabbix/fonts/ 下

         修改 zabbix php 配置文件

        cd /data/site/zabbix/include/

        sed -i 's/DejaVuSans/simkai/g' ./defines.inc.php

 

 

 

    11、zabbix 数据库迁移

        zabbix 将从 agent 处获取的数据写入数据库中,数据库空间可能不足,需要迁移,全量导出数据库,迁移至新库,删除 /data/site/zabbix/conf 下的 zabbix.conf.php 文件,url :http://IP/zabbix/setup.php 重新设置;

              

            

 

 

            

 

© 著作权归作者所有

诸葛孔明亮
粉丝 2
博文 64
码字总数 53931
作品 0
浦东
运维
私信 提问
CentOS 配置LNMP环境

Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17 CentOS6.5搭建LNMP CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL) 注意:nginx安装之前,最好下载如下库...

IamOkay
2015/05/31
0
0
Centos 搭建 Zabbix Agent 客户端

如需搭建zabbix server端,请参考:Zabbix-Server配置 环境:    Zabbix-Server: Centos 6.8 IP:192.168.126.129 #Zabix-Server地址(此篇文章可不必在意)   Zabbix-Agent: Centos...

chinawxl
2017/12/26
0
0
centos7.0详细安装zabbix3.2.4 (亲测)

centos7.0安装zabbix最新3.2.4版本 公司的服务器较多,需要每次到机房后台查看服务器的使用情况,比较麻烦。最近想要装个监控,以前也学习过zabbix,cacti,nagios等等主流软件没有实际搭建过...

一场大火
2017/04/24
0
0
zabbix 监控平台搭建过程中的报错与解决方法总结

1.php option postmaxsize 2.php option maxexecutiontime 3.php option maxinputtime 4.php time zone 5.php bcmath 6.php mbstring 解决1-3的报错修改php文件 vim /etc/php.ini 修改相应参......

2532176285
2017/05/13
0
0
Centos 搭建 Zabbix Server

     zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。   zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通...

chinawxl
2017/12/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RS-232、RS422和RS-485的区别和各自的实现方式

一、殊途同归 RS-232、RS422和RS-485 均属于UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),仅用两根信号线(Rx 和Tx)就可以完成通信过程; 而由于各自使用的电...

rainbowcode
33分钟前
0
0
spring 本类中方法调用另外一个方法事务不生效

1、在spring配置文件中添加 <aop:aspectj-autoproxy expose-proxy="true" proxy-target-class="true" />声明自动代理 <!-- 标识通过aop框架暴露该代理,aopContext能够访问. --> proxy-targe......

重城重楼
39分钟前
5
0
项目 banner 乱弹

------------------------------------------ 村上春树 ------------------------------------- 如果我爱你,而你也正巧爱我,你头发乱了的时候,我会笑笑地替你拨一拨,然后手还留恋地在你...

宿小帅
51分钟前
3
0
PHP获取未来七天的日期和星期

php获取未来七天的日期和星期代码 第一步:获取需要天数的日期,然后调用函数 //获取未来七天的日期 for($i=1;$i<8;$i++){ $dateArray[$i]=date('Y-m-d',strtotime(d...

一只懒猫-
今天
2
0
总结:IO模型

分类 多路复用 参考文章: https://www.jianshu.com/p/6a6845464770 https://www.cnblogs.com/zingp/p/6863170.html https://blog.csdn.net/sehanlingfeng/article/details/78920423......

浮躁的码农
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部