zabbix分布式监控环境完全编译安装部署

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

  很多文档使用的是yum安装mysql、http、php等工具。这里采用源码安装的形式,实现从LNMP-zabbix的全程记录。

一、LNMP平台搭建

  参考:http://www.ttlsa.com/nginx/nginx-install-on-linux/

        http://swht1278.blog.51cto.com/7138082/1623886

  1.nginx的安装

    1.1 依赖环境的部署

       yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel pcre-static gd-*

    1.2 建立nginx用户及用户组

       groupadd -r nginx && useradd -s /sbin/nologin -g nginx -r nginx

    1.3 下载最新nginx安装包

       wget -P /usr/local/src/ http://nginx.org/download/nginx-1.9.1.tar.gz

    1.4 编译安装nginx

        cd /usr/local/src/ && tar xf nginx-1.9.1.tar.gz

       ./configure --prefix=/usr/local/nginx --lock-path=/usr/local/nginx/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/usr/local/nginx/client/ --http-proxy-temp-path=/usr/local/nginx/proxy/ --http-fastcgi-temp-path=/usr/local/nginx/fcgi/ --http-uwsgi-temp-path=/usr/local/nginx/uwsgi --http-scgi-temp-path=/usr/local/nginx/scgi --with-pcre --with-file-aio --with-http_image_filter_module && make && make install

    1.5 nginx启动脚本

==============================

vim /etc/init.d/nginx   chmod +x /etc/init.d/nginx  

#!/bin/bash

#

# Startup script for Nginx - this script starts and stops the nginx daemon

#

# chkconfig:   - 85 15

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server

# processname: nginx

# config:      /usr/local/nginx/conf/nginx.conf

# pidfile:     /usr/local/nginx/logs/nginx.pid 

# Source function library.

. /etc/rc.d/init.d/functions 

# Source networking configuration.

. /etc/sysconfig/network 

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0 

nginx="/usr/local/nginx/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx 

lockfile=/var/lock/subsys/nginx 

start() {

    [ -x $nginx ] || exit 5

    [ -f $NGINX_CONF_FILE ] || exit 6

    echo -n $"Starting $prog: "

    daemon $nginx -c $NGINX_CONF_FILE

    retval=$?

    echo

    [ $retval -eq 0 ] && touch $lockfile

    return $retval

}

 

stop() {

    echo -n $"Stopping $prog: "

    killproc $prog -QUIT

    retval=$?

    echo

    [ $retval -eq 0 ] && rm -f $lockfile

    return $retval

}

 

restart() {

    configtest || return $?

    stop

    sleep 1

    start

}

 

reload() {

    configtest || return $?

    echo -n $"Reloading $prog: "

    killproc $nginx -HUP

    RETVAL=$?

    echo

}

 

force_reload() {

    restart

}

 

configtest() {

  $nginx -t -c $NGINX_CONF_FILE

}

 

rh_status() {

    status $prog

}

 

rh_status_q() {

    rh_status >/dev/null 2>&1

}

 

case "$1" in

    start)

        rh_status_q && exit 0

        $1

        ;;

    stop)

        rh_status_q || exit 0

        $1

        ;;

    restart|configtest)

        $1

        ;;

    reload)

        rh_status_q || exit 7

        $1

        ;;

    force-reload)

        force_reload

        ;;

    status)

        rh_status

        ;;

    condrestart|try-restart)

        rh_status_q || exit 0

            ;;

    *)

        echo $"Usage: $0 {start|stop|status|restart|condrestart|


try-restart|reload|force-reload|configtest}"

        exit 2

esac

