安装环境: VM 10 + CentOS-6.5-x86_64-minimal
虚拟机网络是NAT方式, 动态IP
Xshell登录到Centos操作
刚装的centos,啥都没有,先配一下yum
首先安装zabbix需要一定的环境,也就是常说的的LAMP或者LNMP
LAMP = Linux + Apache + MySQL + PHP
LNMP = Linux + Nginx + MySQL + PHP
当然数据库不一定要是MySQL, 但是毕竟MySQL和PHP是好机油嘛~
Zabbix-Server对时间的精准要求比较高, 时间对数据的计算等都有影响,因此最好设置ntp时间同步.
# yum install ntp
# /usr/sbin/ntpdate pool.ntp.org
有的安装是安装用Zabbix官方源和epel源安装的, 然后用yum来装zabbix, 但是这样不太好. 因为我连php的那个文件夹都没找到, 而源码中是有这个php文件夹的, 里面有很多的页面
安装所需的依赖包
# yum -y install httpd mysql mysql-server php php-mysql php-common php-mbstring php-gd php-odbc php-pear curl curl-devel net-snmp net-snmp-devel perl-DBI php-xml php-bcmath
数据库配置并启动服务
# vim /etc/my.cnf
在symblic-links=0后面添加两句话
character-set-server=utf8 # 设置数据库的字符集为utf8
innodb_file_per_table=1 # 让innodb的每个表文件单独存储
配置好了之后启动服务
# chkconfig mysqld on
# service mysqld start
添加用户
# groupadd zabbix
# useradd zabbix –g zabbix
下载并解压zabbix-2.2.0
先用yum安装一个wget
# yum install wget
# wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.0/zabbix-2.2.0.tar.gz
# tar zxvf zabbix-2.2.0.tar.gz
解压之后并不着急编译安装, 还是对数据库进行设置
创建zabbix的数据库
设置MySQL的root用户密码:
# mysqladmin –uroot password admin
# mysql –uroot –padmin
登录进去后创建数据库zabbix(这里是数据库名), 并对添加的zabbix赋予权限
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix’;
mysql> flush privileges;
导入zabbix解压文件中的数据库
以zabbix用户登录到MySQL中
# mysql –uzabbix –pzabbix
# use zabbix //这里一定要选则zabbix, 否则报错No Database selected
mysql> source /root/zabbix-2.2.0/database/mysql/schema.sql;
mysql> source /root/zabbix-2.2.0/database/mysql/images.sql;
mysql> source /root/zabbix-2.2.0/database/mysql/data.sql;
以上脚本导入请务必按照顺序来, 否则谁试谁知道
编译安装zabbix
进入到zabbix的解压目录
# cd ~/zabbix-2.2.0
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent
--
with
-mysql --
with
-net-snmp --
with
-libcurl
[root@centos zabbix-2.2.0]# --with-mysql --with-net-snmp --with-libcurl
-bash: --with-mysql: command not found
如果报上面的错就安装下面的依赖包
# yum install net-snmp-devel curl curl-devel mysql-devel
刚装的系统, 忘了安装gcc...
# yum install gcc
成功的configure之后会出现一下画面
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
# make install
添加服务对应的端口
# vim /etc/services
直接在文件末尾添加如下语句:
# Zabbix
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
修改zabbix配置
设置如下的属性:
# vim /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户名
DBPassword=zabbix #数据库密码
ListenIP=127.0.0.1 #数据库ip地址
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #zabbix运行脚本存放目录
# vim /usr/local/zabbix/etc/zabbix_agent.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1 #启用自定义key
添加开机启动脚本
# cp /root/zabbix-2.2.0/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server
# cp /root/zabbix-2.2.0/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
# chmod +x /etc/rc.d/init.d/zabbix_server #添加脚本执行权限
# chmod +x /etc/rc.d/init.d/zabbix_agentd #添加脚本执行权限
# chkconfig zabbix_server on #添加开机启动
# chkconfig zabbix_agentd on #添加开机启动
修改zabbix开机启动脚本中的zabbix安装目录
# vim /etc/rc.d/init.d/zabbix_server #编辑服务端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安装目录
# vim /etc/rc.d/init.d/zabbix_agentd #编辑客户端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安装目录
将zabbix的页面文件copy到指定目录
# mkdir /var/www/html/zabbix
在这里root用户下cp是别名
# vim ~/.bashrc
把下面的一句注释掉
alias cp='cp -i'
然后退出shell, 重新登录
# cp -rf ~/zabbix-2.2.0/frontends/php/* /var/www/html/zabbix/
# cd /var/www/html/
# chown -R zabbix:zabbix zabbix
# vim /etc/php.ini
找到如下几项,改成下面的值,前面有;号的要删掉
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
post_max_size = 32M
配置apache文件,定义安装访问zabbix的虚拟主机
vim /etc/httpd/conf/httpd.conf
设置如下属性
DocumentRoot "/var/www/html"
ServerName 192.168.239.130
启动apache
# service httpd start
启动zabbix服务
service zabbix_server start #启动zabbix服务端
service zabbix_agentd start #启动zabbix客户端
vim /etc/hosts
添加
192.168.140.133 centos.test.com localhost
验证一下
[root@centos ~]# wget 192.168.140.133/zabbix/setup.php
--2016-07-31 19:48:45-- http://192.168.140.133/zabbix/setup.php
Connecting to 192.168.140.133:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2060 (2.0K) [text/html]
Saving to: “setup.php”
100%[======================================>] 2,060 --.-K/s in 0s
2016-07-31 19:48:45 (234 MB/s) - “setup.php” saved [2060/2060]
这里在虚拟机上可以访问我们的zabbix网页, 但是在虚拟机的宿主主机上却访问不了,
但是呢, 虚拟机和宿主主机和以相互ping通, 我判断是防火墙有问题
然后就是关闭防火墙, 据说一般工程上是不允许这样做的, 但是我们是实验嘛, 先把防火墙都关了, 一下是方法
永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
重新启动启动apache
# service httpd restart
在windows上也可以访问http://192.168.140.133/zabbix/setup.php了
接下来可以进行下面的设置了
可以看到这里都是OK呢, 说明配置木有问题, 如果你配的不对的话,请自行检查问题, 嘻嘻
这里的192.168.140.133是我自己配上去的, 原来是localhost, 这里大伙就不要改了, 就用localhost, 后面有坑
我觉得是数据库没配好,
vim /usr/local/zabbix/etc/zabbix_server.conf
一看端口号还没指定了, 赶快给了一个3306
DBPort=3306
然后重启zabbix_server
# service zabbix_server restart
然后接着测试数据库,发现仍然连不上
难道是这里配错了?
苦恼中, 后来心一横, 把原来配的ip改成localhost, 居然就成了
我原本以为这个参数是要配为ip, localhost会指的是宿主的windows, 所以才改的ip, 我表示很纳闷
接着进行下一步
然后next的时候又出错了
出现Fail的原因是zabbix的配置文件没有,需要点击"Download configuration file", 将zabbix.conf.php下载到本地在上传到服务器的
/var/www/html/zabbix/conf/目录下,然后在web页面Retry即可
上传之前先安装一个工具:
# yum install lrzsz
这个传文件特别方便呢
# rz // 打开windows的文件选择框
选中下载的zabbix.conf.php, 传到/var/html/zabbix/conf/目录下
# cp zabbix.conf.php /var/www/html/zabbix/conf/
然后就是重试, 然后就妥妥的OK了
如果因为手误,数据库密码或者用户名等的填写错了,后面会一直报错,我们可以手动的去编辑配置文件vim /var/www/html/zabbix/conf/zabbix.conf.php
手动定义相关的参数即可
点击finish, 会跳转到登录页面了, 也就是本次安装成功了
进入登录界面点击登录,默认用户名是admin, 密码是zabbix
更改zabbix默认语言为简体中文、替换监控图像上系统默认的中文字体
1、修改系统配置文件,让web页面支持简体中文显示
如果已经是下面这样的就不用改了
vi /usr/local/nginx/html/zabbix/include/locales.inc.php #编辑修改
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false),
修改为
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => true),
稀里糊涂的搞出来了, 真是虎头蛇尾
我在这里主要是zabbix_server
# vim /usr/local/zabbix/etc/zabbix_server.conf
只设置了
LogFile
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
刚刚其实我的想法是对的, 在验证数据库的时候, 确实还是应该数据虚拟机的ip, 但是为什么输入localhost就行我也不得而知