这段时间在测试zabbix和pandora FMS,2个系统的web控制端都是php语言编写的,而且所有的服务器及监控项目配置,都可以在web端完成,另外就是分类和逻辑性,这个比nagios要强很多。
经过比较测试,最后还是决定使用zabbix,目前已经配置上线,使用效果非常不错。自定义监控以及报警方式,都可以编写脚本来实现,而且非常方 便。
一、环境准备
首先安装mysql+nginx(或者apache)+php,这里就不说了。
编译目录还是遵循我一向的规矩:
/─/usr
│ ├─/usr/server
│ │ ├─/usr/server/ect #放置一般配置文件
│ │ ├─/usr/server/bin #放置bin执行程序
│ │ ├─/usr/server/sbin #放置sbin服务程序
│ │ ├─/usr/server/xxx #程序的–prefix目录
│ │ │
二、安装fping
fping是加强版的ping工具,可以同时ping多个主机。
fping的官网是:http://www.fping.com
web03# wget http://fping.sourceforge.net/download/fping.tar.gz web03# tar zxf fping.tar.gz web03# cd fping-2.4b2_to web03# ./configure web03# make && make install
安装完毕后,一起就2个文件:
/usr/local/sbin/fping #执行文件 /usr/local/man/man8/fping.8 #man文件
设置fping权限:
web03# chown root:zabbix /usr/local/sbin/fping web03# chmod 710 /usr/local/sbin/fping web03# chmod ug+s /usr/local/sbin/fping
然后再安装traceroute:
web03# yum install traceroute
三、安装net-snmp
net-snmp的官网是:http://www.net-snmp.org
web03# wget http://nchc.dl.sourceforge.net/sourceforge/net-snmp/net-snmp-5.4.2.1.tar.gz web03# tar zxf net-snmp-5.4.2.1.tar.gz web03# cd net-snmp-5.4.2.1web03# ./configure --prefix=/usr/server/snmpd --bindir=/usr/server/bin --sbindir=/usr/server/sbin --disable-debugging --enable-developer--with-default-snmp-version="2" --enable-mfd-rewrites --with-mib-modules="mibII ucd_snmp agentx notification target utilities disman/event disman/schedule host ip-mib/ipv4InterfaceTable tunnel" --with-sys-contact="ie81@163.com" --with-sys-location="location" --with-logfile= "/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp" web03# make && make install
———————————————–
注:加了这几个mib-modules就有问题:ucd-snmp/lmSensors snmpv3mibs mibII/interfaces
所以去掉了。
———————————————–
安装完毕后,会在/usr/server/bin/下生成如下相关执行文件:
encode_keychange mib2c-update snmpcheck snmpget snmpset snmptranslate snmpwalk fixproc net-snmp-config snmpconf snmpgetnext snmpstatus snmptrap tkmib ipf-mod.pl snmpbulkget snmpdelta snmpinform snmptable snmpusm traptoemail mib2c snmpbulkwalk snmpdf snmpnetstat snmptest snmpvacm
会在/usr/server/sbin/下生成如下后台服务程序:
snmpd snmptrapd
现在复制配置文件:
web03# cp EXAMPLE.conf /usr/server/snmpd/share/snmp/snmpd.conf
编辑配置文件:
web03# vi /usr/server/snmpd/share/snmp/snmpd.conf 找到如下两行[大约61-62行]: com2sec local localhost COMMUNITY com2sec mynetwork NETWORK/24 COMMUNITY 这两行就是snmpd的字符串认证,一行代表一种权限设置,可以修改成: com2sec local localhost public01 com2sec local 119.146.191.170 web03 com2sec local 192.168.1.0/24 web03
然后把备份脚本snmpd复制到/etc/init.d目录下(见备份文件)。就可以启动snmpd了:
web03# /etc/init.d/snmpd start Starting snmpd: [ OK ]
然后测试:
web03# snmpwalk -v 2c -c public01 127.0.0.1 if #最后一个if代表网络信息。
如果有信息出来,就表示OK了。
四、开始安装zabbix-server:(及在本机安装zabbix agent)
zabbix的官网是:http://www.zabbix.com
目前最高稳定版是1.8.2。
1、添加用户:
web03# groupadd -g 36 zabbix web03# useradd -u 36 -g 36 -s /sbin/nologin -M zabbix web03# id zabbixuid=36(zabbix) gid=36(zabbix) groups=36(zabbix)
2、下载解压:
web03# wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/1.8.2/zabbix-1.8.2.tar.gz web03# tar zxf zabbix-1.8.2.tar.gz web03# cd zabbix-1.8.2
3、设置mysql数据库
1)添加数据库和用户:
web03# mysql -u root -p Enter password: mysql> create database zabbix;mysql> CREATE USER 'coos'@'localhost' IDENTIFIED BY 'coos'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,SHOW VIEW,CREATE VIEW,LOCK TABLES ON `zabbix` . * TO 'coos'@'localhost'; mysql> exit Bye
2)导入数据:
web03# mysql -u coos -pcoos zabbix <create/schema/mysql.sql
web03# mysql -u coos -pcoos zabbix <create/data/data.sql
web03# mysql -u coos -pcoos zabbix <create/data/images_mysql.sql
4、开始安装配置zabbix:
1)编译
web03# ./configure --prefix=/usr/server/zabbix --enable-server --enable-agent --with-mysql --with-libcurl --with-net-snmp web03# make && make install
2)复制配置文件:
web03# mkdir /etc/zabbix web03# cp misc/conf/*.conf /etc/zabbix/
可以简化下默认配置,注释太多了:
①修改服务端配置文件:
web03# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.defalut web03# cat /dev/null >/etc/zabbix/zabbix_server.conf web03# mkdir /etc/zabbix/alert/web03# vi /etc/zabbix/zabbix_server.conf
加入如下内容:
# This is config file for ZABBIX server process
# To get more information about ZABBIX,
# go http://www.zabbix.com
#ListenIP=
#ListenPort=10051
DBHost=localhost
DBName=zabbix
DBUser=coos
DBPassword=coos
DBSocket=/tmp/mysql.sock
StartDBSyncers=12
SenderFrequency=30
DebugLevel=2
Timeout=5
PidFile=/var/tmp/zabbix_server.pid
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=10
HistoryCacheSize=20M
HistoryTextCacheSize=20M
LogSlowQueries=3
AlertScriptsPath=/etc/zabbix/alert
ExternalScripts=/etc/zabbix/externalscripts
FpingLocation=/usr/local/sbin/fping
最后建立日志目录:
web03# mkdir /var/log/zabbix web03# chown -R zabbix: /var/log/zabbix/
建立定义的目录:
web03# mkdir /etc/zabbix/alert web03# mkdir /etc/zabbix/externalscripts
②修改客户端配置文件:
web03# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.default web03# cat /dev/null >/etc/zabbix/zabbix_agentd.conf web03# vi /etc/zabbix/zabbix_agentd.conf
加入如下内容:
# This is config file for zabbix_agentd
# To get more information about ZABBIX, go http://www.zabbix.com
Server=127.0.0.1
#ServerPort=11051
Hostname=web03
#ListenIP=
#ListenPort=10050
BufferSize=1024
TimeOut=5
StartAgents=3
DebugLevel=2
PidFile=/var/tmp/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=10
EnableRemoteCommands=1
#UnsafeUserParameters=1
Include=/etc/zabbix/zabbix_command.conf
建立自定义文件,用来放置自定义监控命令的:
web03# touch /etc/zabbix/zabbix_command.conf
3)然后添加端口文件:
web03# vi /etc/services 在最后加入: zabbix-agent 10050/tcp #Zabbix Agent zabbix-agent 10050/udp #Zabbix Agent zabbix-trapper 10051/tcp #Zabbix Trapper zabbix-trapper 10051/udp #Zabbix Trapper
4)复制启动脚本:
web03# cp misc/init.d/redhat/zabbix_* /etc/init.d/
然后修改启动脚本:
①修改服务端启动脚本:
web03# vi /etc/init.d/zabbix_server_ctl BASEDIR=/opt/zabbix ==>修改为/usr/server/zabbix ZABBIX_SUCKERD=$BASEDIR/bin/zabbix_server ==>修改bin为sbin
②修改客户端启动脚本:
web03# vi /etc/init.d/zabbix_agentd_ctl BASEDIR=/opt/zabbix ==>修改为/usr/server/zabbix ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd ==>修改bin为sbin
现在就可以启动了:
启动之前把net-snmpd和mysql的库路径加入ldconfig,否则会报错:
web03# grep '/usr/server/snmpd/lib' /etc/ld.so.conf || echo "/usr/server/snmpd/lib" >>/etc/ld.so.conf web03# grep `mysql_config --libs | egrep -o /.+lib/mysql` /etc/ld.so.conf || echo `mysql_config --libs | egrep -o /.+lib/mysql ` >>/etc/ld.so.conf web03# ldconfig
启动:
web03# /etc/init.d/zabbix_server_ctl start web03# /etc/init.d/zabbix_agentd_ctl start
然后查看监听端口和进程:
web03# netstat -tunlp | grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 8911/zabbix_agentd tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 8871/zabbix_server
5)配置web界面:
复制网页文件到web路径:
web03# cp -r frontends/php /home/web/test/zabbix web03# cd /home/web/test/zabbix/conf web03# cp zabbix.conf.php.example zabbix.conf.php web03# chown -R www: /home/web/test/zabbixweb03# vi zabbix.conf.php 修改其中db的用户名和密码。
编辑php.ini文件:
max_execution_time = 300 ==> 修改为600 #大约255行。
max_input_time = 120 ==> 修改为600 #大约256行。
memory_limit = 128M ==>修改为256M #大约258行。
post_max_size = 8M ==> 修改为32M #大约439行。
upload_max_filesize = 10M ==>修改为16M #大约555行。
;date.timezone = ==>去掉注释在=后添加 Asia/Shanghai #大约662行。
然后重启php-fpm,apache的话就重启httpd。
然后使用浏览器访问:http://10.1.1.8/zabbix
就会出现安装向导,一步步填写就可以了。
最后默认的管理员用户和密码是:admin/zabbix。进去后就可以修改用户密码。
另外还有个guest用户,默认是无法删除,可以进去把用户名改一下,然后设置个密码或者删除就可以。
五、Centos 5.3下安装zabbix客户端zabbix-agentd:
其实前面服务端已经讲解如何安装客户端了。但是这里为了分开,好在需要监控的的机器单独安装客户端,所以重新做一次:
1、添加用户:
web02# groupadd -g 36 zabbix web02# useradd -u 36 -g 36 -s /sbin/nologin -M zabbix web02# id zabbix uid=36(zabbix) gid=36(zabbix) groups=36(zabbix)
2、下载解压,并编译客户端:
web02# wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/1.8.2/zabbix-1.8.2.tar.gz web02# tar zxf zabbix-1.8.2.tar.gz web02# cd zabbix-1.8.2 web02# ./configure --prefix=/usr/server/zabbix --enable-agent web02# make && make install
3、配置服务:
web02# mkdir /etc/zabbix web02# touch /etc/zabbix/zabbix_agentd.conf web02# vi /etc/zabbix/zabbix_agentd.conf
加入如下内容:
# This is config file for zabbix_agentd
# To get more information about ZABBIX, go http://www.zabbix.com
Server=10.1.1.8
#ServerPort=11051
Hostname=web02
#ListenIP=
#ListenPort=10050
BufferSize=1024
TimeOut=5
StartAgents=3
DebugLevel=2
PidFile=/var/tmp/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=10
EnableRemoteCommands=1
#UnsafeUserParameters=1
Include=/etc/zabbix/zabbix_command.conf
最后建立日志目录:
web02# mkdir /var/log/zabbix web02# chown -R zabbix: /var/log/zabbix/
建立自定义文件,用来放置自定义监控命令的:
web03# touch /etc/zabbix/zabbix_command.conf
4、然后添加端口文件:
web03# vi /etc/services 在最后加入: zabbix-agent 10050/tcp #Zabbix Agent zabbix-agent 10050/udp #Zabbix Agent
5、复制启动脚本:
web02# cp misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/
修改客户端启动脚本:
web02# vi /etc/init.d/zabbix_agentd_ctl BASEDIR=/opt/zabbix ==>修改为/usr/server/zabbix ZABBIX_AGENTD=$BASEDIR/bin/zabbix_agentd ==>修改/bin为/sbin
启动:
web02# /etc/init.d/zabbix_agentd_ctl start
查看监听端口及进程:
web02# netstat -tunlp | grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 15356/zabbix_agentd
现在就可以从zabbix server的web界面来添加web03的主机监控了。
原文连接:http://hi.baidu.com/51coos/blog/item/bcf0e3f63278741fb17ec54a.html
2022-12-06 08:44:20
51CTO技术栈公众号