Zabbix分布式监控

Posted

tags:

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

一、Zabbix简介


  • Zabbix是一个用于网络,操作系统和应用程序的开源监控软件,由拉脱维亚的Alexei Vladishev创建。它旨在监视和跟踪各种网络服务,服务器和其他网络硬件的状态。

  • Zabbix可以使用mysql,MariaDB,PostgreSQL,SQLite,Oracle或IBM DB2来存储数据。它的后端用C语言编写,Web前端用php编写。Zabbix提供多种监控选项:
  • 简单检查可以验证标准服务(如SMTP或HTTP)的可用性和响应性,而无需在受监视主机上安装任何软件。
  • 还可以在UNIX和Windows主机上安装Zabbix 代理,以监视CPU负载,网络利用率,磁盘空间等统计信息。
  • 作为在主机上安装代理的替代方法,Zabbix支持通过SNMP,TCP和ICMP检查以及IPMI,JMX,SSH,Telnet和使用自定义参数进行监控。Zabbix支持各种近实时通知机制,包括XMPP。
  • 根据GNU通用公共许可证版本2的条款发布,Zabbix是免费软件。
  • Zabbix官网:http://www.zabbix.com/
  • zabbix由2部分构成,zabbix server与可选组件zabbix agent。

    Zabbix 通过 C/S 模式采集数据,通过 B/S 模式在 web 端展示和配置。
    >被监控端:主机通过安装 agent 方式采集数据,网络设备通过 SNMP 方式采集数据
    Server 端:通过收集 SNMP 和 agent 发送的数据,写入数据库(MySQL,ORACLE 等),再通过 php+apache 在 web 前端展示。

  • Zabbix 运行条件

    Server:Zabbix Server 需运行在 LAMP(Linux+Apache+Mysql+PHP)环境下(或者
    LNMP),对硬件要求低
    Agent:目前已有的 agent 基本支持市面常见的 OS,包含 Linux、HPUX、Solaris、Sun、
    windows
    SNMP协议:支持各类常见的网络设备

技术分享图片

二、Zabbix功能


  • 支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
  • 高性能,高容量(能够监控数十万台设备)。
  • 支持低级发现(low discovery)key 实现动态监控项的批量监控(需写脚本)
  • 集中式Web管理的分布式监控。分能集中展示、管理分布式的监控点
  • 扩展性强,server 提供通用接口(api 功能),可以自己开发完善各类监控(根据相关接口编写程序实现)
  • 本机高性能代理,支持监控多种服务和跨平台系统监控(适用于Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OS X,Tru64 / OSF1,Windows 2000,Windows Server 2003,Windows XP,Windows Vista,Windows Server 2008,Windows 7的客户端软件)
  • 编写插件容易,可以自定义监控项,报警级别的设置。

总体结构

  • 无代理监控。
  • 基于Web的界面。
  • 支持轮询和陷阱机制。

数据收集

  • 可用和性能检测
  • 支持 snmp(包括 trapping and polling),IPMI,JMX,SSH,TELNET
  • 自定义的检测
  • 自定义收集数据的频率
  • 服务器/代理和客户端模式
  • 灵活的触发器
  • 您可以定义非常灵活的问题阈值,称为触发器,从后端数据库的参考值
    高可定制的报警

通知功能

  • 发送有关预定义事件的灵活电子邮件通知,定制的报警升级,收件人,媒体类型
  • 近实时通知机制,例如使用包括XMPP协议

安全和身份验证

  • 审核日志。
  • 安全用户认证。
  • 灵活的用户权限。
  • 通过用户定义的可视控制台屏幕和仪表板对受监视资源进行高级(业务)视图。
  • 自2017年8月起通过Zabbix代理执行远程命令,直至Zabbix 3.4

三、案例:部署Zabbix


环境准备

两台服务器,一台Server、一台Client,Server两块网卡,第一块vmnet1,第二块桥接,client为vmnet1网卡

role OS IP PG
Server、proxy CentOS6.7_64bit 192.168.1.10 zabbix-2.0.12.tar,zapache-master
Client、agent CentOS6.7_64bit 192.168.1.100 zabbix-2.0.12.tar

部署LAMP平台

1.配置IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
/etc/init.d/network restart

2.安装LAMP平台和Zabbix依赖包

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum -y install gcc* autoconf httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-ldap php-pear php-xmlrpc mysql-connector-odbc libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-devel java-devel openldap openldap-devel php-pdo ncurses-devel httpd mysql-server mysql mysql-devel php php-mysql OpenIPMI OpenIPMI-libs OpenIPMI-devel php-mbstring php-bcmath

3.配置php

vim /etc/php.ini
440 max_execution_time = 300
449 max_input_time = 300
729 post_max_size = 32M
946 date.timezone = Asia/Shanghai           //更改时区为亚洲上海
1586 mbstring.func_overload = 2
useradd -M -s /sbin/nologin zabbix
mkdir /var/log/zabbix
mkdir /etc/zabbix
chown zabbix:zabbix /var/log/zabbix/

部署Zabbix

1.编译安装Zabbix_Server

