zabbix分布式监控的部署

Posted 夕颜@伤雨痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix分布式监控的部署相关的知识,希望对你有一定的参考价值。

     zabbix是一个分布式监视,管理系统,基于server-clinet架构,可用于监视各种网络服务,服务器和网络机器等状态.

server端基于C语言,web管理端Frontend则是基于phpA制作的,在clinet端如UNIX,windows中安装zabbix agent之后,可监控CPU,负载,网络使用情况,硬盘容量等各种状态.

      zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案,Zabbix能够监视各种网络参数,保证服务器系统安全运行;并提供灵活的通知机制让系统管理员快速的定位/解决各种问题;

zabbix由两部分组成,zabbix-server与可选组件zabbix agent。zabbix server 可以通过SNMP,zabbix agent,ping端口监视监控远程主机,数据收集等功能;

       Zabbix server可以单独监视远程服务器的服务状态;同事也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可以被动接收zabbix agentd 发送数据(trapping方式).

          Zabbix主要特点:

   安装与配置简单,学习成本低;支持多语言;免费开源;自动发现服务器与网络设备;

   分布式监视以及WEB集中管理功能;可以无agent监视;用户安全认证和柔软的授权方式;

   通过WEB界面设置或查看监视结果;email等通知功能;

   Zabbix主要功能:

CPU负载;内存的使用;磁盘的使用;网络状况;端口的监视;日志的监视;

    Zabbix主要有5个主菜单栏:

Moniting:主要是对监控对象的一些相关展示,比如说web应用的展示;

Inventory:资产管理,类似于公司里的资产管理,比如一个硬件设备,这里可能会标识设备的名称,操作系统,MAC地址,资产编号等;

Reports:这里主要展示了zabbix服务的状态,比如主机数,报警属,还有就是展示了一写设备的可用性报表等相关的信息;

Congfiguration:这里主要用来对系统的配置,比如创建主机,创建模板,创建报警,创建流量图片等相关的基本配置主要通过这里来实现的,

Adminstration:这里也是用了对系统进行配置,可configuration相比,这里的配置主要实现对zabbix本身的一些相关的配置工作,比如登录zabbix的用户的创建等工作主要通过这里来配置

Zabbix监控功能:

监控服务器的运行状态:CPU,内存,网卡。硬盘容量,磁盘I/O,负载locad;

监控应用的port,连接数,web网站的关键词

监控网络设备,防火墙,交换机,路由器,带宽流量,以及运行是否正常

服务底层硬件:CPU温度,风扇转速以及硬盘损坏

开源主流的监控软件:

  1. zabbix(C/S):自动发现,自动监控,分布式
  2. cacti,Nagios,Ganglia,Mrtg(分布式不支持,自动发现,自动监控)
  3. 支持自动发现服务器和网络设备;
  4. 支持底层自动发现,
  5. 分布式的监控体系和集中式的web管理;
  6. 支持主动监控和被动监控模式
  7. 服务器端支持多中操作系统:linux,solaris,HP-UX,ALX,Freebsd,openbsd,MAC等
  8. Agent客户端支持多种操作系统:linux,solaris,HP-UX,ALX,FreeBSD,windows等
  9. 基于SNMP,IPMI接口方式也可以监控Agent;
  10. 安全的用户认证及权限配置
  11. 基于WEB的管理方法,支持自由的自定义时间和邮件发送;
  12. 高水平的业务管理方法,支持自由的自定义事件和邮件发送;
  13. 高水平的业务视图监控资源,支持日志审计,资产管理等功能 ;
  14. 支持高水平APL二次开发,脚本监控,自KEY定义,自动化运维整合的调用

    环境部署:

Centos6.5(zabbix-server)ip:192.168.20.209

centos6.5(zabbix-proxy):192.168.20.20.207

Centos6.5(zabbix-agent被控端)ip:192.168.20.150

 

zabbix-server端的部署于配置:

