标签归档:CentOS

一篇比较全面的NFS配置日志,转之…《CentOS下NFS服务器配置》

原文地址:

CentOS下NFS服务器配置

Posted by – 2010-04-20


####################################
#NFS_Configuration
#Author:楚霏
#Date: 2010-4-20
#Update:2010-4-26
#Env: Centos 5.4 x86_64
####################################

二、环境介绍
####################################
两台机器全是Centos 5.4 x86_64
服务端IP=10.0.0.52
客户端IP=10.0.0.166
####################################

三、配置服务端
####################################
#因为默认已经安装portmap,nfs-utils-lib和nfs-utils,所以直接配置即可
#创建要共享的目录


1 mkdir /nfsdata

#nfs的主配置文件是/etc/exports


1 vi /etc/exports
2 #----------------------------引用文字-开始----------------------------
3 #加入
4 /nfsdata 10.0.0.0/24(rw,root_squash,no_all_squash,sync)
5 #----------------------------引用文字-结束----------------------------

#保存设置


1 exportfs -r

#配置文件每行分为段:
#第一段为共享的目录,使用绝对路径
#第二段为客户端地址及权限:
地址可以使用完整IP或网段,例如10.0.0.8或10.0.0.0/24,10.0.0.0/255.255.255.0当然也可以
地址可以使用主机名,DNS解析的和本地/etc/hosts解析的都行,支持通配符,例如:*.chengyongxu.com
权限有:
rw:read-write,可读写;
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
####################################

四、启动、测试
####################################
#先启动所依赖的postmap


1 service portmap start
2 service nfs start

#本地测试


1 showmount -e 10.0.0.52
2 #----------------------------输出文字-开始----------------------------
3 Export list for 10.0.0.52:
4 /nfsdata 10.0.0.0/24
5 #----------------------------输出文字-结束----------------------------

#创建挂载点

1 mkdir /mnt/nfsdata

#挂载


1 mount -t nfs 10.0.0.52:/nfsdata /root/nfsdata

#检查


01 mount
02 #----------------------------输出文字-开始----------------------------
03 /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
04 proc on /proc type proc (rw)
05 sysfs on /sys type sysfs (rw)
06 devpts on /dev/pts type devpts (rw,gid=5,mode=620)
07 /dev/hda1 on /boot type ext3 (rw)
08 tmpfs on /dev/shm type tmpfs (rw)
09 none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
10 sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
11 nfsd on /proc/fs/nfsd type nfsd (rw)
12 10.0.0.52:/nfsdata on /root/nfsdata type nfs (rw,addr=10.0.0.52)
13 #----------------------------输出文字-结束----------------------------

#写文件进行测试


1 echo "This is a test" >> /nfsdata/test

#检查一下


1 cat /root/nfsdata/test

#客户端测试
#步骤相似


1 service portmap start
2 service nfs start
3 showmount -e 10.0.0.52
4 mount -t nfs 10.0.0.52:/nfsdata /root/nfsdata

#检查


01 mount
02 #----------------------------输出文字-开始----------------------------
03 /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
04 proc on /proc type proc (rw)
05 sysfs on /sys type sysfs (rw)
06 devpts on /dev/pts type devpts (rw,gid=5,mode=620)
07 /dev/hda1 on /boot type ext3 (rw)
08 tmpfs on /dev/shm type tmpfs (rw)
09 none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
10 sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
11 nfsd on /proc/fs/nfsd type nfsd (rw)
12 10.0.0.52:/nfsdata on /root/nfsdata type nfs (rw,addr=10.0.0.52)
13 #----------------------------输出文字-结束----------------------------

#读写一下检查检查


1 cat /root/nfsdata/test
2 vi /root/nfsdata/test

#注意:
#如果需要开机挂载的话别忘了在/etc/fstab中加入


1 #----------------------------引用文字-开始----------------------------
2 /root/nfsdata   10.0.0.52:/nfsdata
3 #----------------------------引用文字-结束----------------------------

####################################

五、常见错误
####################################
错误一:Cannot register service: RPC


01 service nfs restart
02 #----------------------------输出文字-开始----------------------------
03 Shutting down NFS mountd:                                  [  OK  ]
04 Shutting down NFS daemon:                                  [  OK  ]
05 Shutting down NFS quotas:                                  [  OK  ]
06 Shutting down NFS services:                                [  OK  ]
07 Starting NFS services:                                     [  OK  ]
08 Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused
09 rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
10                                                            [FAILED]
11 #----------------------------输出文字-结束----------------------------
12  
13 #解决方法:
14 service portmap start
15 #先启动portmap才行