==================================================

   1.6 nginx的启动和关闭

     service nginx start|reload|restart|stop

     chkcofnig nginx on

     或者:

     启动 /usr/local/nginx-1.5.1/sbin/nginx

     关闭 /usr/local/nginx-1.5.1/sbin/nginx -s stop

     重启 /usr/local/nginx-1.5.1/sbin/nginx -s reload

  2.mysql的安装

   参考:二进制源码包安装mysql连接 http://www.ttlsa.com/mysql/install-mysql5_6/

         自定义编译源码包安装mysql连接:http://swht1278.blog.51cto.com/7138082/1658992

   2.1 编译环境安装(适用于最小化安装的Linux系统)

     yum -y install wget gcc* make openssl openssl-devel openssl-clients ncurses-devel -y && yum groupinstall " Development tools" 

   2.2 mysql源码下载

     wget -P /usr/local/src/ http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.20.tar.gz

     #wget -P /usr/local/src/ http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.25.tar.gz

     wget -P /usr/local/src/ http://down1.chinaunix.net/distfiles/cmake-2.8.10.2.tar.gz

   2.3 源码安装cmake编译环境

     cd /usr/local/src/ && tar xf cmake-2.8.10.2.tar.gz

     cd cmake-2.8.10.2 && ./configure --prefix=/usr/local/cmake && make && make install

     vim /etc/profile

      #set cmake

      export PATH==$PATH:/usr/local/cmake/bin

     source /etc/profile

   2.4 源码安装mysql-5.6

     groupadd mysql && useradd -r -g mysql -s /etc/nologin mysql  #(创建mysql用户不需要密码和登录系统)

     mkdir -p /home/mysql/data && mkdir /home/mysql/var 

     cd /usr/local/src/ && tar xf mysql-5.6.20.tar.gz && cd mysql-5.6.20 

     cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/home/mysql/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/home/mysql/var/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci && make && make install

     

     编译报错解决参考:http://blog.163.com/sz2273_pr/blog/static/41264296201361354426670/

     环境变量配置

     vim /etc/profile

     在末行添加export PATH=$PATH:/usr/sbin/:/usr/local/mysql/bin

     保存退出执行:source /etc/profile 

   2.5 初始化数据库

     /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql/data --user=mysql --default-storage-engine=MyISAM  

   2.6 修改配置文件my.cnf

============================================

vim /etc/my.cnf


[client]

default-character-set=utf8

#auto-rehash

socket = /home/mysql/var/mysql.sock

[mysqld]

# GENERAL #

user = mysql

slave-skip-errors=1022,1032,1062

basedir = /usr/local/mysql

default-storage-engine = MyISAM

socket = /home/mysql/var/mysql.sock

pid-file = /home/mysql/var/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 = /home/mysql/data

long_query_time = 1


# BINARY LOGGING #

log-bin = /home/mysql/data/mysql-bin.log

expire-logs-days = 14

sync-binlog = 1

server-id = 1

max_binlog_size = 500M


# REPLICATION #

relay-log = /home/mysql/data/relay-bin.log

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 = /home/mysql/data/mysql-error.log

log-queries-not-using-indexes = 1

slow-query-log = 1

long_query_time = 1

slow-query-log-file = /home/mysql/data/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   

============================================

   2.7 mysql的启动与关闭

    cp support-files/mysql.server /etc/init.d/mysql && chmod +x /etc/init.d/mysql

    service mysql start|stop|relaod|restart

    chkconfig mysql on

  3. PHP编译安装

   参考:nginx连接PHP 5.5 http://www.ttlsa.com/nginx/nginx-php-5_5/

   3.1 编译环境安装

    yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel -y

   3.2 源码包下载

    wget -P /usr/local/src/ http://cn2.php.net/distributions/php-5.6.9.tar.gz

   3.3 编译安装php5.6.9

    cd /usr/local/src/ && tar xf  php-5.6.9.tar.gz && cd php-5.6.9

    ./configure  --prefix=/usr/local/php-5.6.9 --with-config-file-path=/usr/local/php-5.6.9/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 && make && make install

   3.4 配置PHP

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

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

=================================    

    打开php.ini配置文件,修改如下参数为如下值,否则zabbix安装不了。

max_execution_time = 300

memory_limit = 128M

post_max_size = 16M

upload_max_filesize = 2M

max_input_time = 300 #这个参数修改是在文档的第383行,相关信息在本文档下面有介绍

date.timezone PRC