yum搭建LAMP环境
yum install httpd httpd-devel httpd-tools mysql mysql-devel mysql-server
由于Zabbix3.2+ PHP版本需要使用PHP5.4.0版本,请将本机PHP版本升级至5.4.0+,PHP5.3升级至PHP5.6;
rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm
yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64 php56w-mbstring php56w-bcmath php56w-gd php56w-xml -y --skip-broken
部署zabbix-server端(ps:centos6.x版本在后面邮件报警)
 Zabbix邮件发送失败,报错Support for SMTP authentication was not compiled in,原因是由于Zabbix CURL版本要求至少是7.20+版本,升级CURL,升级方法:
root@zabbix-server ~]# wget http://mirror.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm
[root@zabbix-server ~]# rpm -ivh city-fan.org-release-1-13.rhel6.noarch.rpm
[root@zabbix-server ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/libnghttp2-1.6.0-1.el6.1.x86_64.rpm
[root@zabbix-server ~]# yum upgrade libcurl libcurl-devel -y
 
[root@zabbix-server ~]# yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI gcc
[root@zabbix-server ~]#useradd -M -s /sbin/nologin zabbix
[root@zabbix-server ~]# tar zxvf zabbix-3.2.7.tar.gz
[root@zabbix-server ~]# cd zabbix-3.2.7/
server zabbix-3.2.7]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
[root@zabbix-server zabbix-3.2.7]# make
[root@zabbix-server zabbix-3.2.7]# make install
[root@zabbix-server zabbix-3.2.7]# ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/
root@zabbix-server zabbix-3.2.7]# cd /usr/local/zabbix/etc/
[root@zabbix-server etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d
[root@zabbix-server etc]# cp zabbix_server.conf zabbix_server.conf.back
[root@zabbix-server etc]# vim zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
[root@zabbix-server ~]# /etc/init.d/mysqld start #启动mysql服务&进入数据库
mysql> create database zabbix charset=utf8;
mysql> grant all on zabbix.* to zabbix@localhost identified by \'123456\';
mysql> flush privileges;
[root@zabbix-server ~]# cd zabbix-3.2.7/database/mysql/
[root@zabbix-server mysql]# mysql -uzabbix -p123456 zabbix < schema.sql
[root@zabbix-server mysql]# mysql -uzabbix -p123456 zabbix < images.sql
[root@zabbix-server mysql]# mysql -uzabbix -p123456 zabbix < data.sql
[root@zabbix-server ~]# cp -a zabbix-3.2.7/frontends/php/* /var/www/html/ #将zabbix的php配置文件拷贝到网站根目录&进行图形化安装
[root@zabbix-server ~]# ls /var/www/html/
更改PHP配置文件相关设置
[root@zabbix-server ~]# sed -i \'s/\\;always_populate_raw_post_data/always_populate_raw_post_data/g\' /etc/php.ini
[root@zabbix-server ~]# sed -i \'/max_execution_time/s/30/600/g;/max_input_time/s/60/600/g;/memory_limit/s/128M/256M/g;/post_max_size/s/8M/32M/g;/upload_max_filesize/s/2M/16M/g;s/\\;date.timezone.*/date.timezone \\=\\Asia\\/Shanghai/g\' /etc/php.ini
重启httpd,zabbix_server,mysqld(已启动)
[root@zabbix-server ~]# cd zabbix-3.2.7/misc/init.d/tru64/
[root@zabbix-server tru64]# cp zabbix_* /etc/init.d/
[root@zabbix-server tru64]# chmod o+x /etc/init.d/zabbix_server
[root@zabbix-server tru64]# /etc/init.d/zabbix_server start
[root@zabbix-server ~]# /etc/init.d/httpd start
[root@zabbix-server ~]# netstat -anput | grep httpd
tcp 0 0 :::80 :::* LISTEN 10751/httpd
udp 0 0 192.168.20.209:39651 192.168.20.2:53 ESTABLISHED 10751/httpd
[root@zabbix-server tru64]# netstat -anput | grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 10679/zabbix_server
tcp 0 0 :::10051 :::* LISTEN 10679/zabbix_server

[root@zabbix-server ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

LogFile=/tmp/zabbix_agentd.log
Server=192.168.20.209
ServerActive=192.168.20.209
Hostname =192.168.20.209
[root@zabbix-server etc]# /etc/init.d/zabbix_agentd start 即可!
上传字体windows中文字体,是zabbix图形监控能有识别乱码

[root@zabbix-server fonts]# mv SIMKAI.TTF DejaVuSans.ttf

 

######################################################################################################################

zabbix-proxy分布式的配置

Zabbix是一个分布式监控系统,它可以以一个中心点、多个分节点的模式运行,使用Proxy能大大的降低Zabbix Server的压力,Zabbix Proxy可以运行在独立的服务器上,

Zabbix agent 在windows上安装部署

首先,我们需要在zabbix-server端创建zabbix-proxy端的新数据库

mysql> create database zabbix_proxy charset=utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on zabbix_proxy.* to zabbix@‘%’ identified by \'123456\';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

[root@zabbix-server ~]# cd zabbix-3.2.7/database/mysql/

[root@zabbix-server mysql]# mysql -uzabbix -p123456 zabbix_proxy <schema.sql
[root@zabbix-server mysql]# mysql -uzabbix -p123456 zabbix_proxy <images.sql

接下来我们在zabbix_proxy部署分布式

[root@zabix-proxy ~]# yum  install -y mysql mysql-devel

[root@zabix-proxy ~]# yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBIc

[root@zabix-proxy ~]# useradd -M -s /sbin/nologin zabbix

 [root@zabix-proxy zabbix-3.2.7]# make install 

root@zabix-proxy ~]# tar zxvf zabbix-3.2.7.tar.gz

[root@zabix-proxy ~]# cd zabbix-3.2.7
[root@zabix-proxy zabbix-3.2.7]# ./configure --prefix=/usr/local/zabbix/ --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl

[root@zabix-proxy zabbix-3.2.7]# make

[root@zabix-proxy zabbix-3.2.7]# make install 

root@zabix-proxy zabbix-3.2.7]# ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/