01 错误二:Address already in use
02 tail -f /var/log/message
03 #----------------------------输出文字-开始----------------------------
04 Apr 10 13:43:27 bogon nfsd[15918]: nfssvc: Setting version failed: errno 16 (Device or resource busy)
05 Apr 10 13:43:27 bogon nfsd[15918]: nfssvc: unable to bind UPD socket: errno 98 (Address already in use)
06 Apr 10 13:45:27 bogon nfsd[15978]: nfssvc: Setting version failed: errno 16 (Device or resource busy)
07 Apr 10 13:45:27 bogon nfsd[15978]: nfssvc: unable to bind UPD socket: errno 98 (Address already in use)
08 Apr 10 13:49:05 bogon nfsd[16080]: nfssvc: Setting version failed: errno 16 (Device or resource busy)
09 #----------------------------输出文字-结束----------------------------
10  
11 #解决方法:
12 ps aux | grep nfs
13 #然后用kill干掉这些进程

错误三:mount: 10.0.0.52:/nfsdata failed, reason given by server: Permission denied


1 #解决方法:
2 a.把该客户端的ip加入服务端的/etc/exports
3 b.服务端的和客户端规则要统一,要么都使用主机名(注意每台机器的hosts文件),要么都使用IP

错误四:客户端挂载超时


01 tail -f /var/log/message
02 #----------------------------输出文字-开始----------------------------
03 Apr 10 14:42:35 localhost kernel: portmap: server localhost not responding, timed out
04 Apr 10 14:42:35 localhost kernel: RPC: failed to contact portmap (errno -5).
05 Apr 10 14:42:46 localhost kernel: RPC: failed to contact portmap (errno -512).
06 Apr 10 14:42:46 localhost kernel: lockd_up: makesock failed, error=-512
07 Apr 10 14:42:46 localhost kernel: RPC: failed to contact portmap (errno -512).
08 #----------------------------输出文字-结束----------------------------
09  
10 #解决方法:
11 service portmap restart
12 service nfs restart

错误五:Error: RPC MTAB does not exist.


01 service nfs start
02 #----------------------------引用文字-开始----------------------------
03 Starting NFS services:                                     [  OK  ]
04 Starting NFS quotas:                                       [  OK  ]
05 Starting NFS daemon:                                       [  OK  ]
06 Starting NFS mountd:                                       [  OK  ]
07 Starting RPC idmapd: Error: RPC MTAB does not exist.
08 #----------------------------引用文字-结束----------------------------
09  
10 #解决方法:
11 #手动执行
12 mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs/
13 #需要时加入开机启动时,加入下面两行到/etc/fstab
14 #----------------------------引用文字-开始----------------------------
15 rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0
16 nfsd /proc/fs/nfsd nfsd defaults 0 0
17 #----------------------------引用文字-结束----------------------------

####################################

Cacti + Nagios部署(源码方式)[转]

        最近一直在弄Nagios和Cacti,找Nagios和Cacti整合的方案的时候,发现了这篇博文,粗看一下,很不错,至少思路上很清晰,里面也提到了之前遇到的几个问题,而且也是用源码方式安装的,和我的方案一样,于是,转过来先,转完再细看.原文如下:

一、系统环境部署及调整

1、系统:CentOS 5.4
2、关闭iptables与SElinux
3、检查系统是否正常
(1)more /var/log/messages (检查有无系统级错误信息)
(2)dmesg (检查硬件设备是否有错误信息)
(3)ifconfig(检查网卡设置是否正确)
(4)ping www.baidu.com (检查网络是否正常)

======================================================================

二、LAMP环境的安装(使用源码方式安装LAMP)

由于Cacti与Nagios都是基于WEB环境的,所以在安装它们之前,必须先搭建好LAMP环境(LNMP也是可以)

LAMP环境搭建:参考http://hi.baidu.com/9812658/blog/item/873c3f14541aaa5df2de3272.html本文只安装如下一些软件
(1)设置yum源,同时安装Lamp环境所需要的依赖包
(2)安装apache
(3)安装mysql
(4)安装php
(5)安装phpmyadmin
除此之外的一些php扩展及优化软件(例如:
memcache、memcached、eAccelerator等等)都没有安装

======================================================================

三、安装Cacti

1、下载Cacti并安装

