• centos7 zabbix3 install done


    centOS7安装zabbix3.0

    一、前提

    现在zabbix出现了3.0版本,服务器端只支持centOS7,客户端和代理可以支持centOS6,实验环境是服务端安装centOS7,客户用centOS6.5

    如没有特别说明文档中#号为解释号,在linux命令符界面#号就是解释号。

    1.服务器环境

    [root@localhost ~]# cat /etc/redhat-release

    CentOS Linux release 7.0.1406 (Core)

    [root@localhost ~]# uname -r

    3.10.0-123.el7.x86_64

    Server:192.168.0.77

    Client:192.168.0.74

    2.zabbix架构分析需要安装的软件

    官方安装需求:

    https://www.zabbix.com/documentation/3.0/manual/installation/requirements

    1)zabbix体系结构

    clip_image002

    2)安装zabbix所需的软件

    从图中可以看出,安装zabbix需要如下:

    1.Zabbix web是php写的,故需要安装php

    2.Zabbix database是存放数据存的地方,只要关系型数据库都行,这里选择mysql

    3. Zabbix server中可以看出是通过web页管理的,故需要安装http,这里选择nginx

    4.Zabbix proxy这个是选择性安装的

    可以选择LAMP或LNMP,我这里选择主流的LNMP环境

    因为主要是用zabbix软件,所以LAMP环境用yum安装

    Zabbix database和Zabbix server是可以分离的,这里为了实验方便,安装在同一台主机上。

    clip_image004

    二、安装前操作(服务端和客户端)

    1.centos7安装兼容包

    服务器端和客户端同时操作

    #兼容centOS6之前的命令

    yum install net-tools

    2.关闭iptables

    service iptables stop

    chkconfig iptables off

    不关闭也可以要让其端口通过防火墙

    3.关闭selinux

    临时关闭:setenforce 0

    永久性关闭:

    vi /etc/selinux/config

    把SELINUX=enforcing 改为SELINUX=disabled

    shutdown -r now

    4.关闭防火墙

    #停止firewall IT网,http://www.it.net.cn

    #禁止firewall开机启动

    systemctl stop firewalld.service

    systemctl disable firewalld.service

    5.时间同步(最好要)

    zabbix监控软件是一款时间性要求比较准确的的软件,所以最好点一下时间同步,如果时间相关太大有可能会出问题。

    yum install ntp -y

    /usr/sbin/ntpdate pool.ntp.org

    echo '#tim sync by hua at 2016.7.2'>>/var/spool/cron/root

    echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root

    crontab -l

    . zabbix服务器端--nginx安装

    nginx、php用yum安装、mysql为自带的二进制安装包5.6安装

    1.安装nginx

    mkdir /disk1/tools

    cd /disk1/tools

    rpm -ih http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

    yum install nginx -y

    2.启动nginx

    #启动/停止/重启nginx

    service nginx start/stop/restart

    service nginx status

    #设置开机启动

    chkconfig nginx on

    . zabbix服务器端--mysql安装

    安装mysql建议用二进制文件安装,当然如果你感觉数据库关系不大,也可以直接用yum安装,如果用yum安装要用remi源安装,因为我们接下来安装php用的是remi源,如果直接yum安装mysql,在用remi源yum安装php中的php-mysql会报错。

    #yum --enablerepo=remi install -y mysql mysql-server mysql-devel

    1.mysql下载及安装

    #1)安装第三方remi源

    cd /disk1/tools/

    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

    wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

    rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

    rpm -ih remi-release-7.rpm

    #2)安装共享库

    #yum install libaio -y

    yum --enablerepo=remi install libaio

    #3)添加用户和组

    groupadd mysql

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

    #4)建立相关的目录

    #mysql软件目录

    mkdir /disk1/app

    #mysql日志目录

    mkdir -p /disk1/logs/mysql5.6

    #mysql数据库目录

    mkdir -p /disk1/mysqldata/mysql5.6

    chown mysql.mysql -R /disk1/mysql

    chown mysql.mysql -R /disk1/logs/mysql5.6

    chown mysql.mysql -R /disk1/mysqldata

    #5)下载安装mysql

    wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz

    tar -xf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz

    mv mysql-5.6.31-linux-glibc2.5-x86_64 /disk1/app/mysql5.6.31

    cd /disk1/app

    ln -s /disk1/app/mysql5.6.31 /disk1/app/mysql

    chown mysql.mysql -R mysql

    chown mysql.mysql -R mysql5.6.31

    ll

    2.建立mysql数据库

    cd mysql5.6.31/

    ./scripts/mysql_install_db --user=mysql --basedir=/disk1/app/mysql5.6.31 --datadir=/disk1/mysqldata/mysql5.6

    #报错:是因为centos7安装时选择了默认的最小化安装,如果没报错请跳过

    FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:

    Data::Dumper

    #解决:

    yum install -y perl-Module-Install.noarch

    #重新安装

    cd mysql5.6.31/

    ./scripts/mysql_install_db --user=mysql --basedir=/disk1/app/mysql5.6.31 --datadir=/disk1/mysqldata/mysql5.6

    #会有如下警告:

    clip_image006

    ①在当前目录生成my.cnf配置文件

    ②/etc/my.cnf已存在(安装系统时就存在了),如不想删除,

    用mysqld_safe命令带--defaults-file来指定my.cnf的位置,后面修改启动文件用到

    为了将来可以安装多个二进制mysql,所以我们采用指定my.cnf位置方法

    3.修改mysql配置文件my.cnf

    #建立日志目录

    mkdir -p /disk1/logs/mysql5.6/error

    mkdir -p /disk1/logs/mysql5.6/slow

    chown mysql.mysql -R /disk1/logs/mysql5.6

    #修改my.cnf

    cp my.cnf my.cnf.org

    vi my.cnf

    ##add by hua 2016.7.9##

    #basedir = /disk1/app/mysql5.6.31

    #datadir = /disk1/mysqldata/mysql5.6

    port = 3306

    server_id =1

    #socket = /tmp/mysql.sock

    #设置默认编码,也可以取消

    default-storage-engine=INNODB

    character-set-server=utf8

    collation-server=utf8_general_ci

    log-bin=/disk1/logs/mysql5.6/mysql-bin

    innodb_file_per_table=1

    slow-query-log = on

    slow_query_log_file = /disk1/logs/mysql5.6/slow/slowquery.log

    long_query_time = 3

    log-queries-not-using-indexes = on

    log-error = /disk1/logs/mysql5.6/error/error.log

    #注添加这些配置路径一定要存在并有写入权限,要不然会报pid错误

    4.修改启动脚本

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

    vim /etc/init.d/mysqld

    46 basedir=/disk1/app/mysql5.6.31

    47 datadir=/disk1/mysqldata/mysql5.6

    58 lock_file_path="$lockdir/mysql5.6"

    #214 conf=/etc/my.cnf,修改为安包目录下的my.cnf,这样就也不会读/etc/my.cnf

    214 conf=$basedir/my.cnf

    #第248和252行把-e改为-c,使默认配置-c, --defaults-file #/disk1/app/mysql5.6.26/bin/my_print_defaults --help得知-e是默# 认扩展,

    #并不是默认文件

    clip_image008

    #283行,在$bindir/mysqld_safe添加“--defaults-file="$basedir/my.cnf"”

    clip_image010

    # :wq保存,退出

    5.测试启动文件配置读取参数(可跳过)

    [root@localhost mysql5.6.31]# cd /disk1/app/mysql5.6.31/

    [root@localhost mysql5.6.31]#./bin/my_print_defaults -c /disk1/app/mysql5.6.31/my.cnf mysqld

    --sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    --port=3306

    --server_id=1

    --default-storage-engine=INNODB

    --character-set-server=utf8

    --collation-server=utf8_general_ci

    --log-bin=/disk1/logs/mysql5.6/mysql-bin

    --innodb_file_per_table=1

    --slow-query-log=on

    --slow_query_log_file=/disk1/logs/mysql5.6/slow/slowquery.log

    --long_query_time=3

    --log-queries-not-using-indexes=on

    --log-error=/disk1/logs/mysql5.6/error/error.log

    注:

    ① 测试参数是通过sh -x /etc/init.d/mysqld 调试启动脚本发现的

    ② 要获取帮助命令可以使用--help

    #测试mysql5.6启动文件

    #主要是看一下关键的启动参数;能否找到安装目录下的my.cnf,而非/etc/my.cnf

    sh -x /etc/init.d/mysqld start

    clip_image012

    6. 启动服务 配置环境变量 授权

    #1)加入开机启动

    chkconfig mysqld on

    chkconfig --list mysqld

    #2)停止/启动/重启mysql

    service mysqld status

    service mysqld stop

    service mysqld start

    service mysqld restart

    #3)设置mysql环境变量

    vi /etc/profile.d/mysql.sh

    #添加如下内容:

    export PATH=$PATH:/disk1/app/mysql/bin

    #执行命令使用其生效

    source /etc/profile.d/mysql.sh

    #4)修改登陆密码

    mysql -uroot

    set password for 'root'@'localhost' = password('123456');

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.%.%' IDENTIFIED BY '123456' WITH GRANT OPTION;

    flush privileges;

    q;

    五、zabbix服务器端--php安装

    根据官方要求:https://www.zabbix.com/documentation/3.0/manual/installation/requirements

    clip_image014

    1.安装php

    #安装php依赖

    yum --enablerepo=remi install -y curl curl-devel

    #安装php

    yum --enablerepo=remi install -y php php-devel php-mysql php-gd php-bcmath php-ctype php-xml php-xmlreader php-xmlwriter php-session php-mbstring php-gettext php-ldap php-fpm

    #注:

    ①php-net-socket不用安装 yum安装自动会--enable-sockets

    通过phpinfo()测试就知道

    ②php-mysqli默认支持通过phpinfo()测试就知道

    2.修改php.ini(zabbix硬性要求)

    cp /etc/php.ini /etc/php.ini.orig

    vim /etc/php.ini

    375 max_execution_time = 300

    385 max_input_time = 300

    396 memory_limit = 128M

    663 post_max_size = 16M

    791 upload_max_filesize = 2M

    869 date.timezone = PRC

    egrep "max_execution|max_input_time|memory_limit|post_max|upload_max|date.timezone" /etc/php.ini

    3.修改nginx配置让其支持php

    cd /etc/nginx/conf.d/

    cp default.conf default.conf.orig

    #让nginx支持php,编辑default.conf,第10行添加index.php

    #再把30-36行注解去掉即可。

    vim default.conf +10

    clip_image016

    clip_image018

    注:如果配置34行的$document_root不行的话就改为/usr/share/nginx/html

    #语法检查

    nginx -t

    #重启nginx

    service nginx restart

    4.启动php并测试

    #1)启动php

    service php-fpm start

    service php-fpm status

    #2)测试php

    echo '<?php phpinfo() ?>' > /usr/share/nginx/html/index.php

    #打开本地浏览器输入服务器ip地址,我的为192.168.0.79

    clip_image020

    注:如果不能访问说明防火墙没有关闭

    #测试完后为了安全起见记得删除,养成好的习惯

    rm -f /usr/share/nginx/html/index.php

    六、zabbix服务器端安装(yum安装)

    1.zabbinx下载及安装

    #方法一:安装zabbix (yum源安装)

    cd /disk1/tools/

    #wget http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

    #官方太慢改用阿里云

    wget http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

    rpm -ih zabbix-release-3.0-1.el7.noarch.rpm

    #安装依赖,如果不行就安装开发包iksemel-devel libssh2-devel

    yum install -y iksemel libssh2 OpenIPMI-libs OpenIPMI-modalias dejavu-fonts-common dejavu-sans-fonts libtool-ltdl net-snmp-libs fping unixODBC libxml2-devel net-snmp-devel

    #安装zabbix服务端,如果不行就直接去阿里云把相关的rpm包下载下来直接安装

    yum install zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql -y

    #发现用yum源报错,决定用rpm包安装zabbix

    mkdir zabbix

    cd zabbix

    wget http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-get-3.0.3-1.el7.x86_64.rpm

    wget http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-server-mysql-3.0.3-1.el7.x86_64.rpm

    wget http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-web-mysql-3.0.3-1.el7.noarch.rpm

    wget http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-web-3.0.3-1.el7.noarch.rpm

    ll

    rpm -ih zabbix-get-3.0.3-1.el7.x86_64.rpm

    rpm -ih zabbix-server-mysql-3.0.3-1.el7.x86_64.rpm

    rpm -ih zabbix-web*

    #方法二:用源安装

    当然也可以用源安装,具体见官方安装文档

    #https://www.zabbix.com/documentation/3.0/manual/installation/install

    #可以去官网下载最新版本

    cd /disk1/tools/

    #安装依赖,如果不行就安装开发包iksemel-devel libssh2-devel

    yum install -y iksemel libssh2 OpenIPMI-libs OpenIPMI-modalias dejavu-fonts-common dejavu-sans-fonts libtool-ltdl net-snmp-libs fping unixODBC libxml2-devel net-snmp-devel

    #下载zabbix并安装

    wget http://ufpr.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz

    tar -xf zabbix-3.0.3.tar.gz

    cd zabbix-3.0.3

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

    2.把zabbix脚本导入mysql中

    #1)创建zabbix数据库并授权

    mysql -uroot -p

    #输入密码后,输入以下命令

    create database zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    show databases;

    GRANT ALL PRIVILEGES ON zabbix.* TO 'hua'@'localhost' IDENTIFIED BY '123456';

    flush PRIVILEGES;

    q;

    #2)初始化数据库

    cd /usr/share/doc/zabbix-server-mysql-3.0.3/

    zcat create.sql.gz|mysql -uroot -p -h localhost zabbix

    3.修改zabbix配置

    cd /etc/zabbix/

    cp zabbix_server.conf zabbix_server.conf.orig

    #建立日志目录

    mkdir /disk1/logs/zabbix

    chown zabbix.zabbix -R /disk1/logs/zabbix

    #修改zabbix配置

    vim zabbix_server.conf

    38 LogFile=/disk1/logs/zabbix/zabbix_server.log

    81 DBHost=localhost

    91 DBName=zabbix

    107 DBUser=hua

    115 DBPassword=123456

    #4.启动zabbix并安装

    service zabbix-server start

    service zabbix-server status

    #报错 clip_image022

    #查看日志:tail -20 /disk1/logs/zabbix/zabbix_server.log

    clip_image024

    #因为mysql5.6的sock文件不在/var/lib/mysql/mysql.sock,所以建立一个软连接

    mkdir /var/lib/mysql

    ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

    chown mysql.mysql -R /var/lib/mysql

    #重启zabbix

    service zabbix-server start

    service zabbix-server status

    clip_image026

    #设置开机启动

    chkconfig zabbix-server on

    4. 通过web配置zabbix

    #1)修改nginx指向zabbix目录

    要配置web得找出zabbix的web目录,配置一下nginx就行了。

    通过“rpm -ql zabbix-web-3.0.3-1.el7.noarch|more”命令得到zabbix web目录

    [root@localhost zabbix]# rpm -ql zabbix-web-3.0.3-1.el7.noarch|more

    /etc/httpd/conf.d/zabbix.conf

    /usr/share/zabbix

    /usr/share/zabbix/actionconf.php

    /usr/share/zabbix/adm.gui.php

    /usr/share/zabbix/adm.housekeeper.php

    /usr/share/zabbix/adm.iconmapping.php

    /usr/share/zabbix/adm.images.php

    /usr/share/zabbix/adm.macros.php

    /usr/share/zabbix/adm.other.php

    /usr/share/zabbix/adm.regexps.php

    /usr/share/zabbix/adm.triggerdisplayoptions.php

    /usr/share/zabbix/adm.triggerseverities.php

    /usr/share/zabbix/adm.valuemapping.php

    /usr/share/zabbix/adm.workingtime.php

    /usr/share/zabbix/api_jsonrpc.php

    /usr/share/zabbix/app

    #从上面得知web目录极可能在/usr/share/zabbix下,尝试修改nginx配置

    cd /etc/nginx/conf.d/

    clip_image028

    clip_image030

    nginx -t

    service nginx reload

    #2)安装zabbix

    在本地电脑绑定host打开浏览器访问zabbix.hua.com/index.php,进入安装界面

    报500错误,打开页网空白,查看nginx错误日志,如图:

    clip_image032

    解决:

    etc/zabbix/web/maintenance.inc.php 和/usr/share/zabbix/include/classes/core/ZBase.php

    没有访问权限

    我的php-fpm是nginx用户,故设置nginx权限

    chown nginx.nginx -R /etc/zabbix/web

    chown nginx.nginx -R /usr/share/zabbix/include/classes/core

    重新打开zabbix.hua.com/index.php

    第一步:

    clip_image034

    #注,如果点击一直没反应,不能下一步,一般是session权限不够,我这里的php权限是nginx

    #cd /var/lib/php/

    #chown root.nginx -R session

    #/etc/init.d/nginx restart

    第二步:

    clip_image036

    第三步:

    clip_image038

    报错:

    clip_image040

    分析:

    clip_image042

    clip_image044

    都没有问题。

    最后解决方法:把Database host把“localhost”改为“127.0.0.1”,如图:

    clip_image046

    第四步:

    clip_image048

    第五步:

    clip_image050

    第六步:

    clip_image052

    第七步:登陆(默认用户名和密码是admin zabbix)

    clip_image054

    clip_image056

    七、安装zabbix客户端

    1.zabbix客户端安装

    #安装依赖

    yum install unixODBC

    cd /disk1/tools/

    #下载客户端,系统系统为centOS6.5 64位,为了加快速度用阿里云下载

    #wget http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm

    #用yum安装出问题,所以选择直接下载rpm包安装

    mkdir zabbix

    cd zabbix

    wget http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.3-1.el6.x86_64.rpm

    wget http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-sender-3.0.3-1.el6.x86_64.rpm

    2.zabbix客户端配置

    #1)建立相关目录

    mkdir /disk1/logs/zabbix

    chown zabbix.zabbix -R /disk1/logs/zabbix

    #2)修改配置

    cd /etc/zabbix/

    cp zabbix_agentd.conf zabbix_agentd.conf.orig

    vim zabbix_agentd.conf

    32 LogFile=/disk1/logs/zabbix/zabbix_agentd.log

    95 Server=192.168.0.79 #服务器端的IP地址

    3.启动zabbix客户端

    /etc/init.d/zabbix-agent start

    ps -ef |grep zabbix

    #设置开机启动

    chkconfig zabbix-agent on

    chkconfig --list zabbix-agent

    4.测试

    1)方法一:命令测试

    #登陆zabbix服务端执行如下命令

    zabbix_get -s 192.168.0.75 -k system.hostname

    [root@localhost conf.d]# zabbix_get -s 192.168.0.75 -k system.hostname

    vm5

    注:

    1.其中192.168.0.75为客户端ip

    2. system.hostname为item-key,具体说明详见下面连接

    https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent

    2)方法二:通过web添加监控主机

    #1.浏览器登陆web

    http://zabbix.hua.com/

    #2.创建一个监控组

    clip_image058

    clip_image060

    #3.添加一个监控主机

    clip_image062

    clip_image064

    #添加监控模板

    clip_image066

    clip_image068

    clip_image070

    从上面看出刚才看主机名为Visible name的名字,模板套用了名为“Template OS Linux”的模板

    状态为Enabled,表示主机在运行,处于可用状态。

    #4.查看监控数据

    clip_image072

    clip_image074

    有数据生成,表示监控成功了。

  • 相关阅读:
    关于数组的tip
    php 计算注册的天数
    PHP推送接口
    nginx 301 重定向
    tp3、tp5 输出上一次sql语句
    MySQL not null 取消条件限制
    vscode查看PHP函数来源
    关于git及项目的归档
    我的第一个JW项目——网上商城设计说明书(六)
    我的第一个JW项目——网上商城设计说明书(五)
  • 原文地址:https://www.cnblogs.com/ligao/p/6143122.html
Copyright © 2020-2023  润新知