[root@zabix-proxy zabbix-3.2.7]# cd /usr/local/zabbix/etc/
[root@zabix-proxy etc]# cp zabbix_proxy.conf zabbix_proxy.conf.back
[root@zabix-proxy etc]# vim zabbix_proxy.conf

Server=192.168.20.209
Hostname=192.168.20.207
LogFile=/tmp/zabbix_proxy.log
DBHost=192.168.20.209
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
Timeout=4
LogSlowQueries=3000
DataSenderFrequency=30
HistoryCacheSize=128M
CacheSize=128M

[root@zabix-proxy etc]# mysql -h192.168.20.209 -uzabbix -p123456

 

[root@zabix-proxy ~]# /usr/local/zabbix/sbin/zabbix_proxy    #启动proxy
[root@zabix-proxy ~]# netstat -anput | grep zabbix_proxy

zabbi-proxy启动完成之后,接下来我们需要在zabbi-server端上添加proxy

 

创建主机使用proxy端监控

PS:proxy监控某台机器,需要将该机器的配置IP指向proxy端,不能再指向zabbi-server端,因为是由proxy监控并将监控数据上报给zabbix-server端

重启agent端生效!

新建的主机监控需要添加监控模板

 

ps:如果server端未能正常获取到监控图形数据,在保证server端配置无误的情况下,我们可以检查proxy和agent端,包括时间是否同步,IP地址指向是否正确!

 到此为止zabbix-server通过proxy端监控agent成功!!!!!!!!!!!!!!!

########################################################

批量发现

 

以上是关于zabbix分布式监控的部署的主要内容,如果未能解决你的问题,请参考以下文章

Zabbix分布式监控部署proxy安装

zabbix proxy分布式监控部署

Zabbix监控和分布式部署实施方案

部署Zabbix集中监控系统

部署Zabbix集中监控系统

Zabbix基于Proxy分布式部署实现Web监控