原由
项目上需要将原有的产品全部统一为oracle数据库,做安全限制,原有的zabbix为mysql版本,需要下载oracle版本的zabbix。
背景
产品为达到监控各服务器运行状态,参数等,产品选择使用了zabbix,后端代码通过调用zabbix提供的API来获取zabbix上监控数据。
解决过程
先说最终解决结果吧:我们是通过zabbix的API去获取zabbix的监控数据的,也就是说我们不是直接操作的zabbix的数据库。既然不是直接操作的数据库,所以项目上对zabbix的oracle数据库做安全限制是不可能的。所以,下载任何数据库版本的zabbix都是可行的(通过API调用,就不需要去关心他是用什么数据库语言调用的zabbix了)。所以解决方案是直接延用原来的mysql版本的数据库即可。
当然,我之前是不知道是这样的结果,傻傻的下载了zabbix的oracle版本,官网推荐的下载没有oracle版本的下载教程,网上查找的都讲的很繁琐,还是费了点功夫把oracle版本的zabbix下载出来了。
下载步骤
安装步骤zabbix官网都有,不用在网上搜索来搜索去。总的来说zabbix安装分为两种:包安装和源码安装。建议大家使用包安装。这里介绍两种安装方式:mysql版本的包安装和oracle版本的源码安装。这里是把agent和server端一同安装。
需要说明的是:zabbix_server端主要用于监控各个zabbix_agent端的信息。如果A服务器上已经安装了server端用于监控其他服务器,其他服务器就只需要安装zabbix_agent端即可。
mysql版的包安装
1.配置yum源
rpm -ivh [http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm]
2.安装epel
yum install -y epel-release
3.安装server端、agent端和前端
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent
4.下载sql
zabbix的sql会随yum下载好的,zabbix的数据库主要就是存放我们需要的监控项和各类参数。安装下来的数据库sql有zabbix的相关包和初始化数据。安装下来的包名是create.sql.gz
sql包路径:/usr/share/doc/zabbix-server-mysql-3.0.4/create.sql.gz
5.导入sql
创建一个mysql数据库,将下载下来的sql导入数据库,导入时可能会遇到和权限相关的问题,基本上是因为你当前数据库用户的权限不足导致的。
6.配置数据库连接信息
vim /etc/zabbix/zabbix_server.conf
修改数据库连接信息与之前创建的mysql数据库连接信息一致:
DBHost=DB-IP
DBName=XX
DBUser=XX
DBPassword=XX
7.启动
zabbix:
systemctl start zabbix-server
systemctl enable zabbix-server
httpd:
systemctl start httpd
systemctl enable httpd
8.启动时遇到的常见问题
8.1 启动报错:Postgresql FATAL: could not create semaphores: No space left on device
报错提示空间不足,实则为信号量不足。
解决方案参考:http://blog.163.com/dazuiba_008/blog/static/363349812016314739538/
8.2 zabbix_server不能正常启动
现象
输入systemctl start zabbix-server后,有报错提示,同时访问WEB 页面可能会看到以下结果:
解决过程
/var/log/zabbix/zabbix_server.log
结果如下:
解决办法:
1.安装缺失的依赖包:
yum install gnutls
2.重启 zabbix_server
9.开启防火墙端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
10.配置zabbix.conf
vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
11.启动zabbixweb端并配置web
登录zabbix,并配置相关信息。默认密码admin/zabbix。在安装完之后按照部署表格更改zabbix管理员密码。
登录地址:服务器ip/zabbix
12.安装和配置客户端
12.1在需要监控的服务器上安装zabbix_agent
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum -y install zabbix-agent
12.2 修改配置文件,指定服务器
vim /etc/zabbix/zabbix_agentd.conf
Server=zabbix-server-ip
ServerActive=zabbix-server-ip
Hostname=主机名称()
oracle版的编码安装
1.下载oracle客户端并配置连接
去官网下载,建议下载版本10以上的oracle,我下载的是版本11的
2.下载zabbix源代码
解压:tar -zxvf zabbix-3.4.0.tar.gz
3.编译安装
./configure --enable-server --enable-agent --with-oracle=/u01/app/oracle/product/11.2.0/xe --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
/u01/app/oracle/product/11.2.0/xe 为oracle安装路径
如果需要指定zabbix安装路径,需要加上--prefix=安装路径,例如:
--prefix=/home/zabbix
自Zabbix 3.0.0版本起,SMTP认证需要--with-libcurl 配置选项,同时要求cURL 7.20.0或者更改版本。
自Zabbix 2.2.0版本起,虚拟机监控需 --with-libcurl 和 --with-libxml2 配置选项。
4.安装组件
make install //这一步需要使用一个拥有足够权限的用户来运行
守护进程二进制文件(zabbix_server, zabbix_agentd, zabbix_proxy)会被安装在:<安装路径>/sbin
工具会被安装在:<安装路径>/bin
帮助文件会被安装在:<安装路径>/share
5.导入sql
需要向之前安装好的oracle中导入zabbix的数据库
cd /home/zabbix/soft/zabbix-3.4.11/database/oracle/
ls
data.sql images.sql schema.sql
导入顺序:schema.sql,images.sql ,data.sql
6.启动server
./zabbix_server
7.安装zabbix前端界面
7.1准备
zabbix前端使用PHP,必须在支持PHP的服务器上运行。如果不支持的话需要将zabbix的PHP文件复制到服务器的HTML文件目录。
cd /home/zabbix/soft/zabbix-3.4.11/frontends/php
7.2安装前端
打开zabbix前端界面
http://<服务器IP或主机名>/zabbix
跟着安装引导一步一步的安装就ok了,不多赘述