在选择搭建监控Linux系统的开源软件时,你一定听说过zabbix这个神器,zabbix是一个基于WEB界面的提供分布式系统监控以及网络监控功能的企业级的开源解决方案。由于zabbix是基于web界面将存储在数据库中的数据生成图表显示出来,所以zabbix需要运行在web和数据库的平台上。
zabbix由2部分构成,zabbix server与可选的组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,port等方法提供对远程服务器/网络状态的监控以及数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。zabbix agent需要安装在被监控的目标服务器上,它主要完成对硬件信息或与操作系统有关的信息的收集。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主动接收监视数据,同时还可被动接收zabbix agent发送的数据。另外zabbix server还支持SNMP(v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
下面用源码包搭建一个简单的zabbix server、zabbix agent模式的监控体系,后端数据库采用mysql,前端web采用apache。
1 下载zabbix server端软件(10.1.6.16)
wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.4/zabbix-2.0.4.tar.gz2 添加zabbix用户及用户组,使zabbix服务以zabbix用户运行
groupadd zabbix useradd -g zabbix zabbix3 因为zabbix采集的数据存储在数据库中,所以我们需要先建立数据库用户
#数据库密码为了方便演示,设置了123456 root@debian6-1:~#mysql -uroot -p123456 #创建zabbix库及用户授权 mysql>create database zabbix; mysql>grant all on zabbix.* to zabbix@localhost identified by '123456'; mysql>flush privileges;4 初始化zabbix库
tar zxvf zabbix-2.0.4.tar.gz cd zabbix-2.0.4 #在源码包里面有zabbix数据库初始化文件 mysql -uroot zabbix -p123456 < database/mysql/schema.sql mysql -uroot zabbix -p123456 < database/mysql/data.sql mysql -uroot zabbix -p123456 < database/mysql/images.sql5 安装zabbix服务端
#zabbix在编译安装时可以选定是作为服务端还是作为客户端使用 ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-libcurl --with-net-snmp make make install #把生成的配置文件拷贝到/etc/zabbix下 cp -a conf/* /etc/zabbix/ #把前端界面拷贝到web目录 cp -a frontends/php/* /var/www/ chown www-data.www-data /var/www/ -R #把服务启动脚本拷贝到/etc/init.d下 cp misc/init.d/debian/* /etc/init.d/6 把生成的bin文件拷贝到/bin、/sbin下面
cd /bin ln -s /usr/local/zabbix/bin/zabbix_get zabbix_get ln -s /usr/local/zabbix/bin/zabbix_sender zabbix_sender cd /sbin ln -s /usr/local/zabbix/sbin/zabbix_agent zabbix_agent ln -s /usr/local/zabbix/sbin/zabbix_agentd zabbix_agentd ln -s /usr/local/zabbix/sbin/zabbix_server zabbix_server7 修改/etc/init.d/zabbix-*中bin程序的路径
#DAEMON=/usr/local/sbin/${NAME} DAEMON=/sbin/${NAME}8 修改zabbix配置文件
#以下是源码包中conf/*中配置文件结构 conf ├── zabbix_agent.conf 客户端配置文件 ├── zabbix_agentd ├── zabbix_agentd.conf 客户端作为守护进程运行时的配置文件 ├── zabbix_agentd.win.conf win下的配置文件 ├── zabbix_proxy.conf 代理配置文件,在本文中没有用到代理模式 └── zabbix_server.conf 服务端配置文件
zabbix_server.conf配置
#配置参数很多,仅列出简单配置 ListenPort=10051 SourceIP=10.1.6.16 LogFile=/tmp/zabbix_server.log DBHost=10.1.6.16 DBName=zabbix DBUser=root DBPassword=123456 DBPort=3306zabbix_agentd.conf配置
#配置参数很多,仅列出简单配置 LogFile=/tmp/zabbix_agentd.log EnableRemoteCommands=1 LogRemoteCommands=1 Server=10.1.6.16 ListenPort=10050 ListenIP=0.0.0.0 StartAgents=3 ServerActive=10.1.6.16 Hostname=debian6-1 RefreshActiveChecks=60 BufferSend=60 AllowRoot=0 Timeout=39 启动zabbix服务
/etc/init.d/zabbix-server start /etc/init.d/zabbix-agent start10 查看服务是否正常启动
root@debian6-1:/etc/zabbix# netstat -tupln |grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 4800/zabbix_agentd tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 4564/zabbix_server11 在浏览器中查看zabbix的web界面,默认用户名/密码:admin/zabbix
开始配置初始环境
12 zabbix 2.0.4的web端已经友好的支持中文
apt-get install debconf #选择zh_CN.UTF-8 dpkg-reconfigure locales
登录zabbix的web界面后,在右上角的profile中user表单中的language选项中选择chinese(zh_CN),然后保存即可。
13 在debian6-2增加一个zabbix agent(10.1.6.13)
wget http://www.zabbix.com/downloads/2.0.4/zabbix_agents_2.0.4.linux2_6.amd64.tar.gz这是官方提供的编译好的客户端,既然zabbix可以在编译时决定是作为服务端还是客户端,所以我们手动编译一个客户端。
groupadd zabbix useradd -g zabbix zabbix tar zxvf zabbix-2.0.4.tar.gz cd zabbix-2.0.4/ ./configure --prefix=/usr/local/zabbix --enable-agent make make install cp misc/init.d/debian/* /etc/init.d/ cd /sbin ln -s /usr/local/zabbix/sbin/zabbix_agent zabbix_agent ln -s /usr/local/zabbix/sbin/zabbix_agentd zabbix_agentd cd /etc ln -s /usr/local/zabbix/etc zabbix修改/etc/init.d/zabbix-agent
#DAEMON=/usr/local/sbin/${NAME} DAEMON=/sbin/${NAME}
zabbix_agentd.conf配置文件
LogFile=/tmp/zabbix_agentd.log EnableRemoteCommands=1 LogRemoteCommands=1 Server=10.1.6.16 ListenPort=10050 ListenIP=0.0.0.0 StartAgents=3 ServerActive=10.1.6.16 Hostname=debian6-2 RefreshActiveChecks=60 BufferSend=60 AllowRoot=0 Timeout=3启动zabbix客户端
/etc/init.d/zabbix-agent start
14 在浏览器中打开zabbix web界面进行设置,把新加的客户端添加到web中
连接:https://www.zabbix.com/documentation/2.0