Zabbix
一、简介
1、 zabbix 简介
Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决
方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利
zabbix是一个基于Web界面的,提供分布式系统监控以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题
zabbix主要由2部分构成zabbix server和zabbix agent,可选组建zabbix proxy
zabbix server可以通过SNMP,zabbix agent,fping端口监视等方法对远程服务器或网络状态完成监视,数据收集等功能
支持Linux以及Unix平台,Windows平台只能安装客户端
2、Zabbix 功能
①具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库)
性能监控、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制)
②支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
③支持自动发现(low discovery)key 实现动态监控项的批量监控(需写脚本)
④支持分布式,能集中展示、管理分布式的监控点
⑤扩展性强,server 提供通用接口(api 功能),可以自己开发完善各类监控(根据相关接口编写程序实现)编写插件容易,可以自定义监控项,报警级别的设置。
⑥数据收集
可用和性能检测
支持snmp(包括trapping and polling),IPMI,JMX,SSH,TELNET
自定义的检测
自定义收集数据的频率
服务器/代理和客户端模式
灵活的触发器
可以定义非常灵活的问题阈值,称为触发器,从后端数据库的参考值
高可定制的报警
发送通知,可定制的报警升级,收件人,媒体类型
通知可以使用宏变量有用的变量
自动操作包括远程命令
实时的绘图功能
监控项实时的将数据绘制在图形上面
WEB 监控能力
ZABBIX 可以模拟鼠标点击了一个网站,并检查返回值和响应时间
Api 功能
应用api 功能,可以方便的和其他系统结合,包括手机客户端的使用。
更多功能请查看
3、Zabbix 工作方式
Zabbix 通过C/S 模式采集数据,通过B/S 模式在web 端展示和配置。
被监控端:主机通过安装agent 方式采集数据,网络设备通过SNMP 方式采集数据
Server 端:通过收集SNMP 和agent 发送的数据,写入数据库(MySQL,ORACLE 等),
再通过php+apache 在web 前端展示。
4、Zabbix 的运行条件
Server:Zabbix Server 需运行在LAMP(Linux+Apache+Mysql+PHP)环境下(或者
LNMP),对硬件要求低
Agent:目前已有的agent 基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、
windows
SNMP:支持各类常见的网络设备
SNMP(Simple Network Management Protocol,简单网络管理协议
5、监控逻辑图
二、安装部署
1、环境准备
一台centos 6.5操作系统服务器,关闭防火墙,selinux,部署lamp平台
在这里采用的lamp环境是apache2.4+mysql5.6+php5.6
[root@www zabbix]# cat /etc/redhat-release CentOS release 6.5 (Final) [root@www zabbix]# uname -r 2.6.32-431.el6.x86_64
2、安装zabbix依赖包
yum install fping net-snmp-devel unixODBC-devel openssl-devel OpenIPMI-devel java-devel curl-devel libxml2-devel iksemel-devel libevent-devel -y
个人习惯每安装的服务都会另创建目录,博主在这里创建的是/service/zabbix,安装包的位置安装的位置在/usr/local/zabbix下载zabbix软件包,并添加服务用户
useradd zabbix -s /sbin/nologin/ -M mkdir /service/zabbix -p 下载tar包 cd /service/zabbix && wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.2.6.tar.gz tar xf zabbix-3.2.6.tar.gz 解压 cd zabbix-3.2.6
3、安装包说明
[root@www zabbix-3.2.6]# ll 总用量 1392 -rw-r--r-- 1 1000 1000 49137 7月 22 2016 aclocal.m4 -rw-r--r-- 1 1000 1000 98 7月 22 2016 AUTHORS drwxr-xr-x 4 1000 1000 4096 7月 22 2016 bin zabbix的windows版本程序 drwxr-xr-x 4 1000 1000 4096 7月 22 2016 build -rw-r--r-- 1 1000 1000 687803 7月 22 2016 ChangeLog -rwxr-xr-x 1 1000 1000 7333 1月 3 2014 compile drwxr-xr-x 3 1000 1000 4096 7月 22 2016 conf zabbix的配置文件 -rwxr-xr-x 1 1000 1000 45297 8月 11 2013 config.guess -rwxr-xr-x 1 1000 1000 35564 8月 11 2013 config.sub -rwxr-xr-x 1 1000 1000 376528 7月 22 2016 configure -rw-r--r-- 1 1000 1000 46788 7月 22 2016 configure.ac -rw-r--r-- 1 1000 1000 17990 7月 22 2016 COPYING drwxr-xr-x 7 1000 1000 4096 7月 22 2016 database 数据库文件 -rwxr-xr-x 1 1000 1000 23566 1月 3 2014 depcomp drwxr-xr-x 3 1000 1000 4096 7月 22 2016 frontends php文件,zabbix的web drwxr-xr-x 2 1000 1000 4096 7月 22 2016 include -rw-r--r-- 1 1000 1000 82 7月 22 2016 INSTALL -rwxr-xr-x 1 1000 1000 13997 1月 3 2014 install-sh drwxr-xr-x 2 1000 1000 4096 7月 22 2016 m4 -rw-r--r-- 1 1000 1000 3155 7月 22 2016 Makefile.am -rw-r--r-- 1 1000 1000 30553 7月 22 2016 Makefile.in drwxr-xr-x 2 1000 1000 4096 7月 22 2016 man drwxr-xr-x 5 1000 1000 4096 7月 22 2016 misc -rwxr-xr-x 1 1000 1000 6872 1月 3 2014 missing -rw-r--r-- 1 1000 1000 52 7月 22 2016 NEWS -rw-r--r-- 1 1000 1000 188 7月 22 2016 README drwxr-xr-x 10 1000 1000 4096 7月 22 2016 src zabbix的核心程序文件 drwxr-xr-x 3 1000 1000 4096 7月 22 2016 upgrades
4、编译安装
./configure --prefix=/usr/local/zabbix \ #指定安装目录
--enable-server \ #安装服务端
--enable-agent \ #安装客户端
--enable-java \ #安装java模块
--enable-ipv6 \
--with-mysql=/usr/local/mysql/bin/mysql_config \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--with-openipmi \
--with-unixodbc \
--with-openssl
make&&make install
查看编译位置
[root@www ~]# cd /usr/local/zabbix/ [root@www zabbix]# ll 总用量 20 drwxr-xr-x 2 root root 4096 8月 24 19:40 bin drwxr-xr-x 4 root root 4096 8月 24 19:40 etc drwxr-xr-x 2 root root 4096 8月 24 19:40 lib drwxr-xr-x 2 root root 4096 8月 24 19:40 sbin drwxr-xr-x 4 root root 4096 8月 24 19:40 share
5、导入zabbix文件到数据库进入mysql配置
mysql -u root –p #进入数据库
create database zabbix character set utf8;
注意,此处要特别注意数据库字符集的问题,如果数据库是非utf8 字符,则web 页面改
为中文,是会出现乱码的
grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix'; 创建管理MySQL用户 flush privileges;
mysql -u zabbix -pzabbix #测试登录数据库
cd /service/zabbix/zabbix-3.2.6/database/mysql mysql -u root -p zabbix < schema.sql mysql -u root -p zabbix < images.sql mysql -u root -p zabbix < data.sql
mysql -u zabbix -pzabbix use zabbix ; show tables ;
登录数据库查看
6、拷贝配置文件及授权用户我的apache数据保存目录在/htdocs/
拷贝配置文件及授权用户我的apache数据保存目录在/htdocs/
mkdir /htdocs/zabbix cp -r /service/zabbix/zabbix-3.2.6/frontends/php/* /htdocs/zabbix/ chown -R apache.apache /htdocs/zabbix/
7、修改php.ini文件
vim /usr/local/php/php.ini
date.timezone = Asia/ Hong_Kong max_execution_time = 300 post_max_size = 32M max_input_time=300 memory_limit = 128M mbstring.func_overload = 2
重启:/etc/init.d/php-fpm restart
8、修改虚拟主机配置
vim /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80> #端口 ServerAdmin www.zabbix.com #管理员登录网址 DocumentRoot "/htdocs/zabbix" #指定网页数据位置 ServerName www.zabbix.com #域名 <Directory "/htdocs/zabbix"> AllowOverride All #访控 Require all granted </Directory> ErrorLog "logs/dummy-host2.example.com-error_log" #错误日志 CustomLog "logs/dummy-host2.example.com-access_log" common #日志 ProxyRequests off #代理请求off指运行代理 ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/htdocs/zabbix/$1 #把凡是以结尾是.php的访问转发到本机的9000端口上 </VirtualHost>
service httpd restart 重启
9、zabbix 配置
路径:/usr/local/zabbix/etc/zabbix_server.conf
修改主要参数即可工作
DBName=zabbix 数据库名称
DBUser=zabbix 数据库用户
DBPassword=zabbix 数据库密码
DBHost=127.0.0.1
修改客户端配置:/usr/local/zabbix/etc/zabbix_agent.conf
Server=192.168.2.100 //配置zabbix服务器的IP地址
Hostname=zabbix_server //配置主机名
PidFile=/var/tmp/zabbix_agentd.pid //指定pid路径
LogFile=/var/log/zabbix/zabbix_agentd.log //指定日志文件
9.1、配置启动脚本
cp /service/zabbix/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_{server,agentd} /etc/init.d/ [root@www zabbix]# ll -h /etc/init.d/zabbix_* -rwxr-xr-x 1 root root 2.2K 8月 24 15:15 /etc/init.d/zabbix_agentd -rwxr-xr-x 1 root root 2.2K 8月 24 15:15 /etc/init.d/zabbix_server
9.2、修改启动脚本(不修改启动会报错)
vim /etc/init.d/zabbix_server BASEDIR=/usr/local/zabbix #这里是安装服务的路径 vim /etc/init.d/zabbix_agentd BASEDIR=/usr/local/zabbix
启动
[root@www zabbix]# /etc/init.d/zabbix_server start Starting zabbix_server: [确定] [root@www zabbix]# /etc/init.d/zabbix_agentd start Starting zabbix_agentd: [确定]
访问:因为我在本机改了hosts文件在这里我是直接域名加端口访问的
修改安装时报错问题
1、PHP string function overloading must be disabled. 错误:
修改片php.ini文件 mbstring.func_overload = 1 修改完毕之后重启
2、PHP option "always_populate_raw_post_data" must be set to "-1"
修改 /htdocs/zabbix/include/classes/setup/ CFrontendSetup.php
添加 :$current = -1;
public function checkPhpAlwaysPopulateRawPostData() {
$current = ini_get('always_populate_raw_post_data');
$current = -1;
return [
'name' => _s('PHP option "%1$s"', 'always_populate_raw_post_data'),
'current' => ($current != -1) ? _('on') : _('off'),
'required' => _('off'),
'result' => ($current != -1) ? self::CHECK_FATAL : self::CHECK_OK,
'error' => _s('PHP option "%1$s" must be set to "%2$s"', 'always_populate_raw_post_data', -1)
];
}
填写数据库连接
配置zabbix server端的主机名,端口号
安装
默认的账号和是admin 密码是zabbix
登录成功(设置中文字体)
监控本机
默认我们已经启动了zabbix客户段服务 所以在主机列表中可以查看到
如果没有启动可以执行/etc/init.d/zabbix_ agentd restart 启动zabbix客户端
还需要在网页配置,使zabbix起来
默认我们监控主机是没有启用的à双击停用的他就起来了
显示绿色的ZBX则为成功
监控一台新的主机
拷贝脚本到主机执行
vim zabbix_client_install.sh
#!/bin/bash #关于配置文件修改,如果是外网的客户端,需要把ServerActive和Server的值改为101.96.129.162,(已经做过外网映射) Modify_configuration(){ #IP=`ifconfig |grep -o '192\.168\.1\.[0-9]\{1,3\}' |grep -v 255 |head -1` IP=`ifconfig eth0 |grep inet |sed 's/^.*addr://g' |sed s/Bcast.*//g` sed -i " /# HostMetadataItem/a\ HostMetadataItem=system.uname s/^ServerActive=127.*/ServerActive=10.27.72.243/ s/^Server=.*/Server=10.27.72.243/ s/Hostname=Zabbix server/Hostname=${IP}/ " /etc/zabbix/zabbix_agentd.conf } CentOS_agent_install(){ wget https://mirrors.aliyun.com/zabbix/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.6-1.el6.x86_64.rpm rpm -ivh zabbix-agent-3.2.6-1.el6.x86_64.rpm Modify_configuration rm -rf zabbix-agent-3.2.6-1.el6.x86_64.rpm chkconfig zabbix-agent on service zabbix-agent restart } Ubuntu_agent_install(){ wget https://mirrors.aliyun.com/zabbix/zabbix/3.2/ubuntu/pool/main/z/zabbix/zabbix-agent_3.2.6-1%2bxenial_amd64.deb sudo dpkg -i zabbix-agent_3.2.6-1+xenial_amd64.deb Modify_configuration rm zabbix-agent_3.2.6-1+xenial_amd64.deb service zabbix-agent restart } cat /etc/*release |grep "CentOS" &>/dev/null [ $? == 0 ] && CentOS_agent_install cat /etc/*release |grep "Ubuntu" &>/dev/null [ $? == 0 ] && Ubuntu_agent_install
效果图
在server端监控这台客户机
给监控的客户端添加一个监控模板
保存查看图形
到这里就搭建完成,真心希望本篇博客可以帮助到您。