一、Zabbix安装所需环境介绍

1、硬件

zabbix 基础 -- 安装篇_第1张图片


2、软件

数据库:

zabbix 基础 -- 安装篇_第2张图片


zabbix产生的数据主要由四部分组成:

配置数据

历史数据:50Bytes 

历史趋势数据: 128Bytes

事件数据: 130Bytes


这里数据的大小是指每次采集的数据的大小


      可见zabbix对服务器的硬件配置要求有多低,现在的服务器一般都比上面最高配还来得高,

我所知道的100来台服务器,做基本的cpu、内存、硬盘、网卡流量等监控,长年累月下来大概60GB左右。


案例:

        100台服务器,每台服务器有30个监控项,每个监控项60秒刷新一次,需要多大的硬盘呢?
众所周知,zabbix基本都是通过web配置,这些配置数据也是存放到数据库里的,但是它对硬盘容量的要求基本可以忽略不计,zabbix对硬盘的决定性因素有4个,如下:


每秒处理的数据量

   这个问题不说,大家也明白。这边的每秒只是一个平均值,例如我有3000个监控项,每60秒刷新一次,那么平均每秒有50(3000/60)个数据要处理。就是说每秒有50条数据要插入MySQL


历史记录保存时间

        zabbix对每个监控项的值都要记录下来,这些记录一般保留几周到几个月,具体看你的配置了。每个值都需要暂用硬盘空间。假如一个数据你要保留30天,而且每秒有50个值要保留,那我们一共有129,600,000(30天*24小时*3600秒)*50个值,一条记录多大,由你的数据库引擎和你存储的数据类型来决定(浮点型,×××,字符型等等),一般来说一条记录需要占用50个字节(一个大概值),在这个案例中129,600,000个记录大约需要(129600000*50字节)6.5G的硬盘空间


趋势数据保存时间

       什么是趋势数据呢?当你查看一周或者一月的图表,图表上看到的MAX/MIN/AVG/COUNT都是取自趋势数据,趋势数据一小时获取一次,一般情况下,趋势数据一条记录大概占用128字节,如果我们想保存5年趋势数据,3000个监控项需要2.4GB(3000个*24小时*356天*128字节)每年,5年一共16.8G


事件记录保存时间

        报警、警告、恢复等等事情,一个事件大概占用130个字节,一般情况下不会太多,除非运维做的太糟糕,或者运维要求太严格,把阀值调的很低。假如这个运维今年本命年,既没拜佛有没烧香,更别说给服务器贴灵符,于是这一年每秒钟就有一个事件发生,那么事件这一年占用的数据空间为:1年*365天*24小时*3600秒*130字节大概为4.1G空间。


数据库空间计算公式

zabbix配置:固定大小,一般<10MB
历史数据:天数*(监控项总数/刷新频率)*24小时*3600秒*50字节
趋势数据:天数*(监控项总数/3600)*24小时*3600秒*128字节
事件数据:天数*事件个数(大概值)*24小时*3600秒*130字节

最后

       看到这里,大家都心里有数了,数据库硬盘空间=配置文件大小+历史记录+趋势记录+事件记录。

算下来100台主机每台主机30个监控项保存一个月历史数据也才13G左右

虽然这个硬盘会不停的增长,但是总有一天会停止增长,空间一直保持不变


转载运维生成时间zabbix教程:http://www.ttlsa.com/zabbix/zabbix-database-space-6-ttlsa/


Zabbix-Web:

zabbix 基础 -- 安装篇_第3张图片


Zabbix-Server:

zabbix 基础 -- 安装篇_第4张图片


软件要求在使用yum安装时会自动解决依赖关系,但不包括mysqld


二、Zabbix安装

   官网有源码包和rpm包,这里我们使用2.4版本的rpm包

1、安装Zabbix源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@Node6 ~] # yum install http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 
 
 
[root@Node6 ~] # ls /etc/yum.repos.d/
CentOS-Base.repo      CentOS-Debuginfo.repo  CentOS-Vault.repo  zabbix.repo
CentOS-Base.repo.bak  CentOS-Media.repo      epel-6.repo
 
[root@Node6 ~] # cat /etc/yum.repos.d/zabbix.repo 
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http: //repo .zabbix.com /zabbix/2 .4 /rhel/6/ $basearch/
enabled=1
gpgcheck=1
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
 
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch 
baseurl=http: //repo .zabbix.com /non-supported/rhel/6/ $basearch/
enabled=1
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1


2、zabbix相关包介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@Node6 ~] # yum list|grep zabbix
zabbix.x86_64                               2.4.8-1.el6                  zabbix 
                  # 公共组件/核心组件 被zabbix-agent,proxy,server共同使用
zabbix-agent.x86_64                         2.4.8-1.el6                  zabbix 
                  # 客户端
zabbix-get.x86_64                           2.4.8-1.el6                  zabbix
                  # 服务器端手动收集数据 
zabbix-java-gateway.x86_64                  2.4.8-1.el6                  zabbix
                  # 监控java程序的组件 
zabbix-proxy.x86_64                         2.4.8-1.el6                  zabbix
                  # Zabbix分布式部署中的代理节点 