==============================

   3.5 启动PHP-fpm

    /usr/local/php-5.6.9/sbin/php-fpm

   3.6 nginx配置

===============================

location /

{

    try_files $uri $uri/ /index.php?$args;

}

 

location ~ .*\.(php)?$

{

    expires -1s;

    try_files $uri =404;

    fastcgi_split_path_info ^(.+\.php)(/.+)$;

    include fastcgi_params;

    fastcgi_param PATH_INFO $fastcgi_path_info;

    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    #fastcgi_pass 127.0.0.1:9000;

    fastcgi_pass unix:/var/run/phpfpm.sock;

}

=================================


二、编译安装zabbix

  2.1 依赖环境安装

   yum install net-snmp-devel libxml2-devel libcurl-devel -y

  2.2 下载zabbix源码包

   wget -p /usr/local/src/ http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz

  2.3 编译安装zabbix

   cd /usr/local/src/ && tar xf zabbix-2.4.5.tar.gz && cd zabbix-2.4.5

   ./configure --prefix=/usr/local/zabbix-2.4.5/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 && make && make install

  2.4 创建用户

   groupadd -r zabbix && useradd -s /sbin/nologin -g zabbix -r zabbix

  2.5 初始化数据库

    mysql -uroot -pPasswd

    mysql>create database zabbix default charset utf8;

    mysql>quit;

    mysql -uroot -pPasswd zabbix < database/mysql/schema.sql #初始化proxy库

    #初始化server库

    mysql -uroot -p zabbix < database/mysql/images.sql

    mysql -uroot -p zabbix < database/mysql/data.sql

   mysql设置密码

    $mysql

    mysql>use mysql;

    mysql>update  user set password=password('yzkj2015') where user='root';

    mysql> flush privileges;

  2.6 配置zabbix

   mkdir /etc/zabbix && cp conf/zabbix_server.conf /etc/zabbix/ && vim /etc/zabbix/zabbix_server.conf

==============

DBName=zabbix

DBUser=root

DBPassword=yzkj2015

DBPort=3306

