一、zabbix是什么
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系统之上。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
相比较Cacti,Zabbix具有不亚于Cacti的图形表现效果,同时还支持监控报警功能。并且内置的监控模板比Cacti要丰富的多得多。
相比较Nagios,Zabbix安装配置要简单的多,利于实现。同时学习成本也要低得多。在监控性能方面也不亚于Nagios。因此,目前越来越多的公司开始使用Zabbix作为监控的最佳解决方案。
++++++++++++++++++++++++++++++++++++++++++++++
二、 zabbix的优缺点
**优点**
* 开源,无软件成本投入
* Server 对设备性能要求低
* 支持设备多,自带多种监控模板
* 支持分布式集中管理,有自动发现功能,可以实现自动化监控
* 开放式接口,扩展性强,插件编写容易
* 当监控的item 比较多服务器队列比较大时可以采用被动状态,被监控客户端主动从server 端去下载需要监控的item 然后取数据上传到server 端。这种方式对服务器的负载比较小。
**缺点**
* 需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。
+++++++++++++++++++++++++++++++++
三、zabbix基于agent采集数据的方式
1、被动模式
Zabbix服务器端按照监控配置项目制定的时间间隔,定期连接到agent上的守护进程,获取agent组件采集到的数据。
2、主动模式
Agent端从server端获取采集数据的监控项目列表及其配置信息。而agent端确定所需要的连接zabbix服务器代理的方法是,从agent的配置文件中读取serveractive该配置项的内容。读取频率RefreshActiveChecks指定,默认120s。
主动模式的好处:当被监控设备代理组件所封装的监控项目种类不能满足需要的时候,完全可以使用我们擅长的任何一种高级语言来开发小的工具或者脚本模拟一个组件,从而实现个性化需求。然而通过小工具或者脚本模拟组件时,一般来说使用主动模式会比较方便。原因就是:使用主动模式时,这类小工具不需要以守护进程的方式运行,更不需要在被监控设备上开额外的服务端口,只需这类小工具或脚本能定时将所采集到的数据发送至zabbix服务器或其代理指定的端口上。
++++++++++++++++++++++++++++++++++++++
四、zabbix基本组件的安装配置
zabbix的安装包括四个部分:server服务端、agent数据收集端、web配置管理端、数据保存数据库端。
架构如下:
| 设备 | 应用端 |
| ------- | -------- |
| servera | agent |
| serverb | server |
| serverc | web |
| serverd | database |
先保证我们所有服务器的时区都是Asia/shanghai,分别在每台服务器上执行以下命令
[[email protected] ~]# timedatectl set-timezone Asia/Shanghai
1、Server端的安装
软件安装,这里server端通过源码编译的方式,将服务主目录放置/usr/local/zabbix目录下:
[[email protected] ~]# setenforce 0 [[email protected] zabbix]# cp zabbix-2.4.6.tar.gz /tmp [[email protected] zabbix]# cd /tmp [[email protected] tmp]# tar -xf zabbix-2.4.6.tar.gz # 这里采用源码编译的方式来安装 [[email protected] tmp]# yum install gcc gcc-c++ mariadb-devel libxml2-devel net-snmp-devel libcurl-devel -y # 安装源码编译需要的依赖包 [[email protected] tmp]# cd zabbix-2.4.6/ [[email protected] zabbix-2.4.6]# ./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-agent --enable-ipv6 [[email protected] zabbix-2.4.6]# make [[email protected] zabbix-2.4.6]# make install [[email protected] zabbix-2.4.6]# useradd zabbix # 添加zabbix用户用以服务zabbix server端的正常运行 服务端的数据库连接配置: [[email protected] zabbix-2.4.6]# cd /usr/local/zabbix/ [[email protected] zabbix]# ls bin etc lib sbin share [[email protected] zabbix]# cd etc [[email protected] etc]# vim zabbix_server.conf # 该文件为服务端的主配置文件,变更如下参数 DBHost=172.25.0.13 DBName=zabbix DBUser=zabbix DBPassword=123456
2、Database端的安装
安装mariadb-server软件:
[[email protected] ~]# setenforce 0 [[email protected] ~]# yum -y install mariadb-server [[email protected] ~]# systemctl start mariadb 登录上serverb这台服务器,将sql语句远程复制到数据库服务器上: [[email protected] database]# cd /tmp/zabbix-2.4.6/database/mysql/ # 注意:需要导入的数据在server端。 [[email protected] mysql]# scp * 172.25.0.13:/tmp mysql服务器将对应的sql语句进行导入的操作,三个sql文件的导入顺序不能出错: [root[email protected] ~]# mysql MariaDB [(none)]> create database zabbix; MariaDB [(none)]> Bye [[email protected] ~]# mysql zabbix < /tmp/schema.sql [[email protected] ~]# mysql zabbix < /tmp/images.sql [[email protected] ~]# mysql zabbix < /tmp/data.sql mysql授权,授权给server端及web端: [[email protected] ~]# mysql MariaDB [(none)]> grant all on zabbix.* to [email protected]‘172.25.0.11‘ identified by ‘123456‘; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> grant all on zabbix.* to [email protected]‘172.25.0.12‘ identified by ‘123456‘; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> grant all on zabbix.* to [email protected]‘serverb.example.com‘ identified by ‘123456‘; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> grant all on zabbix.* to [email protected]‘serverc.example.com‘ identified by ‘123456‘; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec)
3、 Web端的安装
安装web端所需要的软件:
[[email protected] ~]# setenforce 0 [[email protected] ~]# yum -y install httpd php php-mysql # 安装lamp环境需要的软件包 [[email protected] zabbix]# yum -y localinstall zabbix-web-2.4.6-1.el7.noarch.rpm zabbix-web-mysql-2.4.6-1.el7.noarch.rpm php-mbstring-5.4.16-23.el7_0.3.x86_64.rpm php-bcmath-5.4.16-23.el7_0.3.x86_64.rpm # 安装依赖包及web包 变更web端相关配置文件,指定时区。 [[email protected] zabbix]# vim /etc/httpd/conf.d/zabbix.conf php_value date.timezone Asia/Shanghai 启动所有相关服务软件 server端的启动 [[email protected] sbin]# cd /usr/local/zabbix/sbin/ [[email protected] sbin]# ./zabbix_server [[email protected] sbin]# ps -ef | grep zabbix zabbix 3218 1 0 22:20 ? 00:00:00 ./zabbix_server zabbix 3220 3218 0 22:20 ? 00:00:00 ./zabbix_server: configuration syncer [waiting 60 sec for processes] zabbix 3221 3218 0 22:20 ? 00:00:00 ./zabbix_server: db watchdog [synced alerts config in 0.014155 sec, idle 60 sec] ........... web端的启动 [[email protected] zabbix]# systemctl restart httpd
4、Agent端的安装
[[email protected] zabbix]# rpm -ivh zabbix-2.4.6-1.el7.x86_64.rpm zabbix-agent-2.4.6-1.el7.x86_64.rpm warning: zabbix-2.4.6-1.el7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY Preparing... ################################# [100%] Updating / installing... 1:zabbix-2.4.6-1.el7 ################################# [ 50%] 2:zabbix-agent-2.4.6-1.el7 ################################# [100%] [[email protected] zabbix]# yum -y install net-snmp net-snmp-utils 配置agent端相关参数 [[email protected] zabbix]# vim /etc/zabbix/zabbix_agentd.conf Server=172.25.0.11 ServerActive=172.25.0.11 Hostname=servera.example.com UnsafeUserParameters=1 [[email protected] zabbix]# systemctl restart zabbix-agent
+++++++++++++++++++++++++++++++++++++
通过图形化界面初始化web端:
打开浏览器访问http://172.25.0.12/zabbix/
保证php环境满足需求
填写数据库相关配置
填写server端相关信息
安装完成,登录,默认用户名为admin,密码为zabbix。
五、zabbix变更中文环境
点击右上角profile参数,可以看到如下界面,Language这里选择chinese(zh_CN)即可
但是会有一些问题,并不是所有的语言都被顺利翻译成了中文,比如这里出现的问号。
主要原因是由于mysql数据库的字符集格式,我们默认使用的字符集为utf8,而mysql里的字符集为latin1。
MariaDB [(none)]> show create database zabbix;
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| zabbix | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]>
这里采用以下操作来变更字符集
[[email protected] ~]# mysqldump zabbix > /tmp/zabbix.sql
[[email protected] ~]# sed -i ‘s/latin1/utf8/‘ /tmp/zabbix.sql
[[email protected] ~]# mysqladmin drop zabbix
[[email protected] ~]# mysql
MariaDB [(none)]> create database zabbix DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
[[email protected] ~]# mysql zabbix < /tmp/zabbix.sql
变更完成后,对应问号部分会显示中文,代表中文环境切换正常。