Zabbix
从Zabbix
官网获取Zabbix
有一下4种途径:
Zabbix Package
针对不同发行版打保证的安装包,比如适用于Debian
和Ubuntu
的deb
包。用户可以根据系统类型来下载安装。
Zabbix Appliance
这个是Zabbix
基于openSUSE
的镜像,使用MySQL
作为默认的数据库系统,建议这个版本用于评估测试Zabbix
。
Zabbix Sources
Zabbix
的源代码,需要用户自行根据自身需求编译安装,其中包括Zabbix server
,Zabbix agent
,Zabbix proxy
以及前端界面。
Zabbix Pre-compiled Agents
已经编译好的安装包。
源码目录结构如下:
+ zabbix-2.4.3
+ bin:Windows系统下的可执行文件
+ build:window系统下使用
+ conf:Zabbix配置文件的例子,对于每个参数都有说明
+ database:数据库初始化文件
+ frondends:Zabbix前端PHP代码
+ include:编译时需要的头文件
+ m4:configure脚本中shell代码的分装,用于自动化生成configure和Makefile
+ man:zabbix manual
+ misc:不同系统的Zabbix的启动文件
+ src:Zabbix的源码,不包括前端PHP代码
使用MySQL
为Zabbix server
的数据存储引擎,需要初始化数据库中的Schema和其中的一些数据。
使用root
登录MySQL
,创建数据库,这里使用zabbix
作为服务器存储数据的数据库名称,便于识别。
注意:这里使用的
root
跟Linux
的root
不是一回儿事。这里的root
是MySQL
服务器程序的超级管理员,相当于Linux
的root
用户。shell > mysql -uroot -p //登录MySQL,命令行提示符变为mysql mysql > CREATE DATABASE zabbix character set utf8 collate utf8_bin; //创建名字为zabbix的数据库 mysql > SHOW DATABASES;//显示所有的数据库,若zabbix存在,则代表创建成功 mysql > EXIT //退出MySQL shell > mysql -uroot -p zabbix < zabbix-2.4.3/database/mysql/schema.sql //导入schema.sql shell > mysql -uroot -p zabbix < zabbix-2.4.4/database/mysql/images.sql //导入images.sql shell > mysql -uroot -p zabbix < zabbix-2.4.3/database/mysql/data.sql //导入data.sql
使用root
启动Zabbix Server
或者Zabbix Agent
时,会自动切换到zabbix
用户,前端是不需要以zabbix
用户运行的。官方建议,在用一台主机上运行Zabbix Server
和Zabbix Agent
时, 出于安全原因,最好使用2个用户分别运行。
groupadd zabbix
useradd -g zabbix zabbix
使用./configure --help
查看编译配置,这里在本机上安装Zabbix Server
和Zabbix Agent
,以MySQL
作为存储引擎。
./configure --enable-server --enable-agent --with-mysql
如果需要监控虚拟机的功能,添加
--with-libxml2
使用
--prefix=/path/of/zabbix
,指定安装目录
一步到位的编译选项如下:
./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --prefix=/usr/local/zabbix
编译源码的常见错误如下:
Not found mysqlclient library:安装mysql-devel LIBXML2 library not found:安装libxml2-devel Curl library not found:安装curl-devel cannot use unixODBC library:安装unixODBC-devel Invalid Net-SNMP directory - unable to find net-snmp-config:安装net-snmp-devel Invalid OPENIMPI directory - unable to find ipmiif.h:安装OpenIMPI-devel
make install
在编译时制定安装目录为/usr/local/zabbix
后,zabbix_server
、zabbix_agentd
和zabbix_proxy
安装在/usr/local/zabbix/sbin/
目录下,客户端的zabbix_get
和zabbix_sender
安装在/usr/local/zabbix/bin
。因为/usr/local/zabbix/
不在环境变量PTAH
中,若想在任何目录下直接运行,曾需要将可执行文件路径加入PATH
,在这里做了一个链接。
ln -s /usr/local/zabbix/bin/zabbix_get zabbix_get
ln -s /usr/local/zabbix/bin/zabbix_sender zabbix_sender
ln -s /usr/local/zabbix/sbin/zabbix_agentd zabbix_agentd
ln -s /usr/local/zabbix/sbin/zabbix_server zabbix_server
在/srv/www/htdocs
目录下新建子目录zabbix
,并将zabbix
源码中的frontend/php
目录下的所有文件复制到此处。打开/etc/apache2/conf.d/zabbix.conf
,注意以下几行,将目录地址设为前端PHP
代码的所在目录。
<IfDefine ZABBIX>
Alias /zabbix "/srv/www/htdocs/zabbix/"
<Directory "/srv/www/htdocs/zabbix/">
...
<DirectoryMatch "/srv/www/htdocs/zabbix/(conf/|include/)>
在浏览器中输入localhost/zabbix
,根据安装提示来安装。最后可以登录zabbix
前端配置界面,默认帐号密码分别是Admin
和zabbix
,登录之后点击右上角的profile
来修改管理员密码。
配置成功后,如果要禁用web的重新配置,注释掉/srv/www/htdocs/zabbix/include/menu.inc/php
中的一下代码
/**,
array(
'url' => 'setup.php',
'label' => _('Installation')
)**/
Zabbix
前端默认将中文显示关闭了,若要更改前端语言,打开/srv/www/htdocs/zabbix/include/locales.inc.php
,找到下面一行代码,打开zh_CN
设置,然后依然点击右上角的profile
来设置语言。
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false),
如果要完美显示中文,需要自行将支持中文字体放入前端配置字体目录下,这里选择使用
simkai.ttf
这个字体cp simkai.ttf /srv/www/htdocs/zabbix/fonts/
设置
/srv/www/htdocs/zabbix/include/defines.inc.php
中的字体设置,将原始字体改为simkai.ttf
define('ZBX_GRAPH_FONT_NAME','simkai'); // font file name
注意:字体最好不要更改,有可能造成graph
中坐标轴信息显示错误。
zabbix server
配置配置文件/usr/local/zabbix/etc/zabbix_server.conf
,主要设置
LogFile //日志存放目录
PidFile //pid文件
DBName //数据库名称
DBUser //数据库用户
DBPassword //数据库密码
将zabbix_server
加入systemd
管理
[Unit]
Description=Zabbix Server
After=syslog.target network-online.target mysqld.service
[Service]
Type=forking
ExecStart=/usr/local/zabbix/sbin/zabbix_server --config /usr/local/zabbix/etc/zabbix_server.conf
ExecReload=/usr/local/zabbix/sbin/zabbix_server --runtime-control config_cache_reload
RemainAfterExit=yes
PIDFile=/tmp/zabbix_server.pid
[Install]
WantedBy=multi-user.target graphical.target
zabbix agentd
配置配置文件/usr/local/zabbix/etc/zabbix_server.conf
,主要设置
LogFile //日志存放
PidFile //pid文件
Server //server IP
Hostname //运行agentd的主机名,必须与前端管理中设置的agent名称一致