----------------闲扯----------------
RHCE过的EMAIL已经下来,所以最近闲了就准备把先前的文档更新下。
我更新的内容主要是把自己当时的理解加到配置里,告诉大家我当时的一些思路想法,而不会像网上的很多文档只会把一大堆命令贴出来,搞得很多本身对该知识点不了解的朋友更加晕头转向。
搞了LINUX大半年,真心是兴趣所致,变成LINUX大牛是我未来事业的目标,对此我乐此不彼,但也深信不疑。。
-----------闲扯结束,开搞------------
我的博客新站已经建好,更多新的内容即将在新站更新。。
欢迎访问 http://www.showerlee.com
最近研究了下群里谈论比较火的一个国外开源网络监控系统ZABBIX,玩过一遍后就深深被他的界面简洁,后台配置逻辑分类清晰,易于配置上手的优点给吸引,立即将单位的系统统一换成这个平台监测,测试了一段时间,效果良好。
之前玩过cacti和nagios,算是一个大家耳熟能详的业内常用的的网管互补组合,但个人感觉前者由于调用snmp协议,导致有时候在网络不太稳定时会有数据丢失情况,后者nagios虽然不依赖于SNMP,但客户端的复杂的安装,初始配置以及需要读懂插件语法导致会让很多初学者望而却步。
zabbix不仅吸取了两者的制图和动态监测的优点,而且很多插件以及常用脚本模板都是系统自带,最重要的配置相对于前两者简洁了很多,所以省去了很多学习成本,加之该监控系统是利用PHP语言写的,系统个人定制就无需使用者修改底层代码,而可以直接在WEB界面去按照自己的偏好设置,支持字体修改以及简体中文,强烈推荐大家在线上使用这套网管平台。
zabbix简介(摘自百度百科)
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能等等
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
配置前先关闭iptables和SELINUX,避免安装过程中报错。
# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
---------------
一.安装LAMP环境
本博传送门:http://showerlee.blog.51cto.com/2047005/1174141
二、zabbix(server,agent)配置:
server: 192.168.7.201
agent: 192.168.7.249
简单提下,其实是服务端安装zabbix_server,zabbix_agentd两个服务,客户端只需安装zabbix_agentd一个服务,监控原理其实就是zabbix_agentd服务将从系统中获取的相关数据传送给zabbix_server服务,然后zabbix_server服务将数据以PHP页面显示出来,很好理解。
(server)表示仅服务端配置
(agent)表示仅客户端配置
(server,agent)表示客户端与服务端都需配置
1.下载zabbix(server,agent)
注:本人下载的是官方2.06的服务端与客户端的稳定整合编译包,所以后面编译的时候注意,以 --enable-server --enable-agent 参数编译的为服务器端,以 --enable-agent参数编译的为客户端。
官方提供的另外一种下载方式是服务端与客户端单独区分的编译包,编译方法与本博的方法不同,这里请注意区分。
# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz/download
2.安装zabbix所需的组件(server,agent)
# yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI
3.创建用户账号(server,agent)
# groupadd zabbix
# useradd -g zabbix zabbix
# usermod -s /sbin/nologin zabbix
4.创建zabbix数据库并导入zabbix数据库数据(server)
# mysql -u root -p123456
> grant all on zabbix.* to zabbix@localhost identified by '123456';
> create database zabbix;
# tar zxvf zabbix-2.0.6.tar.gz
# cd zabbix-2.0.6
# mysql -uzabbix -p123456 zabbix < database/mysql/schema.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/p_w_picpaths.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
5.编译安装(server,agent)
server: (192.168.7.201)
# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
# make install
agent: (192.168.7.249)
# ./configure --enable-agent
# make install
这里笔者由于当时编译时忘记自定义安装目录导致zabbix配置文件使用了默认路径,在/usr/local/etc/下,这里若重新编译则下面更改的地方较多,后面的内容都以此路径为准。
参照本博配置的朋友,建议编译时加 --prefix=/usr/local/zabbix 参数,则zabbix配置文件默认在 /usr/local/zabbix/etc目录下,后面启动服务前需加载zabbix目录下bin与sbin目录的环境变量
默认zabbix安装路径/usr/local/下的bin与sbin目录因为与系统合并,所以无需加载环境变量
6.编辑配置文件(server,agent)
# cd /usr/local/etc/
去掉配置文件注释:
# cat zabbix_server.conf |grep -v "#" |grep -v "^$" > zabbix_server.conf.bak
# cp zabbix_server.conf.bak zabbix_server.conf
# cat zabbix_agentd.conf |grep -v "#" |grep -v "^$" > zabbix_agentd.conf.bak
# cp zabbix_agentd.conf.bak zabbix_agentd.conf
server: (192.168.7.201)
# vi /usr/local/etc/zabbix_server.conf
修改如下内容并删除其他未修改参数条目:
-------------
LogFile=/var/log/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
-------------
# vi /usr/local/etc/zabbix_agentd.conf
修改如下内容并删除其他未修改参数条目:
-------------
LogFile=/var/log/zabbix_agentd.log
Server=127.0.0.1,192.168.7.201
UnsafeUserParameters=1
-------------
agent: (192.168.7.249)
# vi /usr/local/etc/zabbix_agentd.conf
修改如下内容并删除其他未修改参数条目:
-------------
LogFile=/var/log/zabbix_agentd.log
Server=192.168.7.201
UnsafeUserParameters=1
-------------
# touch /var/log/zabbix_server.log
# chmod 777 /var/log/zabbix_server.log
# touch /var/log/zabbix_agentd.log
# chmod 777 /var/log/zabbix_agentd.log
7、启动守护进程(server,agent)
在服务器端运行启动zabbix_server
# zabbix_server
server启动端口为10051
在所有被监控的机器上运行zabbix_agentd 。
# zabbix_agentd
agentd启动端口为10050
注意若服务器打开iptables服务,则需添加该两个端口通行。
# iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
# iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
注:重启服务可直接kill掉zabbix进程再重新按照以上方法启动
# pkill zabbix
# ps -ef |grep zabbix
或配置开机启动脚本:
# cd zabbix-2.0.6
# cp misc/init.d/tru64/zabbix_server /etc/init.d/zabbix_server
# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd
# cd /etc/init.d/
# chmod 755 zabbix_*
# vi zabbix_server
# vi zabbix_agentd
在文件头部的#!/bin/sh行下分别添加如下两行:
--------------
#chkconfig: 35 95 95
#description:zabbix Agent server
--------------
注:如果之前编译时自定义了zabbix的路径,需要找到如下行
DAEMON=/usr/local/sbin/zabbix_server
将后面的参数改成你自定义的路径,本篇文档使用默认路径,这里不需要修改
# chkconfig --add zabbix_server
# chkconfig --add zabbix_agentd
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
重启服务:
# service zabbix_server restart
# service zabbix_agentd restart
8.安装zabbix web界面(server)
复制ZABBIX PHP源代码文件
zabbix的服务端程序是用php写的,因此需要一个支持LAMP架构的服务器平台
现在将ZABBIX安装目录下 frontends/php 下面的php源代码文件拷贝到web服务器html文件目录下面。
这里建议用子目录替换APACHE HTML根目录或使用APACHE虚拟主机
这里测试环境我为了方便就选择了前者。
先建立一个子目录,将zabbix终端php文件拷贝到该子目录里面,执行下面的命令:
# mkdir /usr/local/apache2/htdocs/zabbix
# cd frontends/php
# cp -a . /usr/local/apache2/htdocs/zabbix
安装前端
step 1
在你的浏览器中,输入url:http://192.168.7.201/zabbix,你将看到前端安装向导的第一个画面。
step 2
确保所有依赖的软件都正确安装。
查看到几处不符合要求
需修改该PHP文件配置文件参数:
# vi /usr/local/php5/lib/php.ini
查找如下参数并修改为:
----------------
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
----------------
加载PHP下gettext模块
# cd /root/php-5.4.13/ext/gettext
# /usr/local/php5/bin/phpize
# ./configure --with-php-config=/usr/local/php5/bin/php-config
# make && make install
加载该模块
# vi /usr/local/php5/lib/php.ini
添加如下行:
extension = "/usr/local/php5/lib/php/extensions/no-debug-zts-20100525/gettext.so"
重启apache服务
# service httpd restart
刷新页面:
step 3
输入之前在MYSQL后台设置的zabbix数据库信息:
DBName=zabbix
DBUser=zabbix
DBPassword=123456
测试连接时若报错,添加如下命令:
# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
step 4
输入zabbix服务器端的详细信息
step 5
检查一下设置情况。
step 6
下载配置文件,并把他放置在/usr/local/apache2/htdocs/zabbix/conf/ 目录下
step 8
zabbix前端已经安装就绪,默认的用户名是Admin,密码是zabbix。
注:如下报错是因为zabbix数据未导入MYSQL数据库:
zabbix主界面如图,server端配置完毕:
手动添加主机
大功告成。。。
注:
1.显示简体中文界面
点击:右上角Profile
按照如图选择Chinese(zh_CN),保存:
2.解决zabbix绘图中出现中文乱码问题:
a.从windows下控制面板->字体->选择一种中文字库,例如“微软雅黑”
b.把它拷贝到zabbix的web端的fonts目录下例如:/usr/local/apache2/htdocs/zabbix/fonts,并且把TTF后缀改为ttf
c.修改zabbix的web端 include/defines.inc.php
# cd /usr/local/apache2/htdocs/zabbix
# vi include/defines.inc.php
搜索 'DejaVuSans'
用"//"注释掉系统默认行,并添加新的字体参数行。
其中msyh为字库名字,不包含ttf后缀
----------------------
//define('ZBX_FONT_NAME', 'DejaVuSans');
define('ZBX_FONT_NAME', 'msyh');
//define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans');
define('ZBX_GRAPH_FONT_NAME', 'msyh');
3.监控windows主机:
下载地址:http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.win.zip
在C:\Program Files\下创建zabbix文件夹
解压zip包后:将包内bin/win64/下的所有文件复制到 C:\Program Files\zabbix下
并在该目录下创建一个zabbix_agentd.conf文件,内容为
-------------------
LogFile=C:\Program Files\zabbix\zabbix_agentd.log
Server=192.168.7.11
UnsafeUserParameters=1
-------------------
进入cmd命令行:
# cd C:\Program Files\zabbix
安装zabbix客户端:
# zabbix_agentd.exe -c "c:\Program Files\zabbix\zabbix_agentd.conf" -i
启动zabbix服务:
# zabbix_agentd.exe -c "c:\Program Files\zabbix\zabbix_agentd.conf" -s
参数含义:
-c 制定配置文件所在位置
-i 安装客户端
-s 启动客户端
-x 停止客户端
-d 卸载客户端
如图:
在服务端添加客户端主机监控同上。。
-------大功告成--------