Zabbix 源码编译安装

Zabbix 分布式监控系统,源码编译安装记录 ( 记不得是第多少次了 )

下载地址:%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz

LNMP 传送门:

1、安装 Zabbix

shell > yum -y install ntpdate net-snmp net-snmp-devel libcurl-devel

shell > useradd -r -s /sbin/nologin zabbix
shell > wget %20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz
shell > tar zxf zabbix-2.4.5.tar.gz
shell > ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl

# --prefix  指定安装路径
# --enable-server  安装 Server 端
# --enable-agent  安装 Agent 端
# --with-mysql  使用 Mysql 数据库
# --with-net-snmp  支持 SNMP 协议
# --with-libcurl  支持 libcurl URL 监控

shell > make install

2、创建数据库、并导入数据

shell > mysql -uroot -p123456

mysql> create database zabbixDB character set utf8; # 创建 zabbixDB 并设置编码为 utf8

mysql> grant all on zabbixDB.* to zabbix@localhost identified by 'zabbix_pass'; # 建立授权用户

mysql> flush privileges; # 刷新授权表 ( 虽然 grant 操作是不需要刷新授权表的,但那又如何 ? )

mysql> use zabbixDB;

mysql> source /usr/local/src/zabbix-2.4.5/database/mysql/schema.sql # 导入数据
mysql> source /usr/local/src/zabbix-2.4.5/database/mysql/images.sql
mysql> source /usr/local/src/zabbix-2.4.5/database/mysql/data.sql

mysql> quit

3、配置 Zabbix 服务

shell > cp /usr/local/src/zabbix-2.4.5/misc/init.d/Fedora/core/zabbix_server /etc/init.d/ # 服务端启动脚本
shell > cp /usr/local/src/zabbix-2.4.5/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ # 客户端启动脚本
shell > cp -R /usr/local/src/zabbix-2.4.5/frontends/php/ /usr/local/nginx/html/zabbix    # 网页文件

shell > vim /usr/local/zabbix/etc/zabbix_server.conf # 服务端配置文件

LogFile=/tmp/zabbix_server.log  # 日志文件存放位置
DBName=zabbixDB                  # 数据库名
DBUser=zabbix                    # 连接用户
DBPassword=zabbix_pass          # 连接密码

shell > vim /etc/init.d/zabbix_server # 服务端启动脚本

BASEDIR=/usr/local/zabbix # 修改后的位置 ( 原:/usr/local )

shell > vim /etc/init.d/zabbix_agentd # 客户端启动脚本

BASEDIR=/usr/local/zabbix # 修改后的位置 ( 原:/usr/local )

4、启动 Zabbix 服务

shell > chkconfig --add zabbix_server
shell > chkconfig --add zabbix_agentd

shell > chkconfig --level 35 zabbix_server on
shell > chkconfig --level 35 zabbix_agentd on

shell > service zabbix_server start
Starting zabbix_server: [确定]
shell > service zabbix_agentd start
Starting zabbix_agentd: [确定]

shell > netstat -anpt | grep zabbix ( 注意:要来确认一下到底有没有启动成功,因为当授权用户无法连接数据库时,zabbix_server 是无法启动的,但是启动过程显示成功 )
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 80403/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 80430/zabbix_server

## 当发现有服务没有启动时,要及时查看日志文件,里面有详细的原因

## 这里可能会出现如下错误:

Starting zabbix_server: /usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory [FAILED]

## 解决方法:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/ ( 先 find 到这个文件的位置 )

5、登陆网页进行配置 Zabbix ( )

## 无关紧要的截图就不贴了,只贴有用的!

> 第一个页面是欢迎页面,直接 Next

> 第二个页面大多会有多处检测失败,也是出问题最多的位置,如下图

解决方法:

shell > vim /usr/local/php/php.ini

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1

## 找到对应参数,修改为上面的值,重启 Nginx 、php-fpm 即可解决!

## 还有可能遇到缺少扩展的情况,单独演示一个缺少扩展的解决方法

假如上图提示 gettext 也是红色的 fail 状态,这就说明缺少这个扩展,需要动态添加此扩展!

shell > cd /usr/local/src/php-5.6.11/ext/gettext/ # 切换到源码目录下的对应扩展目录下
shell > /usr/local/php/bin/phpize # 执行此指令,生成 configure
shell > ./configure --with-php-config=/usr/local/php/bin/php-config ; make ; make install # 安装此扩展,生成 .so 文件

## 如果是缺少 mysqli 扩展,这一步要多加一个参数 --with-mysqli=/usr/local/mysql/bin/mysql_config

shell > ln -s /usr/local/php/lib/php/extensions/no-debug-20100525/gettext.so /usr/lib64/

shell > vim /usr/local/php/php.ini

extension_dir = /usr/lib64/
extension = gettext.so

## 找到对应的参数,添加或修改成上面的值即可

全部解决完成后 ( 页面没有红色的 Fail ,全部变为 OK ) 点击 Next

> 第三个页面设置数据库连接的一些信息,正常填写即可,点击 “Test connection” 显示 ok 后,Next

> 第四个页面是关于 Zabbix Server 的一些信息,默认即可,Next

> 第五个页面是预览,没有问题的话,Next

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7ef872ca835044b1b914ef08954e1e09.html