zabbix-proxy-mysql.x86_64                   2.4.8-1.el6                  zabbix 
                  # 代理端和mysql数据关联的包(默认)
zabbix-proxy-pgsql.x86_64                   2.4.8-1.el6                  zabbix 
zabbix-proxy-sqlite3.x86_64                 2.4.8-1.el6                  zabbix 
zabbix-sender.x86_64                        2.4.8-1.el6                  zabbix 
                  # 客户端手动发送数据
zabbix-server.x86_64                        2.4.8-1.el6                  zabbix
                  # 服务器端 
zabbix-server-mysql.x86_64                  2.4.8-1.el6                  zabbix 
                  # 服务器端和mysql数据关联的包 (默认)
zabbix-server-pgsql.x86_64                  2.4.8-1.el6                  zabbix 
zabbix-server-sqlite3.x86_64                1.8.22-1.el6                 epel   
zabbix-web.noarch                           2.4.8-1.el6                  zabbix 
                  # web-gui  
zabbix-web-japanese.noarch                  2.4.8-1.el6                  zabbix 
                  # web-gui 日本语言包
zabbix-web-mysql.noarch                     2.4.8-1.el6                  zabbix
                  # web和mysql关联的包
zabbix-web-pgsql.noarch                     2.4.8-1.el6                  zabbix
                  # web和数据库关联的包 (默认)

server端需要安装的包:

     zabbix-server

  依赖:zabbix,zabbix-server-mysql 或zabbix-server-pgsql 或zabbix-server-sqlite3

proxy端需要安装的包:

     zabbix-proxy

  依赖:zabbix,zabbix-proxy-mysql 或zabbix-proxy-pgsql 或zabbix-proxy-sqlite3

agent端需要安装的包:

      zabbix-agent

  依赖:zabbix,zabbix-sender


三、Zabbix安装实例

1、环境

CentOS 6.5 x86_64

Node6:192.168.10.6  Zabbix-server,Zabbix-web,Zabbix-agent

Node1:192.168.10.1  Zabbix-agent

Node2:192.168.10.2  Zabbix-agent


2Node6安装zabbix-server,zabbix-web,zabbix-agent

 1)安装zabbix-server,zabbix-get

1
[root@Node6 ~] # yum install zabbix-server zabbix-get

 2)安装zabbix-web,zabbix-web-mysql   # zabbix-web默认依赖的是zabbix-web-pgsql

1
[root@Node6 ~] # yum install zabbix-web zabbix-web-mysql

 3)安装zabbix-agent

1
[root@Node6 ~] # yum install zabbix-agent zabbix-sender


3、Node6安装mysql-server,创建zabbix数据库、授权并向zabbix数据库中导入数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
### 创建zabbix数据库
 
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| node2              |
| node5              |
| performance_schema |
test                |
+--------------------+
6 rows  in  set  (0.00 sec)
 
MariaDB [(none)]> create database zabbix;
Query OK, 1 row affected (0.03 sec)
 
### 授权一个用于zabbix连接mysqld的用户
 
MariaDB [(none)]> grant all on zabbix.* to  'zbxuser' @ '192.168.10.%'  identified by  'zbxpass' ;
Query OK, 0 rows affected (0.20 sec)
 
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| node2              |
| node5              |
| performance_schema |
test                |
| zabbix             |
+--------------------+
7 rows  in  set  (0.00 sec)
 
### 导入数据
 
[root@Node6 zabbix] # cd /usr/share/doc/zabbix-server-mysql-2.4.8/
[root@Node6 zabbix-server-mysql-2.4.8] # ls
create  upgrades                    # 创建数据库  # 升级zabbix用来升级升级数据库的
 
[root@Node6 create] # ls
data.sql  images.sql  schema.sql     # 导入的顺序是schema imagesdata
 
### myslqd和zabbix-server没在同一台主机上时,安装mysql客户端导入到mysqld服务器上
 
[root@Node6 create] # mysql zabbix -h192.168.10.2 -uzbxuser -p< schema.sql 
Enter password: 
[root@Node6 create] # mysql zabbix -h192.168.10.2 -uzbxuser -pzbxpass < images.sql 
[root@Node6 create] # mysql zabbix -h192.168.10.2 -uzbxuser -pzbxpass < data.sql 
 
[root@Node6 create] # mysql zabbix -h192.168.10.2 -uzbxuser -pzbxpass
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
test                |
| zabbix             |
+--------------------+
3 rows  in  set  (0.00 sec)
mysql> use zabbix
Database changed
mysql> show tables;          # 可以看到生成了很多表
+-----------------------+
| Tables_in_zabbix      |
+-----------------------+
| acknowledges          |
| actions               |
| alerts                |
| application_template  |
...


4、修改zabbix-server的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@Node6 ~] # cd /etc/zabbix/
[root@Node6 zabbix] # ls
web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf
[root@Node6 zabbix] # ls web
maintenance.inc.php
[root@Node6 zabbix] # ls zabbix_agentd.d
userparameter_mysql.conf
 
