ZabbixManual1.4/Installation/zh

来自Ubuntu中文
跳到导航跳到搜索

{{#ifexist: :ZabbixManual1.4/Installation/zh/zh | | {{#ifexist: ZabbixManual1.4/Installation/zh/zh | | {{#ifeq: {{#titleparts:ZabbixManual1.4/Installation/zh|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:ZabbixManual1.4/Installation/zh|1|-1|}} | zh | | }}


如何获取 ZABBIX

在 Zabbix 主页 http://www.zabbix.com 上找到当版版本及其下载说明。

要求

硬件要求

存储要求

ZABBIX 对物理内存和硬盘存储容量都有要求,128 MB 的物理内存和至少 256 MB 空闲的硬盘空间是将一个好的开始点。不过,其所需磁盘空间的大小显然有赖于主机及其所需监控参数的数量。如果您想保留监控参数一个较长的历史记录,那么您应该考虑至少 2 到 3 G 的空间用以保存数据库中的历史记录。

Each ZABBIX daemon process requires several connections to a database server. Amount of memory allocated for the connection depends on configuration of the database engine. 每个 Zabbix 守护程序进程都需要几条到数据库服务器的连接。分配给连接的内存总量也有赖于数据库引擎的配置。


注意: 您的物理内存越多,那么您数据库(因此 Zabbix)运行的也就越快!


CPU 要求

ZABBIX,特别是 ZABBIX 数据库可能要求大量的 CPU 资源,这有赖于监控参数的数量以及所选数据库的引擎。

其他硬件

为使用Zabbix 内建的 SMS 通知,要求使用一个串行通信口和一个串行 GSM 调制器。

硬件配置的范例

下表提供了一些硬件配置:

Name 操作系统 CPU/内存 数据库 被监测主机数
小型 Ubuntu Linux P2 350MHz/256MB MySQL MyISAM 20
中型 Ubuntu Linux 64 bit AMD Athlon 3200+/2GB MySQL MyISAM 500
大型 Ubuntu Linux 64 bit Intel Dual Core 6400/4GB/RAID MySQL MyISAM or PostgreSQL >1000
Very large RedHat Enterprise Intel Xeon 2 CPU/8GB/RAID MySQL MyISAM or PostgreSQL >10000

注意: 实际配置特别有赖于激活监测项的数目以及刷新率。It is recommended to keep database engine on a separate box for large installations.


支持的操作系统

出于监测服务器的安全需求和对关键任务的判断,Unix 是唯一能够持续提供必要的性能、容错能力以及恢复能力的操作系统。ZABBIX 支持目前市场上的主流版本。

ZABBIX 在以下操作系统中测试过:

  • AIX
  • FreeBSD
  • HP-UX
  • Linux
  • Mac OS/X
  • OpenBSD
  • SCO Open Server
  • Solaris

注意: ZABBIX 也可能在其它的类 Unix 操作系统中良好运行。


软件需求

ZABBIX 是基于最新的 Apache Web 服务器、主流的数据库引擎以及 PHP 脚本语言编译的。

运行 ZABBIX 需要下列软件:

软件 版本 说明
Apache 1.3.12 或以后版本
PHP 4.3 或以后版本
PHP 模块:

php-gd php-bcmath

4.3 或以后版本 PHP GD 模块必须支持 PNG 图片
MySQL

php-mysql

3.22 或以后版本 使用 MySQL 作为 ZABBIX 后台数据库时被要求
Oracle

php-sqlora8

9.2.0.4 或以后版本 使用 Oracle 作为 ZABBIX 后台数据库时被要求
PostgreSQL

php-pgsql

7.0.2 或以后版本 使用 PostgreSQL 作为 ZABBIX 后台数据库时被要求。使用 PostgreSQL 8.x 或以后版本以获取更好的性能。
SQLite

php-sqlite3

3.3.5 或以后版本 使用 SQLite 作为 ZABBIX 后台数据库时被要求

注意: ZABBIX 在使用 Apache、MySQL、Oracle 或 PostgreSQL 的以前版本也可能正常运行。


客户端 WEB 浏览器

要求支持 HTML 和 PNG 图片。MS Explorer(5.xx 和 6.xx)以及 Mozilla 1.x 上运行正常。必须支持 Cookies 和 JavaScript。其它浏览器也能支持 Zabbix

数据库引擎的选择

ZABBIX 支持四种数据库引擎:

  • MySQL
  • Oracle
  • PostgreSQL
  • SQLite

每种数据库引擎都有它自己的优势,我们不好说哪一种最好。

选择数据库引擎主要看以下几个方面:

  • 您硬件的性能
  • 自由或商业的数据库引擎
  • ZABBIX 服务器的繁忙程度

下表为选择数据库引擎提供一般性的建议

ZABBIX 服务器的用途 选择的数据库引擎
Heavy duty Node/Standalone重负载节点/单机 MySQL MyISAM
轻负载节点/单机 PostgreSQL

MySQL MyISAM

远程零管理节点 PostgreSQL

SQLite

单独轻负载 MySQL MyISAM

Time synchronisation

It is very important to have precise system date on server with ZABBIX running. timed is one of most popular daemons that synchronises the host’s time with the time of other machines.

Components

ZABBIX Components

ZABBIX consists of several major software components, the responsibilities of which are outlined below.

ZABBIX Server

This is the centre of the ZABBIX software. The Server can remotely check networked services (such as web servers and mail servers) using simple service checks, but it is also the central component to which the Agents will report availability and integrity information and statistics. The Server is the central repository in which all configuration, statistical and operational data are stored, and it is the entity in the ZABBIX software that will actively alert administrators when problems arise in any of the monitored systems.

ZABBIX can also perform agent-less monitoring and also monitor network devices using SNMP agents.

ZABBIX Agent

In order to actively monitor local resources and applications (such as harddrives, memory, processor statistics etc.) on networked systems, those systems must run the ZABBIX Agent. The Agent will gather operational information from the system on which it is running, and report these data to the ZABBIX for further processing. In case of failures (such as a harddisk running full, or a crashed service process), the ZABBIX Server can actively alert the administrators of the particular machine that reported the failure.

The ZABBIX Agents are extremely efficient because of use of native system calls for gathering statistical information.

The WEB Interface

In order to allow easy access to the monitoring data and then configuration of ZABBIX from anywhere and from any platform, the Web-based Interface is provided. The Interface is a part of the ZABBIX Server, and is usually (but not necessarily) run on the same physical machine as the one running the ZABBIX Server.


Note: ZABBIX front-end must run on the same physical machine of SQLite is used.


Installation from Source

Software requirements

Building of ZABBIX server or agents from sources requires additional software.

The following software is required to compile ZABBIX: One of the following database engines:

  MySQL Headers and Libraries
  Version 3.22 or later required.
  Oracle Headers and Libraries
  Sqlora8 headers and libraries are required.
  PostgreSQL Headers and Libraries
  Version 7.0.2 or later required. Consider using PostgreSQL 8.x for much better performance.
  SQLite Headers and Libraries
  Version 3.3.5 or later required.

Note: Usually provided as part of mysql-dev, postgresql-dev, sqlite3-dev packages.


NET-SNMP (or UCD-SNMP) library and header files

Required for SNMP support. Optional.

Iksemel library and header files

Required to enable Jabber messaging. Optional.

Libcurl library and header files

Required for WEB monitoring module. Optional.

C Compiler

C compiler is required. GNU C compiler is the best choice for open platforms. Other (HP, IBM) C compilers may be used as well.

GNU Make

GNU make is required to process ZABBIX Makefiles.

Structure of ZABBIX distribution

doc

The directory contains this Manual in different formats

src

The directory contains sources for all ZABBIX processes except frontends.

src/zabbix_server

The directory contains Makefile and sources for zabbix_server.

src/zabbix_agent

The directory contains Makefile and sources for zabbix_agent and zabbix_agentd.

src/zabbix_sender

The directory contains Makefile and sources for zabbix_sender.

include

The directory contains include ZABBIX files.

misc

misc/init.d

The directory contains start-up scripts for different platforms.

misc/pinger

  1. The directory contains scripts for ICMP pinging, pinger.pl.

frontends

frontends/php

The directory contains sources for PHP frontend.

create

The directory contains SQL script for initial database creation.

create/mysql

MySQL database schema.

create/postgresql

PostgreSQL database schema.

create/data

Data for initial database creation.

upgrades

The directory contains upgrade procedures for different versions of ZABBIX.

ZABBIX Server

Server side

Step 1 Create the ZABBIX superuser account

This is the user the server will run as. For production use you should create a dedicated unprivileged account ('zabbix' is commonly used). Running ZABBIX as 'root','bin', or any other account with special rights is a security risk. Do not do it!


Note: ZABBIX server process (zabbix_server) is protected from being run under root account.


Step 2 Untar ZABBIX sources

shell> gunzip zabbix.tar.gz && tar -xvf zabbix.tar


Step 3 Create the ZABBIX database

ZABBIX comes with SQL scripts used to create the required database schema and also to insert a default configuration. There are separate scripts for MySQL and PostgreSQL.

For MySQL:

shell> mysql -u<username> -p<password>
mysql> create database zabbix;
mysql> quit;
shell> cd create/mysql
shell> cat schema.sql |mysql -u<username> -p<password> zabbix
shell> cd ../data
shell> cat data.sql |mysql -u<username> -p<password> zabbix
shell> cat images_mysql.sql |mysql -u<username> -p<password> zabbix

For PostgreSQL:

shell> psql -U <username>
psql> create database zabbix;
psql> \q
shell> cd create/postgresql
shell> cat schema.sql|psql -U <username> zabbix
shell> cd ../data
shell> cat data.sql|psql -U <username> zabbix
shell> cat images_pgsql.sql |psql -U <username> zabbix

For SQLite:

shell> cd create/sqlite
shell> cat schema.sql | sqlite3 /var/lib/sqlite/zabbix.db
shell> cd ../data
shell> cat data.sql | sqlite3 /var/lib/sqlite/zabbix.db
shell> cat images.sql | sqlite3 /var/lib/sqlite/zabbix.db

Note: The database will be automatically created if not exists.


Step 4 Configure and compile the source code for your system

The sources must be compiled for both the server (monitoring machine) as well as the clients (monitored machines). To configure the source for the server, you must specify which database will be used.

shell> ./configure --enable-server --with-mysql --with-net-snmp –with-jabber –with-libcurl # for MySQL + Jabber + WEB monitoring

or

shell> ./configure --enable-server --with-pgsql --with-net-snmp –with-jabber –with-libcurl # for PostgreSQL + Jabber + WEB monitoring

or

shell> ./configure --enable-server --with-oracle=/home/zabbix/sqlora8 --with-net-snmp –with-jabber –with-libcurl # for Oracle + Jabber + WEB monitoring


Note: Use flag --with-oracle to specify location of sqlora8 library. The libary is required for Oracle support. The library can be found at libsqlora8 homepage



Note: Use flag --enable-static to statically link libraries. If you plan to distribute compiled binaries among different servers, you must use this flag to make these binaries work without required libraries. --enable-static does not work under Solaris. Flag --with-ucd-snmp can be used instead of --with-net-snmp. If no SNMP support required, both --with-net-snmp and --with-ucd-snmp may be skipped.


However, if you want to compile client binaries along with server binaries, run:

shell> ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber –with-libcurl

Parameter —enable-static may be used to force static linkage.

Step 5 Make and install everything

shell> make install

By default,

make install

will install all the files in /usr/local/bin, /usr/local/lib etc. You can specify an installation prefix other than /usr/local using --prefix

Step 6 Configure /etc/services

The step is not real requirement. However, it is recommended. On the client (monitored) machines, add the following lines to /etc/services:

zabbix_agent 10050/tcp
zabbix_trap 10051/tcp

Step 7 Configure /etc/inetd.conf

If you plan to use zabbix_agent instead of the recommended zabbix_agentd, the following line must be added:

zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent

Restart inetd

shell> killall -HUP inetd

Modify default settings in configuration files

Step 8 Configure /etc/zabbix/zabbix_agent.conf

You need to configure this file for every host having zabbix_agent installed. The file should contain IP address of ZABBIX server. Connections from other hosts will be denied. You may take misc/conf/zabbix_agent.conf as example.

Step 9 Configure /etc/zabbix/zabbix_agentd.conf

You need to configure this file for every host with zabbix_agentd installed. The file should contain the IP address of the ZABBIX server. Connectionsfrom other hosts will be denied. You may take misc/conf/zabbix_agentd.conf as example.

Step 10 Configure /etc/zabbix/zabbix_server.conf

For small installations (up to ten monitored hosts), default parameters are sufficient. However, you should change default parameters to maximize performance from ZABBIX. See section [Performance tuning] for more details.

You may take misc/conf/zabbix_server.conf as example.

Step 11 Run server processes

Run zabbix_server on server side.

shell> cd bin
shell> ./zabbix_server

Step 12 Run agents

Run zabbix_agentd where necessary.

shell> cd bin
shell> ./zabbix_agentd

ZABBIX Agent

Client side

Step 1 Create the ZABBIX account

This is the user the agent will run as. For production use you should create a dedicated unprivileged account (“zabbix” is commonly used). ZABBIX agents have protection against running under root account.

Step 2 Untar ZABBIX sources

shell> gunzip zabbix.tar.gz && tar xvf zabbix.tar

Step 3 Configure and compile the source code for your system

The sources must be compiled for the client only. To configure the source for the client:

shell> ./configure --enable-agent

Note: Use flag --enable-static to statically link libraries. If you plan to distribute compiled binaries among different servers, you must use this flag to make these binaries work without required libraries.

Step 4 Build agent

shell> make

Copy created binaries from bin/ to /opt/zabbix/bin or any other directory Other common directories are /usr/local/bin or /usr/local/zabbix/bin.

Step 5 Configure /etc/services

The step is not real requirement. However, it is recommended. On the client (monitored) machines, add the following lines to /etc/services:

zabbix_agent 10050/tcp
zabbix_trap 10051/tcp

Step 6 Configure /etc/inetd.conf

If you plan to use zabbix_agent instead of the recommended zabbix_agentd, the following line must be added:

zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent

Restart inetd

shell> killall -HUP inetd

Step 7 Configure /etc/zabbix/zabbix_agent.conf

You need to configure this file for every host having zabbix_agent installed. The file should contain IP address of ZABBIX server. Connections from other hosts will be denied. Note, that no end of line character should present in the file.

You may take misc/conf/zabbix_agent.conf as example.

Step 8 Configure /etc/zabbix/zabbix_agentd.conf

You need to configure this file for every host with zabbix_agentd installed. The file should contain IP address of ZABBIX server. Connections from other hosts will be denied. You may take misc/conf/zabbix_agentd.conf as example.

Step 9 Run zabbix_agentd on all monitored machines

shell> /opt/zabbix/bin/zabbix_agentd

Note: You should not run zabbix_agentd if you have chosen to use zabbix_agent!


ZABBIX WEB Interface

Step 1 Point your browser to ZABBIX URL.

Step 2 Read and accept GPL v2.

Step 3 Make sure that all software pre-requisites are met.

Step 4 Configure database settings. ZABBIX database must already be created.

Step 5 See summary of settings.

Step 6 Download configuration file and place it under conf/.

Step 7 Check if everything is fine.


Step 9 For distributed monitoring only!

If used in a distributed environment you have to run:

shell> ./zabbix_server –n <nodeid>

where Node ID is an unique Node identificator. For example:

shell> ./zabbix_server –n 1

This will convert database data for use with Node ID ‘1’ and also adds a local node.


Step 10 ZABBIX frontend is ready! Default username is ‘Admin’ with no password.