zoukankan      html  css  js  c++  java
  • centos 7 源代码搭建部署 zabbix-4.0.13 LTS

    Zabbix 官网 >:https://www.zabbix.com/download

    源代码地址>:https://www.zabbix.com/cn/download_sources#tab:40LTS

    zabbix-4.0.13.tar.gz> :https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.13/zabbix-4.0.13.tar.gz

    Git拉取>: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse

    说明手册>:https://www.zabbix.com/documentation/4.0/manual/installation/install

    先决条件最低要求描述
    PHP 版本 5.4.0  
    PHP memory_limit 选项 128MB 位于 php.ini:
    memory_limit = 128M
    PHP post_max_size 选项 16MB 位于 php.ini:
    post_max_size = 16M
    PHP upload_max_filesize 选项 2MB 位于 php.ini:
    upload_max_filesize = 2M
    PHP max_execution_time 选项 300 seconds (此值允许为 0 和 -1 ) 位于 php.ini:
    max_execution_time = 300
    PHP max_input_time 选项 300 seconds (此值允许为 0 和 -1) 位于 php.ini:
    max_input_time = 300
    PHP session.auto_start 选项 必须禁用此值 In php.ini:
    session.auto_start = 0
    数据库支持 其中之一: MySQL,、Oracle、PostgreSQL、IBM DB2 必须安装下列模块中的一种:
    mysql、oci8、pgsql、ibm_db2
    bcmath   php-bcmath
    mbstring   php-mbstring
    PHP mbstring.func_overload 选项 必须禁用此值 位于 php.ini:
    mbstring.func_overload = 0
    PHP always_populate_raw_post_data option 必须禁用此值 只适用于 PHP 5.6.0 或更高的版本。
    位于 php.ini:
    always_populate_raw_post_data = -1
    sockets   php-net-socket 用于支持用户脚本。
    gd 2.0 或更高 php-gd. PHP GD 扩展必须支持 PNG 图像 (--with-png-dir),、JPEG (--with-jpeg-dir) 图像和 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
    从 Zabbix 2.2.1 起,PHP gettext 扩展不是安装 Zabbix 的强制性要求。如果 gettext 没有安装,前端也可以照常运行,但翻译将不可用。

    #backup mairiadb//备份数据库全部数据
    mysqldump -u root -p --all-databases > alldb_cacti.sql
    cp /etc/my.cnf /root/my.cnf.bak

    #yum update mariadb//yum 升级mariadb数据库到10.4.9
    #curl=http://yum.mariadb.org
    systemctl stop mariadb && mv /etc/my.conf /etc/my.conf.bak && rm -rf /etc/my.conf /var/lib/mysql/
    yum remove mariadb
    echo '[mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.4.8/centos7-amd64/
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1'> /etc/yum.repos.d/mariadb.repo
    yum clean all && yum makecache all
    yum install -y mariadb-server MariaDB-client

    Centos 7 环境(LAMP)

    1 YUM更新源     #--exclude=kernel*,centos-release*,httpd,nginx,php,mysql,mairadb,python-psutil,python2-psutil,cacti (不会升级下载参数--exclude=)

    yum install -y --exclude=kernel*,centos-release*,httpd,nginx,php,mysql,mairadb,python-psutil,python2-psutil,cacti yum-fastestmirror redhat-lsb compat* logrotate lsof net-tools lrzsz cmake wget gcc c++ gcc-c++ make zlib-devel readline-devel automake ncurses-devel epel-release bash-completion sysstat mlocate kernel kernel-headers kernel-devel iptables-services apr* autoconf bison bzip2 bzip2* bzip2-devel cpp curl curl-devel fontconfig fontconfig-devel freetype* freetype-devel gd gettext gettext-libs gettext-devel gettext-common-devel glibc glibc-devel glibc-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff libtiff* mpfr ncurses* ntp ntpdate* openssl-devel patch pcre-devel php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* libwebp libwebp-devel libjpeg-devel db4-devel libXpm-devel libc-client-devel openldap-devel mysql-devel libicu-devel libcurl libcurl-devel libzip cpan tcp_wrappers psmisc tree cyrus-sasl-md5 vim chrony rsync xinetd crontabs iptables-utils git dos2unix boost-devel boost-doc libxslt libxslt-devel libdb4* qpid* gnutls boost-system avahi-libs boost-thread dwz dyninst emacs-filesystem fipscheck fipscheck-lib gdb libdwarf libedit libgfortran unzip zip trousers pakchois nettle neon m4 mokutil libproxy libstdc++-devel libquadmath libquadmath-devel libmpc libmodman libgnome-keyring subversion-libs systemtap-devel systemtap-runtime openssh openssh-clients systemtap-client perl perl-Carp perl-Data-Dumper perl-Encode perl-Error perl-Exporter perl-File-Path perl-File-Temp perl-Filter perl-Getopt-Long perl-Git perl-HTTP-Tiny perl-PathTools perl-Pod-Escapes perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Scalar-List-Utils perl-Socket perl-Storable perl-TermReadKey perl-Test-Harness perl-Text-ParseWords perl-Thread-Queue perl-Time-HiRes perl-Time-Local perl-XML-Parser perl-constant perl-libs perl-macros perl-parent perl-podlators perl-srpm-macros perl-threads perl-threads-shared screen tcpdump nc mtr nmap tcl policycoreutils-python policycoreutils-python.x86_64 httpd libjpeg gd php-mysql php-odbc php-pear php-xmlrpc php-mhash php-bcmath php-mbstring php-process  php-snmp php-ldap php-xml net-snmp net-snmp-utils rrdtool rrdtool-devel rrdtool-php help2man net-snmp-devel binutils perl-devel --skip-broken && yum clean all

    2 NTP时间设置

    systemctl start ntpd
    timedatectl set-timezone "Asia/Shanghai"
    systemctl enable ntpd
    ntpdate cn.pool.ntp.org
    sudo systemctl restart ntpd
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    clock --systohc
    hwclock -w
    date '+%Y/%m/%d %T %Z'

    3 关闭Selinux,firewalld | iptables防火墙使用其一

    setenforce 0
    sed -i '7,12s/^/#&/g;7,12s/##/#/g;13cSELINUX=disabled' /etc/selinux/config

    4 安装确保Apache、Mariadb正常启动

    systemctl start httpd.service
    systemctl enable httpd.service
    systemctl start mariadb.service
    systemctl enable mariadb.service

    1. 解压缩源代码

    tar -zxvf zabbix-4.0.13.tar.gz

     2.创建用户账户

    groupadd zabbix
    useradd -g zabbix zabbix

    3.创建 Zabbix 数据库类型mysql

    [root@localhost zabbix-4.0.13]# find . -name *.sql
    ./database/ibm_db2/data.sql
    ./database/ibm_db2/images.sql
    ./database/ibm_db2/schema.sql
    ./database/mysql/data.sql
    ./database/mysql/images.sql
    ./database/mysql/schema.sql
    ./database/oracle/data.sql
    ./database/oracle/images.sql
    ./database/oracle/schema.sql
    ./database/postgresql/data.sql
    ./database/postgresql/images.sql
    ./database/postgresql/schema.sql
    ./database/sqlite3/data.sql
    ./database/sqlite3/images.sql
    ./database/sqlite3/schema.sql

    #初始化数据库

    [root@localhost zabbix-4.0.13]# systemctl start mariadb
    [root@localhost zabbix-4.0.13]# mysql_secure_installation

    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
    SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

    In order to log into MariaDB to secure it, we'll need the current
    password for the root user. If you've just installed MariaDB, and
    haven't set the root password yet, you should just press enter here.

    Enter current password for root (enter for none)://初次运行直接回车
    OK, successfully used password, moving on...

    Setting the root password or using the unix_socket ensures that nobody
    can log into the MariaDB root user without the proper authorisation.

    You already have your root account protected, so you can safely answer 'n'.

    Switch to unix_socket authentication [Y/n] Y //是否切换到 unix_socket 身份验证
    Enabled successfully!
    Reloading privilege tables..
    ... Success!


    You already have your root account protected, so you can safely answer 'n'.

    Change the root password? [Y/n] Y//是否设置root用户密码
    New password: //设置mysql的root密码
    Re-enter new password://再mysql的root密码输入
    Password updated successfully!
    Reloading privilege tables..
    ... Success!


    By default, a MariaDB installation has an anonymous user, allowing anyone
    to log into MariaDB without having to have a user account created for
    them. This is intended only for testing, and to make the installation
    go a bit smoother. You should remove them before moving into a
    production environment.

    Remove anonymous users? [Y/n] Y//是否删除匿名用户,生产环境建议删除
    ... Success!

    Normally, root should only be allowed to connect from 'localhost'. This
    ensures that someone cannot guess at the root password from the network.

    Disallow root login remotely? [Y/n] N//是否禁止root远程登录
    ... skipping.

    By default, MariaDB comes with a database named 'test' that anyone can
    access. This is also intended only for testing, and should be removed
    before moving into a production environment.

    Remove test database and access to it? [Y/n] Y//是否删除test数据库
    - Dropping test database...
    ... Success!
    - Removing privileges on test database...
    ... Success!

    Reloading the privilege tables will ensure that all changes made so far
    will take effect immediately.

    Reload privilege tables now? [Y/n] Y//是否重新加载权限表
    ... Success!

    Cleaning up...

    All done! If you've completed all of the above steps, your MariaDB
    installation should now be secure.

    Thanks for using MariaDB!

    #设置mysqlroot密码...
    mysqladmin -uroot password ...
    #登录mysql-root
    mysql -uroot -p...
    #建立zabbix数据库
    mysql -uroot -p... -e "create database zabbix character set utf8 collate utf8_bin;"

    #设置zabbix数据库本地登录
    mysql -uroot -p... -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"
    #设置zabbix账号密码
    mysql -uroot -p... -e "GRANT SELECT ON mysql.time_zone_name TO 'zibbix'@localhost IDENTIFIED BY 'zabbix';"
    #刷新数据库
    mysql -uroot -p... -e "flush privileges;"
    #导入zabbix数据库类型mysql

    cp -r zabbix-4.0.13 /var/www/html/zabbix
    cd /var/www/html/zabbix/database/mysql/
    mysql -uzabbix -pzabbix -e "use zabbix;source schema.sql;source images.sql;source data.sql;"
    #mysql -uzabbix -pzabbix zabbix < schema.sql
    #mysql -uzabbix -pzabbix zabbix < images.sql
    #mysql -uzabbix -pzabbix zabbix < data.sql
    #刷新数据库
    mysql -uroot -p... -e "flush privileges;"

    4.编译配置测试

    ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

    configure: error: MySQL library not found
    请安装yum install -y mysql-devel
    configure: error: Not found mariadb library
    请安装yum install -y mariadb-devel
    [root@localhost zabbix]# which mariadb
    /usr/bin/mariadb
    [root@localhost zabbix-4.0.13]# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

    rpm -qa | grep mariadb
    rpm -e --nodeps name
    configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
    yum install net-snmp net-snmp-devel

     5.测试编译配置结果

    Configuration:
    
      Detected OS:           linux-gnu
      Install path:          /usr/local
      Compilation arch:      linux
    
      Compiler:              cc
      Compiler flags:         -g -O2
    
      Library-specific flags:
        database:
        libXML2:               -I/usr/include/libxml2
        Net-SNMP:               -I/usr/local/include -I/usr/lib64/perl5/CORE -I. -I/usr/include
    
      Enable server:         yes
      Server details:
        With database:         MySQL
        WEB Monitoring:        cURL
          SSL certificates:      /usr/local/share/zabbix/ssl/certs
          SSL keys:              /usr/local/share/zabbix/ssl/keys
        Native Jabber:         no
        SNMP:                  yes
        IPMI:                  no
        SSH:                   no
        TLS:                   no
        ODBC:                  no
        Linker flags:                    -L/usr/lib64         -rdynamic
        Libraries:                    -lxml2    -lnetsnmp   -lz -lpthread -levent    -lcurl -lm -ldl  -lresolv -lpcre
        Configuration file:    /usr/local/etc/zabbix_server.conf
        External scripts:      /usr/local/share/zabbix/externalscripts
        Alert scripts:         /usr/local/share/zabbix/alertscripts
        Modules:               /usr/local/lib/modules
    
      Enable proxy:          no
    
      Enable agent:          yes
      Agent details:
        TLS:                   no
        Linker flags:                -rdynamic
        Libraries:              -lz -lpthread    -lcurl -lm -ldl  -lresolv -lpcre
        Configuration file:    /usr/local/etc/zabbix_agentd.conf
        Modules:               /usr/local/lib/modules
    
      Enable Java gateway:   no
    
      LDAP support:          no
      IPv6 support:          yes
    
    ***********************************************************
    *            Now run 'make install'                       *
    *                                                         *
    *            Thank you for using Zabbix!                  *
    *              <http://www.zabbix.com>                    *
    ***********************************************************

    6..编译并安装

    make install
    db.c:27:20: fatal error: mysql.h: No such file or directory
     # include "mysql.h"
                        ^
    compilation terminated.
    make[3]: *** [libzbxdb_a-db.o] Error 1
    make[3]: Leaving directory `/usr/local/src/zabbix-4.0.13/src/libs/zbxdb'
    make[2]: *** [install-recursive] Error 1
    make[2]: Leaving directory `/usr/local/src/zabbix-4.0.13/src/libs'
    make[1]: *** [install-recursive] Error 1
    make[1]: Leaving directory `/usr/local/src/zabbix-4.0.13/src'
    make: *** [install-recursive] Error 1
    [root@localhost zabbix-4.0.13]# find / -name "mysql.h"
    /usr/include/mysql/mysql.h
    /usr/include/mysql/server/mysql.h
    make[2]: Leaving directory `/var/www/html/zabbix/man'
    make[1]: Leaving directory `/var/www/html/zabbix/man'
    Making install in misc
    make[1]: Entering directory `/var/www/html/zabbix/misc'
    make[2]: Entering directory `/var/www/html/zabbix/misc'
    make[2]: Nothing to be done for `install-exec-am'.
    make[2]: Nothing to be done for `install-data-am'.
    make[2]: Leaving directory `/var/www/html/zabbix/misc'
    make[1]: Leaving directory `/var/www/html/zabbix/misc'
    make[1]: Entering directory `/var/www/html/zabbix'
    make[2]: Entering directory `/var/www/html/zabbix'
    make[2]: Nothing to be done for `install-exec-am'.
    make[2]: Nothing to be done for `install-data-am'.
    make[2]: Leaving directory `/var/www/html/zabbix'
    make[1]: Leaving directory `/var/www/html/zabbix'

    7.查看和编辑配置文件

    在此编辑 Zabbix agent 的配置文件 /usr/local/etc/zabbix_agentd.conf
    您需要为每台安装了 zabbix_agentd 的主机配置这个文件。

    您必须在这个文件中指定 Zabbix server 的 IP 地址 。若从其他主机发起的请求会被拒绝。

    在此编辑 Zabbix server 的配置文件 /usr/local/etc/zabbix_server.conf
    您必须指定数据库的名称、用户和密码(如果使用的话)。

    如果您进行小型环境部署(最多十个受监控主机),其余参数的默认值将适合您的环境。 如果要最大化 Zabbix server(或 proxy)的性能,则应更改默认参数。 详见性能调整。

    如果您安装了 Zabbix proxy,请在此编辑 proxy 的配置文件 /usr/local/etc/zabbix_proxy.conf
    您必须指定 Zabbix server 的 IP 地址和 Zabbix proxy 主机名(必须被 Zabbix server 识别),同时也要指定数据库的名称、用户和密码(如果使用的话)。

    8.设置模块zabbix密码

    sed -i s/'# DBPassword='/'DBPassword=zabbix'/g  /usr/local/etc/zabbix_server.conf

    9.复制zaabix到/var/html/www

    cp -br  frontends/php/ /var/www/html/zabbix

    10.授权zabbix目录

    chcon -R -t httpd_sys_content_t /var/www/html/zabbix
    chown zabbix.apache /var/www/html/zabbix/ -R

    11.配置模块参数调优

    sed -i s/'^max_execution_time.*'/'max_execution_time = 300'/g /etc/php.ini
    sed -i s/'^max_input_time.*'/'max_input_time = 300'/g /etc/php.ini
    sed -i s/'^post_max_size.*'/'post_max_size = 16M'/g /etc/php.ini
    sed -i s/'^;date.timezone.*'/'date.timezone = Asia/Shanghai'/g /etc/php.ini

    12.firewalld | iptables (默认端口80)

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    firewall-cmd --permanent --add-port=80/tcp
    firewall-cmd --reload
    firewall-cmd --list-ports

    13.启动zabbix

    systemctl restart httpd
    systemctl restart mariadb

     14.守护进程

    zabbix_server
    #zabbix_agentd
    #zabbix_proxy

     注:zabbix_server默认日志文件位置在/tmp/zabbix_server.log

    
    
  • 相关阅读:
    sleep() 和 wait() 区别是什么?
    JAVA面试中需要准备的点
    javascript 取掉空格自定义函数
    code manager tools myeclipse10 svn插件安装及使用
    javascript 常用兼容fire fox的解决办法
    javascript 获取标签内的内容
    javascript dom与字符串相互转换
    javascript window.showModalDialog不兼容goole解决方案
    javascript js获取url及url参数解析
    javascript table排序之jquery.tablesorter.js
  • 原文地址:https://www.cnblogs.com/huixst/p/11704991.html
Copyright © 2011-2022 走看看