[root@Node6 zabbix] # grep -v '^#\|^$' zabbix_server.conf  # 修改后的配置文件
LogFile= /var/log/zabbix/zabbix_server .log
LogFileSize=0
PidFile= /var/run/zabbix/zabbix_server .pid
DBHost=192.168.10.2             # 如果myslqd是本机用localhost更好,
DBName=zabbix
DBUser=zbxuser
DBPassword=zbxpass
#DBSocket=/var/lib/mysql/mysql.sock         # mysqld不是本机要注释掉该项
SNMPTrapperFile= /var/log/snmptt/snmptt .log
AlertScriptsPath= /usr/lib/zabbix/alertscripts       # 报警脚本的路径
ExternalScripts= /usr/lib/zabbix/externalscripts   # 外部脚本的路径 
 
#注意:还要根据自己的环境修改对应的配置选项,如数据库的端口,


5、启动zabbix-server

1
2
3
4
[root@Node6 zabbix] # service zabbix-server start
Starting Zabbix server:                                    [  OK  ]
[root@Node6 zabbix] # netstat -tuan   # 
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      17779 /zabbix_server    # zabbix-server 监听在tcp10051端口


6、修改php配置文件中的时区

1
2
3
4
[root@Node6 ~] # vi /etc/php.ini
 
; date .timezone =
date .timezone = Asia /Shanghai


7、启动httpd,配置zabbix web界面

1
2
3
4
5
6
7
8
9
10
### yum安装zabbix-sever后会在httpd的配置文件中生成和zabbix相关的配置
 
[root@Node6 ~] # cd /etc/httpd
[root@Node6 httpd] # ls
conf  conf.d  logs  modules  run
[root@Node6 httpd] # ls conf.d
php.conf  README  welcome.conf  zabbix.conf
 
[root@Node6 zabbix] # service httpd start
Starting httpd:


   在浏览器中输入http://192.168.10.6/zabbix  就可以看到zabbix-web的安装界面

zabbix 基础 -- 安装篇_第5张图片

      点下一步,看检查是否都通过了 ,再下一步填上相关信息后:

zabbix 基础 -- 安装篇_第6张图片

         用默认的帐号admin,密码zabbix登录进入zabbix-web主界面:

zabbix 基础 -- 安装篇_第7张图片


dashboard                 仪表盘

inventory                   清单,盘点,库存

overview                    概览

Macros                       宏

maintenance              维护窗口,保养

details                        详细,细节

parameter                  参数

favourite                    优先,喜爱

filter                           过滤


从上图可以看到zabbix有5个一级目录

分别是:     

        monotoring 监控      inventory 资产清单   reports 报告                                  configuration 配置        administration  web管理接口


三、配置zabbix-server监控自己本机

      监控主机的配置都是在zabbi-agent的配置文件中实现

1、修改zabbix-agent的配置文件

1
2
3
4
5
6
7
8
9
10
[root@Node2 zabbix] # grep -v '^#\|^$' zabbix_agentd.conf        
PidFile= /var/run/zabbix/zabbix_agentd .pid
LogFile= /var/log/zabbix/zabbix_agentd .log
LogFileSize=0
Server=127.0.0.1,192,168.10.6    
   #  server端的ip,同时还有授权的作用(允许该主机收集本机数据),多IP用逗号分隔,server端和agent端在同一台机器上时,127.0.0.1这个IP不能删掉 
   
ServerActive=127.0.0.1,192.168.10.6       # 客户端主动报告给服务器端的地址
Hostname=Node2          # server端自动发现时,显示agent端的主机名,必须全局唯一
Include= /etc/zabbix/zabbix_agentd .d/

2、启动zabbix-agent

1
2
3
4
5
6
7
[root@Node6 zabbix] # service zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]
[root@Node6 zabbix] # netstat -tunap   # 客户端监听在10050端口
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID /Program  name   
        
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      18906 /zabbix_agentd


3、在zabbix-web上启用监控zabbix-server本机

        点击configuration --> hosts 可以看到主机中有zabbix-server但是status项是Disabled禁用了,点击Disabled变成Enabled启用即可


四、使用中文界面

        zabbix自带多种语言包,当然也包含中文。登陆到zabbix web控制台默认是英文,对有些英文不好或者习惯中文的人来说会有不适应。

1、那么我们怎么切换到中文版本?

http://www.ttlsa.com/zabbix/zabbix-convert-into-chinese-8-ttlsa/


2、 使用中文界面出现乱码

http://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/


1、在windows中找一个自己喜欢的字体或者去网上下载一个字体

2、把它复制到zabbix的web端的fonts目录下:/usr/share/zabbix/fonts   # yum方式安装的路径

3、修改zabbix页面管理的中文字体设置

vim /var/www/html/zabbix/include/defines.inc.php        #修改以下两行

define('ZBX_FONT_NAME', 'simkai');  # simkai为字体名不带ttf后缀,后缀必须为小写的ttf才行

define('ZBX_GRAPH_FONT_NAME',  'simkai');

4、登陆页面设置相应用户的默认语言Administrator—->Users(此处要保证显示的是用户,否则显示的都是用户组)