首页 > 代码库 > 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