首页 > 代码库 > centos7 zabbix3 install done

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体系结构

技术分享

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是可以分离的,这里为了实验方便,安装在同一台主机上。

技术分享

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

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

#会有如下警告:

技术分享

①在当前目录生成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是默# 认扩展,

#并不是默认文件

技术分享

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

技术分享

# :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

技术分享

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

技术分享

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

技术分享

技术分享

注:如果配置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

技术分享

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

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

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

#报错 技术分享

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

技术分享

#因为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

技术分享

#设置开机启动

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/

技术分享

技术分享

nginx -t

service nginx reload

#2)安装zabbix

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

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

技术分享

解决:

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

第一步:

技术分享

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

#cd /var/lib/php/

#chown root.nginx -R session

#/etc/init.d/nginx restart

第二步:

技术分享

第三步:

技术分享

报错:

技术分享

分析:

技术分享

技术分享

都没有问题。

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

技术分享

第四步:

技术分享

第五步:

技术分享

第六步:

技术分享

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

技术分享

技术分享

七、安装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.创建一个监控组

技术分享

技术分享

#3.添加一个监控主机

技术分享

技术分享

#添加监控模板

技术分享

技术分享

技术分享

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

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

#4.查看监控数据

技术分享

技术分享

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

centos7 zabbix3 install done