Zabbix简介:
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能
工作原理:
zabbix由几个主要的软件组件构成:
server: zabbix server是一个核心组件,agent可以向它报告可用性和完整性信息和统计数据。该server所有的配置,数据和业务数据都存在数据库中。
数据库存储:所有的配置信息包括采集的数据都被zabbix存储在数据库中。
Web界面: 通过一个基于web的平台,我们可以从任何一个地方访问zabbix。这个web是zabbix server的一部分,通常跟server运行在同一台物理机上。(SQLite必须得配置在同一台物理机上)
Proxy: proxy可以代替server收集性能和可用性的数据。proxy是一个可选的部分,但它对于减弱zabbix server的负载非常有用。
agent: zabbix agent被部署在监控的目标上,主机监控本地的资源和应用并汇报数据给zabbix server。
Zabbix的几个定义组件:
host: 你要监控的网络设备,使用ip/域名.
host group: 主机的逻辑分组,可能包含主机和模板。主机组内的主机和模板是不以任何方式彼此连接。为不同的用户分配权限时,使用主机组。
item: 你想从监控主机获取到的某些数据
trigger: 定义一个阀值来看看从item中接收的数据是否有问题,使用逻辑表达式。当接收一个超过比阀值的,trigger从ok变成problem。当接收的数据低于阀值,trigger变成ok状态。
event:一些值得关注的例如trigger状态变化或者发现机制,agent自动注册发生了。
action: 基于事件一个预定义的装置.一个action包含条件和操作(发送一个邮件)。
escalation: 在action的操作中自定义,发送通知/远程执行命令
media: 发送通知的一种手段。
notification: 一个事件经由选择的媒体发送给用户.
remote command: 当一些条件触发时,预定义的远程命令执行.
template: 准备被应用到一台或多台主机的实体(items, triggers, graphs, screens,applications, low-level discovery rules, web scenarios),模板加快了监控的部署。大规模的更改应用到监测任务。模板直接关联到主机。
application: item的逻辑分组
web scenario: 一个或多个HTTP请求来检查网站的可用性
frontend: zabbix提供的web界面
zabbix api: Zabbix API允许你使用json rpc协议来创建,更新和获取zabbix对象(likehosts, items, graphs and others) 或执行其它自定义任务.
zabbix server: zabbix软件的中心,用来执行监控,跟proxy和agent交互,计算trigger,发送通知,中央数据存储。
zabbix agent:一个进程部署在监控主机上,主动监控本地资源和应用。
zabbix proxy:代替zabbix server采集数据,代替server承受些压力。
Zabbix安装:
服务器上面:
yum install -y gcc*
yum -y install httpd mysql mysql-server mysql-devel php php-mysql php-common php-mbstring php-gd php-odbc php-pear curl curl-devel net-snmp net-snmp-devel perl-DBI php-xml ntpdate php-bcmath
同步服务器时间:
服务器端:
yum install -y ntp*
service ntpd start
chkconfig ntpd on
客户端同步时间:
yum install -y ntp*
service ntpd start
chkconfig ntpd on
chkconfig ntpdate on
服务器上:
添加Zabbix运行所需要的用户和组
useradd zabbix
启动mysql并进行密码设置及用户授权
#service mysqld start
#mysqladmin –uroot password ‘123456’
#mysql –uroot –p
#create database zabbix;
#grant all on zabbix.* to zabbix@'%' identified by '123456';
编译安装Zabbix:
此次使用的软件包是Zabbix.iso
编译安装Zabbix:
./configure --sysconfdir=/etc/zabbix/ --enable-server --enable-agent --with-net-snmp --with-libcurl --with-mysql
若报错:Not found mysqlclient library
则:cd /usr/lib64/mysql
ln -s libmysqlclient_r.so.16.0.0 libmysqlclient_r.so
ln -s libmysqlclient.so.16.0.0 libmysqlclient.so
make && make install
#此处指定sysconfdir配置文件的路径就在/etc/zabbix/目录下了,如果不指定默认在/usr/local/etc下
复制 zabbixserver端跟agent端的启动脚本,并设置执行权限:
将zabbix的页面文件copy到指定目录(跟apache配置的相同即可):
配置php配置文件:(/etc/php.ini)
date.timezone = Asia/Shanghai
max_execution_time = 300
max_input_time = 300
post_max_size = 32M
memory_limit = 128M
mbstring.func_overload = 2
配置zabbix-server端配置文件(定义数据库的IP、用户名、密码):
选项较多,根据需要进行开启,主要针对zabbix任务处理优化
启动zabbix和apache
service zabbix_server start
service httpd start
浏览器访问Zabbix:
检查web程序的config文件,如果没问题会显示OK,直接点击finish即可完成安装(如果此处有问题一般是zabbix虚拟主机目录文件的权限问题,上面已经有设置的过程一般不会出现问题)
客户端:
安装gcc环境
yum –y install gcc*
同步时间
ntpdate –u 192.168.88.10
创建运行用户
useradd zabbix
解压安装zabbix-agent
#tar xf zabbix-2.2.2.tar.gz
#cd zabbix-2.2.2
#./configure --sysconfdir=/etc/zabbix --enable-agent
#make && make install
复制agent端运行所需要的脚本
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
配置agent端配置文件
vim /etc/zabbix/zabbix_agentd.conf
#此处千万别写成zabbix_agent.conf,否则配置了不生效
Server=192.168.88.10 #填写Server的IP地址
ServerActive=192.168.88.10 #修改为Server的IP地址
Hostname=Centos-2
#填写本机的HostName,注意Server端要能解
UnsafeUserParameters=1
#是否允许自定义的key,1为允许,0为不允许
Include= etc/zabbix/zabbix_agentd.conf.d/
#自定义的agentd配置文件(key)可以在这里面写;
不自定义可以不开启这两个选项!否则会有报错!
启动zabbix agent端
service zabbix_agentd start
web端添加新的主机:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。