zabbix是基于web界面的开源分布式监控平台,能够监控各类服务器的配置参数,支持自定义配置和自定义告警,而且能够实现邮件、短信等方式的告警,zabbix基本组件以下:php
zabbix_server:zabbix服务端守护进程,全部的监控数据都会统一汇总给serverhtml
zabbix_agentd:客户端守护进程,负责执行server命令,收集客户端各类参数,如cpu负载,内存,硬盘io等前端
zabbix_get:zabbix的一个工具,一般用于从server或者proxy获取远程客户端的信息,以及故障排查等mysql
zabbix_sender:zabbix的一个工具,用于发送数据给server或者proxy,一般用于耗时比较长的检查nginx
zabbix_proxy:zabbix代理守护进程,功能相似server,做为中转站将收集到的数据转发给server,主要就是用于分布式集群中分担server的负担,构成相似分布式的server架构,可是最终数据仍是要提交给server来汇总web
下面使用bigdata1和bigdata2来安装zabbix,其中bigdata1运行server,agent,web界面 bigdata2只运行agent,下面分别进行:sql
1. bigdata1 server,agent,web界面的部署数据库
首先去zabbix官网下载最新的安装包,下载地址为:http://www.zabbix.com/download 这里是下载通用的源码包,要拉到页面最下方下载对应的源码包,目前最新版本是3.2,下载包名为:zabbix-3.2.3.tar.gzubuntu
下载后上传至服务器,vim
因为web部分是使用php,因此必需要配置php的环境,能够是lamp或者lnmp 这里使用的是lnmp php版本为最新的7.1.0
另外php务必要开启以下模块:
bcmath 使用编译参数:--enable-bcmath
mbstring --enable-mbstring
sockets --enable-sockets
gd --with-gd
libxml --with-libxml-dir
xmlwriter php7默认开启,直接编译便可
xmlreader php7默认开启
ctype php7默认开启
session 默认开启
gettext --with-gettext
具体php安装和nginx配置能够参考我以前的文章:http://www.cnblogs.com/freeweb/p/5425554.html
而且特别注意要专门修改php.ini的参数配置,才能运行web端,具体配置以下:
max_execution_time = 30 修改成 300
memory_limit 默认若是为 128M 不用修改
post_max_size 默认是8M 修改成16M
upload_max_filesize 这项默认是2M 不用修改
max_input_time 默认为60 修改成 300
date.timezone 默认是注释的,要修改成PRC或者Asia/Shanghai
修改完这些配置要重启php-fpm进程
而后安装zabbix server和agent
安装的时候须要依赖:net-snmp-devel libxml2-devel libcurl-devel不然编译阶段会失败,其中后两个在php安装过程当中应该都是安装好的,这里只安装第一个: yum -y install net-snmp-devel
而后安装zabbix:
tar -xvzf zabbix-3.2.3.tar.gz cd zabbix-3.2.3/ ./configure --prefix=/opt/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 make -j4 make install
执行完上述命令,zabbix就安装成功了,位置在/opt/zabbix,而且--enable-server和--enable-agent是同时开启server和agent,而且后面的参数对于server来讲都要加上
zabbix启动默认使用zabbix用户,因此须要建立用户和组:
groupadd zabbix
useradd -g zabbix zabbix
而后初始化mysql数据库,这里mysql用户名和密码都为root,首先登陆数据库: mysql -uroot -proot
而后建立zabbix数据库用于zabbix server使用: > create database zabbix default charset utf8; 这里编码要注意,必定是utf8的,不然会出现乱码
而后导入须要的数据文件:
mysql -uroot -proot zabbix < database/mysql/schema.sql mysql -uroot -proot zabbix < database/mysql/images.sql mysql -uroot -proot zabbix < database/mysql/data.sql
注意:只有server须要这三个sql文件,proxy只须要schema.sql这一个sql,agent都不须要
而后执行 cd /opt/zabbix/ 进入zabbix目录,执行: vim etc/zabbix_server.conf 编辑server配置文件,修改项以下:
DBName=zabbix
DBUser=root
DBPassword=root
DBPort=3306
另外DBHost默认是localhost,实际中php链接本地的mysql时会出现各类问题,若是是mariadb那么默认是能够的,若是是原版mysql那么启动后查看日志会出现/tmp/mysql.sock没法访问的错误,可是/tmp/mysql.sock一切正常,网上各类说法都是错误的,缘由是localhost会走本地的socket,而php链接localhost会出问题,因此强烈建议DBHost配置为127.0.0.1从而避免各类问题
配置以后保存并退出
而后执行 ./sbin/zabbix_server 启动服务端,服务端默认绑定端口号是10051,若是关闭zabbix_server直接平缓杀掉一个主进程便可
而后配置本机的agent: vim etc/zabbix_agentd.conf 修改参数以下:
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
上面的Server和ServerActive都是指定zabbix_server的地址,因为是本机因此能够写成127.0.0.1 其余的主机要具体配置server的实际ip或者主机名,这两个配置项的功能是Server是配置容许server来我这取数据,ServerActive是主动提交数据给server
其中Hostname配置一个主机标识,在集群中通常是主机名便可,这里因为是本地默认使用Zabbix server也是能够的
配置完成保存并退出,而后启动客户端: ./sbin/zabbix_agentd 客户端默认端口号是10050 关闭方法和server一致
而后配置web部分,首先定义web目录是/web 能够将zabbix统一放到/web/zabbix中,假设这些目录都不存在,则首先建立web目录:
mkdir /web 而后进入到以前编译zabbix的目录zabbix-3.2.3下,拷贝前端程序:
cp -rp frontends/php/ /web/zabbix
而后给/web/zabbix目录受权php用户能够访问: chown -Rv www-data:www-data /web/zabbix/
而后在nginx中稍微作一下配置,指向web目录而且开启优雅uri参数,具体配置以下:
root /web; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
其中root指向web根目录在最上面进行了全局设置,配置保存后从新加载nginx配置,而后访问界面:http://ip:port/zabbix进行安装,这里是:http://192.168.0.157:10086/zabbix
安装过程很简单,欢迎界面执行下一步会检测php配置,若是不符合会给出提示,等修改好刷新能够继续安装,另外注意在mysql配置部分主机要配置127.0.0.1其他根据实际参数配置,而后后面的步骤所有默认便可,最后php会在/web/zabbix目录下建立对应的配置文件,因此上面受权是必须的,最后点击Finish完成安装,页面会跳转至登陆界面,默认登陆用户名为:admin 密码为:zabbix
进入界面能够进行基本的语言设置和用户配置,点击配置->主机能够进行主机的管理,点击右上角能够建立一个新的agent主机
默认的Zabbix server会被自动发现,能够查看其中一些默认的参数等,接下来在bigdata2配置另一个agent主机
2. bigdata2 agent2配置
bigdata2只运行一个纯agent,其余的都不须要,一样是先将包zabbix-3.2.2.tar.gz发送至bigdata2服务器,而后执行安装:
tar -xvzf zabbix-3.2.3.tar.gz cd zabbix-3.2.3/ ./configure --prefix=/opt/zabbix --enable-agent make make install
这里编译参数只加--enable-agent便可,安装完成以后一样须要先建立zabbix用户
groupadd zabbix
useradd -g zabbix zabbix
而后执行: vim /opt/zabbix/etc/zabbix_agentd.conf 编辑agent配置文件,配置以下参数:
Server=192.168.0.157
ServerActive=192.168.0.157
Hostname=bigdata2
上面Server和ServerActive都要指定具体的zabbix_server地址,Hostname配置agent主机名便可
而后执行: ./sbin/zabbix_agentd 启动agent,回到界面进入建立主机:
其中主机名称要和Hostname的配置一致,可见的名称本身自定义填写,群组选定一个经常使用的便可,好比Linux servers或者Zabbix servers均可以,为了便于管理,agent代理的ip那里填写具体要添加agent主机的ip,其他默认而后点击上面的模板:
好比这里选择Template OS Linux而后点击添加,必须点击添加添加模板才能够连接过去,最后点击保存便可,而后就能够管理主机的详细状况了
另外能够将启动脚本放到/etc/init.d/中方便后来快速启动,首先进入到编译目录下,而后执行下面命令拷贝启动脚本:
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/ cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
在misc/init.d/下面有对应不一样操做系统的脚本,好比debian,ubuntu等,这里是使用的CentOS,因此使用的是fedora的,由于redhat,fedora,centos都是基于reahat的不一样发行版
而后分别编辑这两个脚本,修改BASEDIR为实际的zabbix安装位置,这里是:BASEDIR=/opt/zabbix,修改完分别保存
首次使用必须先使用kill结束zabbix的server和agent进程,而后就可使用脚本启动或者关闭了,具体命令和其余服务是通用的: /etc/init.d/zabbix_server start|stop|status
设置开机随系统启动:
chkconfig zabbix_server on
chkconfig zabbix_agentd on
启动后也可使用systemctl来进行管理,好比: systemctl status zabbix_server.service
而后其他的agent主机启动脚本配置彻底同样
如今zabbix最基本的平台就安装完毕了