本次安装使用的操作系统是CentOS 6.8。
安装zabbix需要的其他的软件:
- 数据库
- Apache
- PHP
1. 安装基础环境
1.1 安装数据库
此处使用yum安装默认的MySQL数据库的5.1.73版本,可以根据需要安装其他版本的MySQL或者其他的数据库。zabbix另外还支持Oracle、PostgreSQL、SQLite、IBM DB2等数据库,可根据实际环境或需要选择。
# yum安装MySQL
[root@zabbix ~]# yum -y install mysql*
# 安装完成,确认数据库版本
[root@zabbix ~]# mysql -V
# 开机自启MySQL
[root@zabbix ~]# chkconfig mysqld on
[root@zabbix ~]# chkconfig mysqld --list
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# 启动数据库
[root@zabbix ~]# service mysqld start
# 确认数据库正在运行
[root@zabbix ~]# service mysqld status
# 设置MySQL数据库root密码,password后跟的是密码(不包括单引号)
[root@zabbix ~]# mysqladmin -u root password 'root'
# 登入MySQL数据库
[root@zabbix ~]# mysql -uroot -p
# 切换数据库
mysql> use mysql;
# 删除用于本机匿名连接的空密码帐号
mysql> delete from user where password="";
1.2 安装PHP
注意安装zabbix 2.4需要PHP 5.3.0及以后版本。
- 如果使用使用源码安装,注意相应的扩展项。
PHP extensions: | ||
---|---|---|
gd | 2.0 or later | PHP GD extension must support PNG images (--with-png-dir), JPEG (--with-jpeg-dir) images and FreeType 2 (--with-freetype-dir). |
bcmath | php-bcmath (--enable-bcmath) | |
ctype | php-ctype (--enable-ctype) | |
libXML | 2.6.15 or later | php-xml or php5-dom, if provided as a separate package by the distributor. |
xmlreader | php-xmlreader, if provided as a separate package by the distributor. | |
xmlwriter | php-xmlwriter, if provided as a separate package by the distributor. | |
session | php-session, if provided as a separate package by the distributor. | |
sockets | php-net-socket (--enable-sockets). Required for user script support. | |
mbstring | php-mbstring (--enable-mbstring) | |
gettext | php-gettext (--with-gettext). Required for translations to work. | |
ldap | php-ldap. Required only if LDAP authentication is used in the frontend. | |
ibm_db2 | Required if IBM DB2 is used as Zabbix backend database. | |
mysqli | Required if MySQL is used as Zabbix backend database. | |
oci8 | Required if Oracle is used as Zabbix backend database. | |
pgsql | Required if PostgreSQL is used as Zabbix backend database. | |
sqlite3 | Required if SQLite is used as Zabbix backend database. |
本实验使用yum安装PHP。
# yum 安装所有php包
[root@zabbix ~]# yum -y install php*
1.3 安装Apache
一般CentOS默认安装Apache服务。可以使用rpm -qa httpd
命令查看是否安装。
若没有可以使用源码或者yum安装。若已安装,确保服务开机自启动。
# 查看是否安装Apache服务
[root@zabbix ~]# rpm -qa httpd
# 若没有安装,安装之
[root@zabbix ~]# yum -y install httpd
# 安装完成,或已安装服务。开机自启Apache服务。
[root@zabbix ~]# chkconfig httpd on
[root@zabbix ~]# chkconfig httpd --list
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# 启动Apache服务
[root@zabbix ~]# service httpd start
# 确认Apache服务正在运行
[root@zabbix ~]# service httpd status
httpd (pid 4070) is running...
2. 安装zabbix
安装前,先在官网下载页面下载需要的安装包
- 源码包在
Zabbix Sources
中选择需要的版本
本实验使用2.4.8版本
2.1 server端安装zabbix
server端需要同时安装server和agent服务。安装zabbix可以使用yum和源码两种方式安装,但是需要注意的是yum安装需要确保环境能够连接互联网。
本实验两种方式都使用安装,由于最后使用web站点安装时,两者步骤都一样,将合一起。
2.1.1 后台安装zabbix
a. yum安装zabbix
先安装zabbix的yum仓库配置文件。然后安装zabbix服务即可。
# 安装yum仓库配置文件,根据系统不同下载地址有所不同
[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
# 安装server服务和web前端
[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql
# 安装agent服务
[root@zabbix ~]# yum -y install zabbix-agent
# 创建zabbix数据库
[root@zabbix ~]# mysql -uroot -proot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> quit;
# 导入zabbix数据库初始化数据
# proxy端只需导入schema.sql一张表
[root@zabbix ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.8/create/
[root@zabbix create]# mysql -uroot -proot zabbix < schema.sql
[root@zabbix create]# mysql -uroot -proot zabbix < images.sql
[root@zabbix create]# mysql -uroot -proot zabbix < data.sql
# 编辑zabbix_server配置文件
[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
# 启动server服务
[root@zabbix create]# service zabbix-server start
Starting Zabbix server: [ OK ]
# 启动agent服务
[root@zabbix ~]# service zabbix-agent start
Starting Zabbix agent: [ OK ]
# 设置开机自启
[root@zabbix ~]# chkconfig zabbix-server on
[root@zabbix ~]# chkconfig zabbix-agent on
[root@zabbix ~]# chkconfig zabbix-server --list
zabbix-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@zabbix ~]# chkconfig zabbix-agent --list
zabbix-agent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# 编辑PHP中关于zabbix前端的配置
[root@zabbix ~]# vi /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 date.timezone Europe/Riga
将上面时区的注释去掉,并改成合适的时区。本实验中改成"Asia/Shanghai"
# 重启Apache服务
[root@zabbix ~]# service httpd restart
b. 源码安装zabbix
- 将从官网下载的源码包上传至服务器。
- 已经安装gcc-c++编译工具。
如果没有安装,先安装。
yum -y install gcc-c++
# 创建安装文件夹并解压源码包
[root@zabbix ~]# mkdir /usr/local/zabbix
[root@zabbix ~]# cp /tmp/zabbix-2.4.8.tar.gz /usr/local/zabbix/
[root@zabbix ~]# cd /usr/local/zabbix/
[root@zabbix zabbix]# tar zxf zabbix-2.4.8.tar.gz
# 创建zabbix用户组和用户。
# zabbix以普通用户运行时,所有用户和组为该普通用户。但若以root用户运行时,会使用zabbix用户运行。
# 因此如果想用root用户运行则zabbix用户是必须的。如果不用root用户运行则不创建也是可以的。
# web前端安装zabbix时不需要特定的用户或用户组。
[root@zabbix zabbix]# groupadd zabbix
[root@zabbix zabbix]# useradd -g zabbix zabbix
# 创建zabbix数据库
[root@zabbix ~]# mysql -uroot -proot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> quit;
# 导入zabbix数据库初始化数据
# proxy端只需导入schema.sql一张表
[root@zabbix ~]# cd /usr/local/zabbix/zabbix-2.4.8/database/mysql/
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
# 配置源
# --with-mysql。根据实际安装的数据库,选择相应的配置。本实验使用的是MySQL。
# --enable-ipv6。支持IPV6协议。
# --with-net-snmp。SNMP的基本功能是:取得,设置和接收代理发送的意外信息。所以需要获得agent发来的意外信息,必须有该配置。
使用该选项需要安装net-snmp-devel库。
yum install -y net-snmp-devel
# --with-libcurl。libcurl是一个跨平台的网络协议库,所以需要用不同的协议连接和沟通不同的服务器时需要用到,因此在监控设备较多且系统版本混杂的情况下必须安装。一般默认都会启用该选项。
使用该选项需要安装libcurl-devel库。
yum install -y libcurl-devel
# --with-libxml2选项是用来监控虚拟机的。从zabbix2.2.0之后开始支持。使用前确认需要的libxml2库已安装。
yum install -y libxml2*
# --prefix="location"可以指定安装目录
# 命令行工具zabbix_get和zabbix_sender在指定--enable-agent时,将会被编译。
[root@zabbix mysql]# cd /usr/local/zabbix/zabbix-2.4.8
[root@zabbix zabbix-2.4.8]# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
# 安装
# 守护进程二进制文件 (zabbix_server, zabbix_agentd, zabbix_proxy) 默认安装在/usr/local/sbin目录下;
# 客户端二进制文件(zabbix_get, zabbix_sender)默认安装在/usr/local/bin下;
# 若指定了安装目录,则在相应的sbin和bin下。
[root@zabbix zabbix-2.4.8]# make install
# 更改配置文件
# zabbix agent配置文件默认是/usr/local/etc/zabbix_agentd.conf。
# zabbix server配置文件默认是/usr/local/etc/zabbix_server.conf。文件中必须写入zabbix数据库用户名和密码
[root@zabbix ~]# cd /usr/local/etc/
[root@zabbix etc]# vi zabbix_agentd.conf
Server=127.0.0.1 # zabbix server ip地址
ServerActive=127.0.0.1 # zabbix server ip地址
Hostname=master_db # agent的hostname
[root@zabbix etc]# vi zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
# 启动zabbix守护和客户端进程
[root@zabbix ~]# cd /usr/local/sbin/
[root@zabbix sbin]# zabbix_server
[root@zabbix sbin]# zabbix_agentd
# 确认进程已经启动
[root@zabbix sbin]# ps -ef | grep zabbix
# 设置开机自启
在`/etc/rc.local`文件最后添加下面两行
/usr/local/sbin/zabbix_server start
/usr/local/sbin/zabbix_agentd start
# 安装zabbix的web界面
[root@zabbix ~]# cd /usr/local/zabbix/zabbix-2.4.8/frontends/php/
[root@zabbix php]# mkdir /var/www/html/zabbix
[root@zabbix php]# chown -R zabbix:zabbix /var/www/html/zabbix
[root@zabbix php]# cp -a . /var/www/html/zabbix
[root@zabbix php]# cd /var/www/html/zabbix/
[root@zabbix zabbix]# ls
2.1.2 前端安装zabbix
a. 修改PHP配置文件参数
一般使用yum安装的无需修改php文件参数。
使用源码安装的需要修改/etc/php.ini
的参数以满足zabbix需要的最低要求。
更改完成后重启Apache服务:
service httpd restart
最低要求见下表,另外需要去掉配置文件中date.timezone
的注释并添加相应的时区:
Pre-requisite | Minimum value | Description |
---|---|---|
PHP version | 5.3.0 | |
PHP memory_limit option | 128MB | In php.ini: memory_limit = 128M |
PHP post_max_size option | 16MB | In php.ini: post_max_size = 16M |
PHP upload_max_filesize option | 2MB | In php.ini: upload_max_filesize = 2M |
PHP max_execution_time option | 300 seconds | In php.ini: max_execution_time = 300 |
PHP max_input_time option | 300 seconds | In php.ini: max_input_time = 300 |
PHP session.auto_start option | must be disabled | In php.ini: session.auto_start = 0. |
Database support | One of: IBM DB2, MySQL, Oracle, PostgreSQL, SQLite | One of the following modules must be installed: ibm_db2, mysql, oci8, pgsql, sqlite3 |
bcmath | php-bcmath | |
mbstring | php-mbstring | |
PHP mbstring.func_overload option | must be disabled | In php.ini: mbstring.func_overload = 0. |
PHP always_populate_raw_post_data option | must be disabled | Required only for PHP versions 5.6.0 or newer. In php.ini: always_populate_raw_post_data = -1 |
sockets | php-net-socket. Required for user script support. | |
gd | 2.0 or higher | php-gd. PHP GD extension must support PNG images (--with-png-dir), JPEG (--with-jpeg-dir) images and FreeType 2 (--with-freetype-dir). |
libxml | 2.6.15 | php-xml or php5-dom |
xmlwriter | php-xmlwriter | |
xmlreader | php-xmlreader | |
ctype | php-ctype | |
session | php-session | |
gettext | php-gettext. Since Zabbix 2.2.1, the PHP gettext extension is not a mandatory requirement for installing Zabbix. If gettext is not installed, the frontend will work as usual, however, the translations will not be available. |
b. 开始安装web站点
- 浏览器打开zabbix网址:
http://<server_ip_or_name>/zabbix
-
确认安装条件都符合
-
输入连接zabbix数据库的信息
-
输入zabbix server具体信息
-
查看信息是否有误
-
zabbix如果没有Apache文件夹下的写入权限,需要下载配置文件并放入/var/www/html/zabbix/conf/目录下
-
完成安装
- 前端安装完成。默认用户Admin,密码zabbix。
2.2 zabbix的agent端安装
Windows系统和Linux系统均可以安装zabbix的agent端。
Linux有三种方式安装agent,分别为预编译包、yum和源码安装。
Windows只有一种方式。
2.2.1 Windows安装agent端
安装前,先在官网下载页面下载需要的安装包
- Windows安装包在
Zabbix pre-compiled agents
中选择需要的版本
本实验使用2.4.4版本zabbix_agents_2.4.4.win.zip
1. 新建安装目录,比如"C:\zabbix"。将下载的安装包解压后,拷贝至该目录内。
2. 修改配置文件"zabbix_agentd.conf"。
Server=192.168.186.250 # zabbix server ip地址
ServerActive=192.168.186.250 # zabbix server ip地址
Hostname=agent # agent的hostname
3. 以管理员身份,在cmd命令行中运行以下命令。文件夹路径根据实际情况自行更改。
C:\zabbix\bin\win64\zabbix_agentd.exe -c C:\zabbix\conf\zabbix_agentd.win.conf -i
# -c表示需要读取的配置文件 -i表示安装
4. 开始 > 运行 > services.msc
将zabbix_agent服务启动,并将启动类型设为“自动”。
5. server添加agent机
浏览器打开http://server IP/zabbix,输入用户名密码登录
选择Configuration - Hosts - Create Host,输入agent相关信息并保存
Availability显示一个绿颜色的Z,表示成功连接。
2.2.2 Linux安装agent端
Linux安装agent端的方式不尽相同。本实验以CentOS为例。
a. 预编译包安装agent
安装前,先在官网下载页面下载需要的安装包
- 预编译包在
Zabbix pre-compiled agents
中选择需要的版本
本实验使用2.4.6版本zabbix_agents_2.4.4.linux2_6.amd64.tar.gz
# 创建安装目录
[root@master_db ~]# mkdir /usr/local/zabbix
[root@master_db ~]# cp /tmp/zabbix_agents_2.4.4.linux2_6.amd64.tar.gz /usr/local/zabbix/
[root@master_db ~]# cd /usr/local/zabbix/
[root@master_db zabbix]# tar zxf zabbix_agents_2.4.4.linux2_6.amd64.tar.gz
[root@master_db zabbix]# rm -f zabbix_agents_2.4.4.linux2_6.amd64.tar.gz
[root@master_db zabbix]# ls
bin conf sbin
# 添加zabbix用户和组
[root@master_db zabbix]# groupadd zabbix
[root@master_db zabbix]# useradd -g zabbix zabbix
# 先查看服务端口是否存在,若存在则无需添加。若不存在则需手动添加。
[root@master_db zabbix]# cat /etc/services | grep zabbix
# 添加服务端口
echo 'zabbix-agent 10050/tcp # Zabbix Agent' >> /etc/services
echo 'zabbix-agent 10050/udp # Zabbix Agent' >> /etc/services
echo 'zabbix-trapper 10051/tcp # Zabbix Trapper' >> /etc/services
echo 'zabbix-trapper 10051/udp # Zabbix Trapper' >> /etc/services
# 修改配置文件
[root@master_db zabbix]# cd /usr/local/zabbix/conf/
[root@master_db conf]# ls
zabbix_agent.conf zabbix_agentd zabbix_agentd.conf
[root@master_db conf]# vi zabbix_agentd.conf
Server=192.168.186.250 # zabbix server ip地址
ServerActive=192.168.186.250 # zabbix server ip地址
Hostname=master_db # agent的hostname
# 启动agent
[root@master_db conf]# /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf &
[1] 2961
# 添加开机自启动
echo '/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf &' >> /etc/rc.local
# server添加agent机
浏览器打开http://server IP/zabbix,输入用户名密码登录
选择Configuration - Hosts - Create Host,输入agent相关信息并保存
Availability显示一个绿颜色的Z,表示成功连接。
b. yum安装agent
先安装zabbix的yum仓库配置文件。然后安装agent即可。
# 安装yum仓库配置文件,根据系统不同下载地址有所不同
[root@agent ~]# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
# 安装agent服务
[root@agent ~]# yum -y install zabbix-agent
# 编辑agent配置文件
[root@agent ~]# vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.186.250 # zabbix server ip地址
ServerActive=192.168.186.250 # zabbix server ip地址
Hostname=agent # agent的hostname
# 启动agent服务
[root@agent ~]# service zabbix-agent start
Starting Zabbix agent: [ OK ]
# 设置开机自启
[root@agent ~]# chkconfig zabbix-agent on
[root@agent ~]# chkconfig zabbix-agent --list
zabbix-agent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# server添加agent机
浏览器打开http://server IP/zabbix,输入用户名密码登录
选择Configuration - Hosts - Create Host,输入agent相关信息并保存
Availability显示一个绿颜色的Z,表示成功连接。
c. 源码安装agent
- 先在官网下载页面下载需要的安装包
源码包在Zabbix Sources
中选择需要的版本
本实验使用2.4.8版本 - 将从官网下载的源码包上传至服务器。
- 已经安装gcc-c++编译工具。
如果没有安装,先安装。
yum -y install gcc-c++
# 创建安装文件夹并解压源码包
[root@master_db ~]# mkdir /usr/local/zabbix
[root@master_db ~]# cp /tmp/zabbix-2.4.8.tar.gz /usr/local/zabbix/
[root@master_db ~]# cd /usr/local/zabbix/
[root@master_db zabbix]# tar zxf zabbix-2.4.8.tar.gz
# 创建zabbix用户组和用户。
# zabbix以普通用户运行时,所有用户和组为该普通用户。但若已root用户运行时,会使用zabbix用户运行。
# 因此如果想用root用户运行则zabbix用户是必须的。如果不用root用户运行则不创建也是可以的。
[root@master_db zabbix]# groupadd zabbix
[root@master_db zabbix]# useradd -g zabbix zabbix
# 配置源
[root@master_db zabbix]# cd /usr/local/zabbix/zabbix-2.4.8
[root@master_db zabbix-2.4.8]# ./configure --enable-agent
# 安装
# 守护进程二进制文件 (zabbix_agentd) 默认安装在/usr/local/sbin目录下,客户端二进制文件(zabbix_get, zabbix_sender)默认安装在/usr/local/bin下。若指定了安装目录,则在相应的sbin和bin下。
[root@master_db zabbix-2.4.8]# make install
# 更改配置文件
# zabbix agent配置文件默认是/usr/local/etc/zabbix_agentd.conf。
[root@master_db ~]# cd /usr/local/etc/
[root@master_db etc]# vi zabbix_agentd.conf
Server=192.168.186.250 # zabbix server ip地址
ServerActive=192.168.186.250 # zabbix server ip地址
Hostname=agent # agent的hostname
# 启动zabbix守护和客户端进程
[root@master_db etc]# cd /usr/local/sbin/
[root@master_db sbin]# zabbix_agentd
# 确认进程已经启动
[root@master_db sbin]# ps -ef | grep zabbix
# 设置开机自启
在`/etc/rc.local`文件最后添加下面一行
/usr/local/sbin/zabbix_agentd start
或者执行以下命令
echo '/usr/local/sbin/zabbix_agentd start' >> /etc/rc.local
# server添加agent机
浏览器打开http://server IP/zabbix,输入用户名密码登录
选择Configuration - Hosts - Create Host,输入agent相关信息并保存
Availability显示一个绿颜色的Z,表示成功连接。