主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态; 6 当服务或主机问题产生与解决时将告警发送给联系人(E-mail/IM/SMS etc.); 7 具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位; 8 可选的 WEB 界面用于查看当前的网络状态、通知和故障历史、日志文件等; 下面 2 幅图片简述了 Nagios 的工作原理: 图一 图二四、LAMP 平台安装及配置 Linux Server 采用 CentOS 5.5,方便系统更新。
1. Apache/MySQL/PHP 安装: yum install httpd php php-mysql mysql mysql-server php-snmp php-pdo perl-DBD- MySQL -y 安装完成后让服务都启动并调整之间的连接关系. service mysqld start 启动 mysql 服务 chkconfig mysqld on 使其开机自动启动 之后编辑 httpd 服务的配置文件,使其支持 mod_status.so 模块.只要 在/etc/httpd/conf/httpd.conf 的配置文件中找到 LoadModule status_module modules/mod_status.so 有此项表示已经支持状态检测模块,所以无需额外添加,直接 启动 web 服务即可. service httpd start 启动 http 服务 chkconfig httpd on 开机自动启动 httpd 服务 启动 OK 后,编辑 vim /var/www/html/index.php 在其中添加以下内容: ltphp phpinfo gt 保存退出 用 web 浏览器访问,如果出现以下画面,则表示 http 支持动态 php.并能与 php 成功连接. 接着测试与 mysql 的连接,先给 mysql 设置个管理员密码 mysqladmin -uroot password 123456 密码设置为 123456 编辑刚才的 web 页面 vim /var/www/html/index.php 把里面的内容改为 ltphp linkmysql_connectquotlocalhostquotquotrootquotquot123456quot iflink echo quotFAILDquot else echo quotOKquot gt 刷新刚才的 web 浏览器页面,如果出现 OK!字样,则表示成功连接. 2. Gd 安装: 进入 centos 的 DVD 盘然后安装 rpm -vih php-gd-5.1.6-15.el5.i386.rpm 3. Freetype 安装: 进入 centos 的 DVD 盘然后安装 rpm -ivh freetype-2.2.1-19.el5.i386.rpm五、Net-SNMP 安装及配置 1. 下载 net-snmp
源码,并解压 rootlocalhost procwget http://downloads.sourceforge.net/project/net-snmp/net- snmp/5.6/net-snmp-5.6.tar.gz rootlocalhost proctar -xvzf net-snmp-5.6.tar.gz 2. Configure a 进入源文件目录 rootlocalhost proccd net-snmp-5.6 b Configure rootlocalhost proc./configure --prefix/usr/local/net-snmp –enable-mfd-rewrites --with-default-snmp-version”2” --with-persistent-directory”/var/net-snmp” 3. 编译、安装 rootlocalhost procmake ampamp make install 4. 配置 snmpd.conf a 将 EXAMPLE.conf 文件复制到/usr/local/net-snmp/share/snmp/snmpd.conf rootlocalhost proccp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf b 修改 snmpd.conf 1.查找以下字段: sec.name source community com2sec notConfigUser default public 将quotcomunityquot字段改为你要设置的密码.比如quotbizcnpublicquot. 将“default”改为你想哪台机器可以看到你的 snmp 信息如 10.10.10.10。
授权服务器 IP 2.查找以下字段: Finally grant the group read-only
access to the systemview view. group context sec.model sec.level prefix read write notif
access notConfigGroup quotquot any noauth exact systemview none none 将quotreadquot字段改为 all. 代码:
access notConfigGroup quotquot any noauth exact all none none 3.查找以下字段: incl/excl subtree mask view all included .1 80 将该行前面的quotquot去掉. 4.查找以下字段: name incl/excl subtree maskoptional 添加一行 view all included .1 变成 name incl/excl subtree maskoptional view all included .1 5.查找以下字段: view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc 将该行前面的quotquot去掉. 保存、关闭 c 设置 net-snmp 自启动 rootlocalhost procchkconfig --level 35 snmpd on rootlocalhost procchkconfig --add snmpd d SNMP 测试(本机) rootlocalhost procsnmpwalk -v -2c -c public localhost 若有大量数据返回,说明 SNMP 配置正确 e 防火墙 打开 udp 161 端口 f 检查 SNMP 服务是否运行 rootlocalhost procnetstat -ln grep 161 udp 0 0 127.0.0.1:161 0.0.0.0: 表示 SNMP 已运行正常六、Cacti 安装及配置 a RRDtool 的安装 1.cgilib wget http://www.scriptroute.org/source/cgilib-0.5.tar.gz tar -zxvf cgilib-0.5.tar.gz cd cgilib-0.5 make cp libcgi.a /usr/local/lib cp cgi.h /usr/include 2.fontconfig wget http://www.fontconfig.org/release/fontconfig-2.8.0.tar.gz cd fontconfig-2.8.0 ./configure make ampamp make install 3.pixman wget http://cairographics.org/releases/pixman-0.21.2.tar.gz cd pixman-0.21.2 ./configure makemake install 4.cairo wget http://cairographics.org/releases/cairo-1.10.0.tar.gz tar -zxvf cairo-1.10.0.tar.gz cd cairo-1.10.0 export PKG_CONFIG_PATH/usr/local/lib/pkgconfig:PKG_CONFIG_PATH 这里 很重要 ./configure makemake install 5.pango wget http://ftp.se.debian.org/pub/gnome/sources/pango/1.17/pango- 1.17.5.tar.gz tar -zxvf pango-1.17.5.tar.gz cd pango-1.17.5 ./configure make ampamp make install 6.rrdtool wget http://www.mrtg.org/rrdtool/pub/rrdtool-1.4.4.tar.gz tar -xvzf rrdtool-1.4.4.tar.gz cd rrdtool-1.4.4 ./configure –prefix/usr/local/rrdtool makemake isntallb Cacti 的安装 1.下载 Cacti 软件包,并安装到/var/www/html/cacti wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz tar -xvzf cacti-0.8.7g.tar.gz mv cacti-0.8.7g /var/www/html/cacti 2.配置数据库 mysql -u root -p 123456 mysqlgt create database cacti mysqlgt grant all privileges on cacti. to cactilocalhost identified by cacti with grant option mysqlgt grant all privileges on cacti. to cacti127.0.0.1 identified by cacti with grant option mysqlgtflush privileges mysqlgt use cacti mysqlgt source /var/www/html/cacti/cacti.sql 3.配置 Cacti 以连接数据库 vi /var/www/html/cacti/include/config.php 依照如下修改: / make sure these values refect your actual database/host/user/password / database_type quotmysqlquotdatabase_default quotcactiquotdatabase_hostname quotlocalhostquotdatabase_username quotcactiquotdatabase_password quotcactiquotdatabase_port quot3306quotvi /var/www/html/cacti/include/global.php 依照如下修改:/ Default database settings/database_type quotmysqlquotdatabase_default quotcactiquotdatabase_hostname quotlocalhostquotdatabase_username quotcactiquotdatabase_password quotcactiquotdatabase_port quot3306quotconfigurl_path /cacti/4.添加 cacti 用户rootlocalhost procuseradd -s nologin cactirootlocalhost procpasswd cacti5.修改 cacti 目录属主rootlocalhost procchown -R cacti:cacti /var/www/html/cacti/6.编辑 crontabrootlocalhost proccrontab -e/5 /usr/bin/php /var/www/html/cacti/poller.php gt /dev/null 2gtamp17.关闭 SELinuxrootlocalhost procsetenforce 08.用浏览器访问 http://localhost/cacti/若看到以下画面,则可以进行之后的配置(默认用户名、密码:admin) 9.配置 Cacti 如下部分,均在浏览器中设置 首先点开 settings 的 path 页,正确设置相应的路径,然后 finish 保存 10.安装补丁 按照 Cacti.net 上的步骤,打上补丁程序 必须在 Cacti 的安装目录下,即/var/www/html/cacti/ wget http://www.cacti.net/downloads/patches/0.8.7g/data_source_deactivate.patch wget http://www.cacti.net/downloads/patches/0.8.7g/graph_list_view.patch wget http://www.cacti.net/downloads/patches/0.8.7g/html_output.patch wget http://www.cacti.net/downloads/patches/0.8.7g/ldap_group_authenication.patch wget http://www.cacti.net/downloads/patches/0.8.7g/script_server_command_line_parse.pa tch wget http://www.cacti.net/downloads/patches/0.8.7g/ping.patch wget http://www.cacti.net/downloads/patches/0.8.7g/poller_interval.patch patch -p1 -N lt data_source_deactivate.patch patch -p1 -N lt graph_list_view.patch patch -p1 -N lt html_output.patch patch -p1 -N lt ldap_group_authenication.patch patch -p1 -N lt script_server_command_line_parse.patch patch -p1 -N lt ping.patch patch -p1 -N lt poller_interval.patch七、Cacti 插件安装及配置 必须现安装好插件扩展 PIA 2.8,才能安装、使用其他插件 wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz tar -xvzf cacti-plugin-0.8.7g-PA-v2.8.tar.gz mv cacti-plugin-arch /var/www/html/cacti/cd /var/www/html/cacti/mysql -u root -p 123456 cacti lt cacti-plugin-arch/pa.sqlpatch -p1 -N lt cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diffrm -rf cacti-plugin-archchown -R cacti:cacti /var/www/html/cacti 1. 修改 global.php设定数据库的相关参数,以及 config 路径. vi /var/www/html/cacti/include/global.php修改并增加如下内容: / Default database settings/ database_type quotmysqlquot database_default quotcactiquot database_hostname quotlocalhostquot database_username quotcactiquot database_password quotcactiquot database_port quot3306quot configurl_path /cacti/ plugins array 2. 修改 Cacti 用户权限,增加插件使用权限 显示 Plugin-Management User Management -gt quotadminquot or quotother userquot -gt quotRealm Permissionsquot -gt quotPlugin Managementquot -gt 打勾并保存,如下图: 3. 安装插件 a下载插件 wget http://cactiusers.org/downloads/settings.tar.gz wget http://cactiusers.org/downloads/monitor.tar.gz wget http://cactiusers.org/downloads/realtime.tar.gz wget http://cactiusers.org/downloads/syslog.tar.gz wget http://cactiusers.org/downloads/thold.tar.gz wget http://cactiusers.org/downloads/tools.tar.gz wget http://cactiusers.org/downloads/update.tar.gz wget http://downloads.sourceforge.net/project/cacti-reportit/cacti-reportit/reportit_v061/reportit_v061.tar.gz wget http://www.constructaegis.com/downloads/npc-2.0.4.tar.gz b解压插件 tar -xvzf settings.tar.gz tar -xvzf monitor.tar.gz tar -xvzf realtime.tar.gz tar -xvzf syslog.tar.gz tar -xvzf thold.tar.gz tar -xvzf tools.tar.gz tar -xvzf update.tar.gz tar -xvzf reportit_v06.tar.gz tar -xvzf npc-2.0.4.tar.gz c修改 global.php,增加插件说明 vi /var/www/html/cacti/include/global.php plugins settings plugins thold plugins npc plugins syslog plugins aggregate plugins reportit plugins update plugins tools d下载安装 json(NPC 插件需要 json 支持) wget http://pecl.php.net/get/json-1.2.1.tgz tar -xvzf json-1.2.1.tgz /usr/bin/phpize 如果 phpize 没有此指令,请 yum 安装 php-devel 包 ./configure make ampamp make install 之后用 web 测试 ,index.php(前文有测试方法)如果有下图所示的这一项,则表示正常json 正常安装 e 修改权限 将所有插件 mv 到/var/www/html/cacti/plugins 目录下,然后 User Management -gt quotadminquotor quotother userquot -gt quotRealm Permissionsquot -gt quotPlugin Managementquot -gt 打勾并保存,如下图: f 启用插件 点击 configuration 下的 plugins management将各个插件 install/enable 即可,如下图: 其他插件,都按照上图所示,点击 install 然后 enable 即可。
所有插件都启用完毕后,刷新页面,Cacti 界面如下图所示:4. 插件安装排错 a)realtime 插件安装问题 realtim 插件安装好后,点击 web 界面的〔graphs〕页,选一个图,可发现在其右下角已经出 现了一个 realtime 的 logo,但当点此 logo 进行 realtime 查看时,会发现弹出的窗口中显示: “The image cache directory doesnt exist.Please create it and set permissions and then attempt to open an other realtime graph.” 提示没有 Cache 目录以及权限等。
解决方案: rootlocalhost procmakedir /var/www/html/cacti/cache rootlocalhost procchmod 777 -R /var/www/html/cacti/cache 之后,还要进入 console--gtconfiguration--gtsettings--gtmisc设置”Cache Directory”为 /var/www/html/cacti/cache/ b Syslog 插件安装问题 在 cacti 中访问 syslog 栏目是会出现以下提示: 1 Warning: include./include/html/inc_timespan_settings.php function.include: failed to open stream: No such file or directory in /var/www/html/plugins/syslog/syslog.php on line 126 2 Warning: include function.include: Failed opening ./incl.