Centos系统服务FAQ汇总
1.22 无人职守安装问题汇总
1.22.1 安装系统时提示PXE-E32:TFTP open timeout TFTP"Open"
查看发现xinetd服务没有启动导致此问题发生
[root@PXE~]# ss -lantup | grep :69
[root@PXE~]# /etc/init.d/xinetd start
[root@NTP ~]# ntpstat
unsynchronised
time server re-starting
polling server every 8 s
ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,所以当你查看同步状态时出现此情况等几分钟不行再将ntp服务重新启动就OK!正确结果如下:
1.23.1 ntp客户端向服务端同步时间报错如下:
[root@LVS_DR_01 ~]# ntpdate 172.16.1.20
29 Apr 18:13:30 ntpdate[27902]: noserver suitable for synchronization found
故障原因:
NTP服务端没有停止防火墙导致
解决办法:
NTP服务端停止防火墙
[root@NTP~]# service iptables stop
[root@LVS_DR_01 ~]# ntpdate 172.16.1.20
29 Apr 18:13:30 ntpdate[27902]: noserver suitable for synchronization found
[root@Atlas-MHA ~]# masterha_check_ssh --conf=/etc/app1.cnf
Mon May 4 22:38:05 2015 -[error][/usr/lib64/perl5/vendor_perl/MHA/SSHCheck.pm, ln111] SSH connectionfrom root@172.16.1.17(172.16.1.17:22) to root@172.16.1.17(172.16.1.17:22)failed!
Permission denied (publickey,password).
SSH Configuration Check Failed! at /usr/bin/masterha_check_ssh line
环境说明:
172.16.1.15服务是MHA服务,172.16.1.16是主库,172.16.1.17是从库.检测状态时候提示172.16.1.17本身无法连接自己权限拒绝.
故障原因:
172.16.1.17自己本身没有公钥.
解决办法:
将自己的公钥给自己发一份
[root@Mysql_02 ~]# ssh-copy-id -i.ssh/id_dsa.pub root@172.16.1.17
免密钥登陆的账号名称@172.16.1.17(172.16.1.17:22)..
Mon May 4 22:07:59 2015 -[error][/usr/lib64/perl5/vendor_perl/MHA/SSHCheck.pm, ln111] SSH connectionfrom root #ssh免密钥登陆的账号名称@172.16.1.16(172.16.1.16:22)to root #ssh免密钥登陆的账号名称@172.16.1.17(172.16.1.17:22)failed!
ssh: Could notresolve hostname root: Name or service not known
Mon May 4 22:08:00 2015 -[error][/usr/lib64/perl5/vendor_perl/MHA/SSHCheck.pm, ln63]
***部分标识错误重点需要看的地方.
环境说明:
172.16.1.15服务是MHA服务,172.16.1.16是主库,172.16.1.17是从库.检测状态时候提示172.16.1.17本身无法连接自己权限拒绝.
故障原因:
在MHA服务器的主配置文件中添加中文注释导致的
[root@Atlas-MHA ~]# vim/etc/app1.cnf
[server default]
# mysql user and password
user=root
password=123456 密码
ssh_user=root 远程用户
解决办法:
提醒大家:当时本人看到此错误以为是主机的/etc/hosts文件中没有添加主机名对应IP地址造成的于是乎将3台服务器的以下两个配置文件(MHA服务器和数据库主服务器与数据库从服务器)全部修改完事后从新检测还是不行.
[root@Atlas-MHA ~]# cat /etc/hosts
172.16.1.15 Atlas-MHA
172.16.1.16 Mysql_01
172.16.1.17 Mysql_02
[root@Atlas-MHA ~]# cat/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=Atlas-MHA
最终解决办法将MHA的主配置文件中两个中文注释取消后从新检测OK了!(***部分取消)
[root@Atlas-MHA ~]# vim/etc/app1.cnf
[server default]
# mysql user and password
user=root
password=123456 密码
ssh_user=root 远程用户
[root@Atlas-MHA ~]# masterha_check_repl--conf=/etc/app1.cnf
Host is blocked because of manyconnection errors; unblock with ‘mysqladmin flush-hosts‘
环境说明:
172.16.1.15服务是MHA服务,172.16.1.16是主库,172.16.1.17是从库.检测状态时候提示172.16.1.17本身无法连接自己权限拒绝.
故障原因:
同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞
解决办法:
以下执行的操作是在主数据库上操作的(172.16.1.16)
使用mysqladminflush-hosts 命令清理一下hosts文件(不知道mysqladmin在哪个目录下可以使用命令查找:whereis mysqladmin或whichmysqladmin)在查找到的目录下使用命令修改:
远程连接主机操作
[root@Mysql_01 ~]# /usr/bin/mysqladmin flush-hosts -h172.16.1.16 -P3306 -uroot –p23456;
本地操作(下面输入的密码是数据库的登陆密码)
[root@Mysql_01 ~]# mysqladminflush-hosts -p123456
这个操作是在MHA服务端执行的
[root@Atlas-MHA ~]# masterha_check_ssh --conf=/etc/app1.cnf
Can‘t exec"mysqlbinlog": No such file or directory at/usr/share/perl5/vendor_perl/MHA/BinlogManager.pm line 106.
mysqlbinlog version command failed with rc 1:0, please verify PATH,LD_LIBRARY_PATH, and client options
at/usr/bin/apply_diff_relay_logs line 493
环境说明:
172.16.1.15服务是MHA服务,172.16.1.16是主库,172.16.1.17是从库.检测状态时候提示172.16.1.17本身无法连接自己权限拒绝.
故障原因:
不能执行mysqlbinlog命令,没有这样的文件和目录
解决办法:
分别在172.16.1.16和172.16.1.17(主和从服务端都要执行)
[root@Mysql_02 .ssh]# which mysqlbinlog
/application/mysql/bin/mysqlbinlog
[root@Mysql_02 .ssh]# ln -s /application/mysql/bin/mysqlbinlog/usr/bin/mysqlbinlog
[root@Mysql_01 .ssh]# which mysqlbinlog
/application/mysql/bin/mysqlbinlog
[root@Mysql_01 .ssh]# ln -s /application/mysql/bin/mysqlbinlog/usr/bin/mysqlbinlog
这个操作是在MHA服务端执行的
[root@Atlas-MHA ~]# masterha_check_ssh --conf=/etc/app1.cnf
Temporary relay log file is/data/3307/relay-bin.000032
Testing mysql connection andprivileges..sh: mysql: command not found
mysql command failed with rc 127:0!
at /usr/bin/apply_diff_relay_logs line375
环境说明:
172.16.1.15服务是MHA服务,172.16.1.16是主库,172.16.1.17是从库.检测状态时候提示172.16.1.17本身无法连接自己权限拒绝.
故障原因:
不能执行mysql命令,没有这样的文件和目录
解决办法:
分别在172.16.1.16和172.16.1.17(主和从服务端都要执行)
[root@Mysql_01 3306]# which mysqlbinlog
/application/mysql/bin/mysqlbinlog
[root@Mysql_01 3306]# ln -s /application/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
[root@Atlas-MHA ~]# masterha_check_repl--conf=/etc/app1.cnf
Testing mysql connection andprivileges..ERROR 1045 (28000): Access denied for user ‘mha_rep‘@‘mysql2‘(using password: YES)
Testing mysql connection and privileges..ERROR1045 (28000): Access denied for user ‘mha_rep‘@‘mysql-1‘ (using password: YES)
环境说明:
172.16.1.15服务是MHA服务,172.16.1.16是主库,172.16.1.17是从库.检测状态时候提示172.16.1.17本身无法连接自己权限拒绝.
故障原因:
分别在主从库上没有给用户授权
解决办法:
GRANT ALL PRIVILEGES ON *.* TO‘mha_rep‘@‘192.168.0.190‘ IDENTIFIED BY ‘123456‘;
解决办法:
[root@Nagios ~]# vim/etc/httpd/conf/httpd.conf
304 AllowOverride None 改为 AllowOverride All
[root@Nagios ~]# /etc/init.d/httpd start
故障原因:
主要还是身份验证的问题,我们在安装Nagios时生成的一个管理员账号htpasswd -cb /usr/local/nagios/etc/htpasswd.users oldboy 123456名字是oldboy,nagiosamin是我们用来登陆nagios的管理员,而cgi.cfg就是用来验证管理员身份的,如果你生成的管理员用户不是nagiosadmin,验证的时候就会失败也就会出现上面的错误了,所以我们只要把配置文件里的用户名改为实际的管理员用户名,保存,再重新启动nagios即可!(此次我的解决办法用的是二)
解决办法一:
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
解决办法二:
[root@Nagios nagios]# vim/usr/local/nagios/etc/cgi.cfg
78 use_authentication=1 改为use_authentication=0
[root@Nagios nagios]# /etc/init.d/nagiosrestart
Checking for ssl headrs… configure:error Cannot find ssl headers
解决办法:
[root@Nagios nagios]# yum –y install openssl*
本题提示:Nagios服务端IP10.0.0.25 Nagios客户端10.0.0.13
[root@Nagios ~]# /usr/local/nagios/libexec/check_nrpe -H 10.0.0.13 -c check_disk
CHECK_NRPE: Error - Could not complete SSL handshake.
故障原因:
Nagios客户端没有设置被哪个服务器来监控导致的.
解决办法:
[root@Apache_Web01 ~]# cat/usr/local/nagios/etc/nrpe.cfg +79
以下意思是本机服务器将被10.0.0.25主机来监控
allowed_hosts=127.0.0.1,10.0.0.25
[root@Apache_Web01 ~]# pkill nrpe
[root@Apache_Web01 ~]# /usr/local/nagios/bin/nrpe -c/usr/local/nagios/etc/nrpe.cfg –d
再次在Nagios服务端测试
[root@Nagios ~]# /usr/local/nagios/libexec/check_nrpe -H 10.0.0.13 -c check_disk
DISK OK - free space: / 24541 MB (87% inode=93%);|/=3657MB;23772;27337;0;29715
故障原因:
客户端/usr/local/nagios/etc/nrpe.cfg此配置文件中定义的 command[check_diskl]= 命令check_disk和多了一个l.
解决办法:
[root@Apache_Web01 ~]# vim/usr/local/nagios/etc/nrpe.cfg
将command[check_diskl]=改为command[check_disk]=
[root@Apache_Web01 ~]# pkill nrpe
[root@Apache_Web01 ~]# /usr/local/nagios/bin/nrpe -c/usr/local/nagios/etc/nrpe.cfg –d
[root@Nagios ~]#/usr/local/nagios/libexec/check_nrpe -H 10.0.0.13 -c check_mem
客户端查
[root@Apache_Web01 ~]# /usr/local/nagios/libexec/check_nrpe -H127.0.0.1 -c check_mem
[root@Apache_Web01 ~]# cat/usr/local/nagios/etc/nrpe.cfg
command[check_mem]=/usr/local/nagios/libexec/check_memory.pl-w 6% -c 3%
[root@Apache_Web01 ~]#/usr/local/nagios/libexec/check_memory.pl -w 6% -c 3%
-bash:/usr/local/nagios/libexec/check_memory.pl Permission denied
[root@Apache_Web01 ~]# ls -l/usr/local/nagios/libexec/check_memory.pl
[root@Apache_Web01 ~]# chmod +x /usr/local/nagios/libexec/check_memory.pl
[root@Nagios ~]# /etc/init.d/nagios checkconfig
Checking services...
Error: Service check command ‘check_weburl‘ specified in service‘blog_url‘ for host ‘Apache_Web01‘ not defined anywhere!
Checked 6 services.
故障原因:
定义了通过check_weburl检测httpd服务但是没有定义check_weburl命令所以报如上的错误!
解决办法:
在commands.cfg文件中定义check_weburl命令
[root@Nagios ~]# cat /usr/local/nagios/etc/objects/commands.cfg
# ‘check_weburl‘ command definition
define command{
command_name check_weburl
command_line $USER1$/check_http $ARG1$ -w 10 -c 30
}
[root@Nagios ~]# /etc/init.d/httpd restart
Starting httpd: httpd: Could notreliably determine the server‘s fully qualified domain name, using 10.0.0.25for ServerName
故障原因:
域名进行了反解析
解决办法:
[root@Nagios ~]# vim/etc/httpd/conf/httpd.conf
或者可以将此行前面的#直接去掉也OK!
#ServerName www.example.com:80
ServerName localhost:80
[root@Nagios ~]# /etc/init.d/httpd restart
添加主机名对应的IP地址
[root@Nagios ~]# cat /etc/hosts
10.0.0.25 Nagios
本文出自 “卓越军” 博客,请务必保留此出处http://wxj121.blog.51cto.com/7136845/1649919
原文地址:http://wxj121.blog.51cto.com/7136845/1649919