第一步:安装rrdtool(http://oss.oetiker.ch/rrdtool/)
#yum install pango pango-devel #由于我安装时,缺少这两个包
#wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.3.tar.gz
#tar zxvf rrdtool-1.4.3.tar.gz  && cd rrdtool-1.4.3
#./configure –prefix=/usr/local/rrdtool && make && make install
说明:也可以使用yum install rrdtool来进行安装

第二步:安装net-snmp(http://www.net-snmp.org/)
#wget http://netcologne.dl.sourceforge.net/project/net-snmp/net-snmp/5.5/net-snmp-5.5.tar.gz
#tar zxvf  net-snmp-5.5.tar.gz && cd net-snmp-5.5
#./configure –prefix=/usr/local/net-snmp –with-mysql=/lamp/database/mysql/bin/mysql_config  && make && make install
###########提示信息##############
default version of-snmp-version(3):3(在这里版本通常有三种形式:1,2c,3)
Systemcontact information(配置该设备的联系信息): ruanxi@163.com(也可以是邮箱地址)
System location (该系统设备的地理位置):Fujian P.R.C
Location to write logfile (日志文件位置):/var/log/snmpd.log
Location to Write persistent(数据存储目录):/var/net-snmp
说明:也可以使用yum install net-snmp net-snmp-devel  net-snmp-libs net-snmp-utils net-snmp-perl
或者yum net-snmp*来进行安装

第三步:安装cacti与cacti-spine(http://cactiusers.org/)
#wget http://www.cacti.net/downloads/cacti-0.8.7f.tar.gz
#wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
(1)安装cacti
#tar zxvf cacti-0.8.7f.tar.gz
#mv cacti-0.8.7f /lamp/cacti
#useradd -s /sbin/nologin cacti
#passwd cacti
#chown -R cacti:cacti /lamp/cacti
(2)安装cacti-spine
#tar zxvf cacti-spine-0.8.7f.tar.gz && cd cacti-spine-0.8.7f
#./configure –prefix=/usr/local/cacti-spine  –with-mysql=/lamp/database/mysql –with-snmp=/usr/local/net-snmp && make && make install
说明:也可以使用yum install cacti cacti-spine来进行安装,但是使用该方式安装,安装完cacti后,会自动的增加一个名为cacti的用户账号,所以我们就不用再增加一个用户账号

第四步:
配置cacti、cacti-spine

1)创建cacti数据库,并初始化该数据库
#mysql -uroot -pXXXX
mysql> create database cacti
mysql> grant all on cacti.* to ‘cacti’@’localhost’ identified by ‘2010’;
mysql> flush privileges;
#mysql -ucacti -p2010 cacti < /lamp/cacti/cacti.sql

2)编译配置文件/usr/local/cacti-spine/etc/spine.conf(注意:如果是RPM方式安装,那么配置文件位于/etc/spine.conf)
#vi /usr/local/cacti-spine/etc/spine.conf
DB_Host         localhost
DB_Database     cacti
DB_User         cacti
DB_Pass         2010
DB_Port         3306

3)配置cacti的虚拟目录
#vi /lamp/web/apache/etc/extra/httpd-cacti.conf
Alias  /cacti  /lamp/cacti
<Directory /lamp/cacti>
DirectoryIndex index.php
AllowOverride none
order deny,allow
deny from all
Allow from 127.0.0.1 192.168.1.0/24
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
#vi /lamp/web/apache/etc/httpd.conf,增加如下一行
Include etc/extra/httpd-cacti.conf

4)配置cacti的config.php配置文件
#vi /lamp/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “cacti”;
$database_password = “2010”;
$database_port = “3306”;
$cacti_session_name = “Cacti”;

5)配置/etc/cron.d/cacti任务文件,即:系统每5分钟进行收集SNMP代理上的数据
#vi /etc/cron.d/cacti
*/5 * * * *    cacti    /lamp/web/php/bin/php  /lamp/cacti/poller.php &>/dev/null
#chkconfig –level 3 crond on
#service crond start

6)测试一下
#killall -HUP httpd  #重新加载一下httpd.conf配置文件
#http://ip/cacti,登录cacti,还要相关配置,下面是一个配置例子

说明:上图中的路径要设置对,也可以先跳过,然后登录cacti主页后,选择”settings” -> “Paths”进行修改

———————————————————————————

2、Cacti插件的安装

1)安装Plugin Architecture(http://cactiusers.org/)
作用:让
cacti支持更多的插件
#wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7f-PA-v2.7.tar.gz
#tar zxvf cacti-plugin-0.8.7f-PA-v2.7.tar.gz
#mv cacti-plugin-arch  /lamp/cacti/

#cd /lamp/cacti/
#mysql -ucacti -p2010 cacti < cacti-plugin-arch/pa.sql
#patch -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7f-PA-v2.7.diff
#rm  -rf cacti-plugin-arch
#chown -R cacti:cacti /lamp/cacti

#vi /lamp/cacti/include/config.php,修改并增加如下
$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “cacti”;
$database_password = “2010”;
$database_port = “3306”;
/* cacti’s path with dns */
$config[‘url_path̵