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监控nginxmysqljava应用Zabbix + proxy分布式