==============

   2.7 zabbix_server启动

    /usr/local/zabbix-2.4.5/sbin/zabbix_server

   2.8 zabbix客户端配置

    创建用户

     groupadd -r zabbix && useradd -s /sbin/nologin -g zabbix -r zabbix

    编译安装

    cd /usr/local/src/ && tar xf zabbix-2.4.5.tar.gz && cd zabbix-2.4.5

    ./configure --prefix=/usr/local/zabbix-2.4.5/ --enable-agent && make && make install

    修改配置文件

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

     Server=127.0.0.1  #被动接受某个IP地址的检查

     ServerActive=127.0.0.1 #主动将数据发送给该IP地址

     Hostname=Zabbix server

    客户端启动

     /usr/local/zabbix-2.4.5/sbin/zabbix_agentd

   2.9 浏览器安装

     网站文件拷贝

     mkdir /home/zabbix && cp -rp /usr/local/src/zabbix-2.4.5/frontends/php/* /home/zabbix && cp /home/zabbix/conf/zabbix.conf.php.example /home/zabbix/conf/zabbix.conf.php

     

      报错PHP option max_input_time 60 300 Fail

      解决:原因是php.ini文件里面有两个参数,第一个max_input_time默认是-1,第二个则是默认为60,需要修改成300

      121 ; max_input_time

      122 ;   Default Value: -1 (Unlimited)

      123 ;   Development Value: 60 (60 seconds)

      124 ;   Production Value: 60 (60 seconds)

      125 max_input_time = 300

      383 max_input_time = 300

      报错:Error connecting to database: No such file or directory

      原因是:Database host写成了localhost

      解决:Database type  MySQL

            Database host  127.0.0.1

            Database port  3306

            Database name  zabbix

            User           root #可以是zabbix,这样安全,但要记得密码要对应

            Password       *****

      备注:这个地方的配置可以在/home/zabbix/conf/zabbix.conf.php中进行修改。路径根据自己的实际情况进行设置查找

    2.10 使用默认账号登录首页

      admin

      zabbix

      

 至此,zabbix的源码安装实验完成,接下来的将是对zabbix的配置进行学习,请参照另外文档。

参考文章:http://www.ttlsa.com/zabbix/install-zabbix-on-linux-5-ttlsa/

声明:该文档仅供学习使用,对于参考文章作者表示衷心感谢,我这篇文档仅仅是对整个搭建过程进行细致的参数调节,以及符合我们自身的生产情况。各位看官只关注学习就好~










本文转自 南非波波 51CTO博客,原文链接:http://blog.51cto.com/nanfeibobo/1659984,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
存储 弹性计算 监控
快速部署 Zabbix 社区版
Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以实现对服务器问题做出快速反应。Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。本文介绍如何通过计算巢快速部署 Zabbix 社区版。
快速部署 Zabbix 社区版
|
2月前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
115 0
|
1天前
|
数据采集 存储 监控
公司监控软件:基于 PHP 的分布式监控系统设计
本文介绍了基于 PHP 的分布式监控系统的设计与实现。该系统包括监控节点、数据采集模块、数据传输模块和监控中心,能够高效地收集、传输和分析各节点的数据,确保系统的稳定运行和安全防护。通过示例代码展示了数据采集、传输及存储的具体实现方法,并强调了安全与可靠性的重要性。
17 3
|
2月前
|
监控 Linux
Zabbix 5.0 LTS的agent服务部署实战篇
文章介绍了如何在CentOS 7.6操作系统上部署Zabbix 5.0 LTS版本的agent服务,包括配置软件源、安装agent、修改配置文件、启动服务,并在Zabbix web界面添加监控。
122 4
Zabbix 5.0 LTS的agent服务部署实战篇
|
2月前
|
监控 前端开发 数据库
Zabbix 5.0 LTS部署实战篇
这篇文章是关于Zabbix 5.0 LTS部署的详细教程,包括版本选择、服务器平台选择、安装步骤、数据库配置、前端安装以及修改时区和设置开机自启等内容。
179 1
Zabbix 5.0 LTS部署实战篇
|
23天前
|
SQL NoSQL 安全
分布式环境的分布式锁 - Redlock方案
【10月更文挑战第2天】Redlock方案是一种分布式锁实现,通过在多个独立的Redis实例上加锁来提高容错性和可靠性。客户端需从大多数节点成功加锁且总耗时小于锁的过期时间,才能视为加锁成功。然而,该方案受到分布式专家Martin的质疑,指出其在特定异常情况下(如网络延迟、进程暂停、时钟偏移)可能导致锁失效,影响系统的正确性。Martin建议采用fencing token方案,以确保分布式锁的正确性和安全性。
35 0
|
27天前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
41 0
|
3月前
|
机器学习/深度学习 分布式计算 PyTorch
大规模数据集管理:DataLoader在分布式环境中的应用
【8月更文第29天】随着大数据时代的到来,如何高效地处理和利用大规模数据集成为了许多领域面临的关键挑战之一。本文将探讨如何在分布式环境中使用`DataLoader`来优化大规模数据集的管理与加载过程,并通过具体的代码示例展示其实现方法。
132 1
|
3月前
|
消息中间件 Java Kafka
如何在Kafka分布式环境中保证消息的顺序消费?深入剖析Kafka机制,带你一探究竟!
【8月更文挑战第24天】Apache Kafka是一款专为实时数据管道和流处理设计的分布式平台,以其高效的消息发布与订阅功能著称。在分布式环境中确保消息按序消费颇具挑战。本文首先介绍了Kafka通过Topic分区实现消息排序的基本机制,随后详细阐述了几种保证消息顺序性的策略,包括使用单分区Topic、消费者组搭配单分区消费、幂等性生产者以及事务支持等技术手段。最后,通过一个Java示例演示了如何利用Kafka消费者确保消息按序消费的具体实现过程。
112 3
|
3月前
|
资源调度 Java 调度
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决

热门文章

最新文章

推荐镜像

更多