tar -zxvf zabbix-2.0.12.tar.gz -C /usr/src/
cd /usr/src/zabbix-2.0.12
./configure --prefix=/usr/local/ --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --enable--unixodbc --enable-java
make && make install

2.Zabbix服务配置

cp misc/init.d/fedora/core/zabbix_* /etc/init.d/
vim /etc/zabbix/zabbix_server.conf
39 LogFile=/var/log/zabbix/zabbix_server.log        //定义server服务日志文件位置
77 DBHost=192.168.1.10                  //定义数据库主机
87 DBName=zabbix                    //定义数据库名
103 DBUser=zabbix                   //定义连接数据库用户名
111 DBPassword=zabbix                   //定义连接数据库密码
vim /etc/zabbix/zabbix_agentd.conf
21 LogFile=/var/log/zabbix/zabbix_agentd.log        //定义agentd服务日志文件位置
82 Server=192.168.1.10                  //定义server端服务IP
123 ServerActive=192.168.1.10:10051         //定义server端服务IP
213 Include= /etc/zabbix/zabbix_agentd.conf.d/
228 UnsafeUserParameters=1              //启用自定义脚本功能

3.新建数据库

/etc/init.d/mysqld start && chkconfig --level 35 mysqld on
mysqladmin -u root password "123"
mysql -u root -p
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to [email protected]‘192.168.1.10‘ identified  by ‘zabbix‘;
mysql> flush privileges;
mysql -u zabbix -p -h 192.168.1.10 zabbix </usr/src/zabbix-2.0.12/database/mysql/schema.sql
mysql -u zabbix -p -h 192.168.1.10 zabbix </usr/src/zabbix-2.0.12/database/mysql/images.sql
mysql -u zabbix -p -h 192.168.1.10 zabbix </usr/src/zabbix-2.0.12/database/mysql/data.sql

4.部署Zabbix访问页面

cp -rf /usr/src/zabbix-2.0.12/frontends/php/ /var/www/html/zabbix
chown -R apache:apache /var/www/html/zabbix/

5.访问Zabbix页面

/etc/init.d/httpd start && chkconfig --level 35 httpd on
IE--> 192.168.1.10/zabbix
用户名:admin、密码:zabbix

6.启动Zabbix相关服务

mv /var/www/html/zabbix/setup.php  /var/www/html/zabbix/setup.php.lock
chmod 600 /var/www/html/zabbix/setup.php.lock
/etc/init.d/zabbix_server start && chkconfig --level 35  zabbix_server on
/etc/init.d/zabbix_agentd start && chkconfig --level 35 zabbix_agentd on

部署被监控端(Linux)

1.配置IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
/etc/init.d/network restart

2.定义服务端口

vim /etc/services
zabbix-agent    10050/tcp               # Zabbix Agent
zabbix-agent    10050/udp               # Zabbix Agent
zabbix-trapper  10051/tcp               # Zabbix Trapper
zabbix-trapper  10051/udp               # Zabbix Trapper

3.安装Agent代理软件

useradd -M -s /sbin/nologin zabbix
mkdir /var/log/zabbix
chown zabbix:zabbix /var/log/zabbix/
tar -zxvf zabbix-2.0.12.tar.gz -C /usr/src/
cd /usr/src/zabbix-2.0.12
./configure --prefix=/usr/local/ --sysconfdir=/etc/zabbix --enable-agent
make && make install

4.配置Agent

cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
vim /etc/zabbix/zabbix_agentd.conf
21 LogFile=/var/log/zabbix/zabbix_agentd.log
82 Server=192.168.1.10
123 ServerActive=192.168.1.10:10051
chkconfig --add zabbix_agentd
/etc/init.d/zabbix_agentd start

5.Web界面添加主机

技术分享图片
技术分享图片
技术分享图片
技术分享图片

部署被监控端(Web)

1.安装apache(192.168.1.100做以下操作)

yum -y install httpd
vim /etc/httpd/conf/httpd.conf
ExtendedStatus On
<location /server-status>
 SetHandler server-status
 Order Allow,Deny
 Allow from all
</location>

2.apache模版部署(192.168.1.10做以下操作)

unzip zapache-master.zip
cd zapache-master
cp userparameter_zapache.conf.sample /etc/zabbix/zabbix_agent.conf.d/
cd /etc/zabbix/zabbix_agent.conf.d/
mv userparameter_zapache.conf.sample userparameter_zapache.conf
vim userparameter_zapache.conf 
UserParameter=zapache[*],/usr/local/bin/zapache $1
cd /root/zapache-master
cp zapache /usr/local/bin/
/etc/init.d/zabbix_agentd restart

3.模版导入(192.168.1.10 Web访问),并应用给192.168.1.100主机
技术分享图片
技术分享图片

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

Zabbix监控之分布式监控zabbix_proxy

zabbix概念

zabbix监控nginxmysqljava应用Zabbix + proxy分布式

zabbix监控nginx监控mysql数据库监控java应用Zabbix + proxy分布式

zabbix分布式监控与SNMP监控

分布式监控系统Zabbix-3.0.3-完整安装记录-解决zabbix监控图中出现中文乱码问题