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
1.23 NTP服務問題彙總
1.23.1 查看時間一直顯示未同步
[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
1.24 MHA服務問題彙總
1.24.1 在MHA服務端查看主從複製狀態報錯如下?
[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 [email protected](172.16.1.17:22) to [email protected](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 [email protected]
1.24.2 在MHA服務端查看主從複製狀態報錯如下?
免密鑰登陸的賬號名稱@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 遠程用戶
1.24.3 查看各數據庫節點的主從狀態?
[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
1.24.4 在MHA服務端查看主從複製狀態報錯如下?
這個操作是在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
1.24.4 在MHA服務端查看主從複製狀態報錯如下?
這個操作是在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
1.24.5檢測各個數據庫節點的主從狀態
[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';
1.25 Nagios服務問題彙總
1.25.1 訪問Nagios的頁面中節點報如下錯誤信息
解決辦法:
[root@Nagios ~]# vim/etc/httpd/conf/httpd.conf
304 AllowOverride None 改爲 AllowOverride All
[root@Nagios ~]# /etc/init.d/httpd start
1.25.2 訪問Nagios監控頁面顯示如下錯誤信息
故障原因:
主要還是身份驗證的問題,我們在安裝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
1.25.3 安裝nrpe插件時執行make all提示下面錯誤信息?
Checking for ssl headrs… configure:error Cannot find ssl headers
解決辦法:
[root@Nagios nagios]# yum –y install openssl*
1.25.4 當我們在nagios服務端檢測Nagios客戶端磁盤的信息時報錯如下?
本題提示: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
12.5.5 在Nagios監控界面如果出現下面問題?
故障原因:
客戶端/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
12.5.6 Nagios中添加完監控url時檢查語法時提示下面錯誤
[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
}
1.26 Apache服務
1.26.1 Apache服務啓動時提示如下錯誤
[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