集群节点故障诊断与处理
集群节点故障诊断与处理
安装Nagios服务端的时出现被需要的依赖包问题,需要安装mysql的rpm包:
输入:wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
安装:rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
1.Nagios服务端安装(master节点上)
输入:yum install httpd php php-cli gcc glibc glibc-common gd gd-devel net-snmp
输入:yum -y install openssl-devel
2.创建用户和分组
创建用户:useradd -m nagios
修改密码:passwd nagios
输入密码
新建分组: groupadd nagcmd
添加用户到分组:usermod -a -G nagcmd nagios
3.安装nagios
①:输入:
tar -zxvf /apps/nagios-4.0.8.tar.gz -C /opt
②:进入nagios文件下输入:
./configure --with-command-group=nagcmd
③: make all
④: make install
⑤:make install-init
⑥:make install-config
⑦:make install-commandmode
⑧: make install-webconf #安装 Web 界面
⑨:创建密码
输入:htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
输入密码
为web界面创建登录账号,其中 nagiosadmin 为账号名可更改,同时会提示添加密码。
重启 Apache 服务
⑩:cd ~
输入:systemctl restart httpd.service
4.安装plugins
①:解压文件
输入:tar -zxvf /apps/nagios-plugins-2.0.3.tar.gz -C /opt
②:进入plugins文件下输入:./configure --with-nagios-user=nagios --with-nagios-group=nagios
③:make
④:make install
⑤:service nagios start
⑥:默认安装目录:/usr/lib64/nagios/plugins/ ,安装完毕,可以进入 web 界面了网址: http://master/nagios/ 登陆名 nagiosadmin 密码:password(面设置的那个密码)
⑦:若出现 nginx error,则修改
输入:vim /etc/httpd/conf/httpd.conf
将 Listen 80 改为 888,则网址为:http://master:888/nagios
5.Nagios 目录名称及作用
目录名称 | 作用 |
bin | Nagios 可执行程序所在目录 |
etc | Nagios 配置文件目录 |
sbin | Nagios cgi 文件所在目录, 也就是执行外部 命令所需要文件所在的目录 |
share | Nagios 网页存放路径 |
libexec | Nagios 外部插件存放目录 |
var | Nagios 日志文件、Lock 等文件所在的目录 |
var/archives | agios 日志自动归档目录 |
agios 日志自动归档目录 | 用来存放外部命令文件的目录 |
6.Nagios 配置监控 node1 资源
①:创建 hosts.cfg 文件来定义主机和主机组
输入:cd /usr/local/nagios/etc/objects
输入:vim hosts.cfg
添加:
define host{
use linux-server
host_name node2
alias Nagios-node2
address 192.168.47.131;(slave1)
}
define host{
use linux-server
host_name node3
alias Nagios-node3
address 192.168.47.132;(slave2)
}
define hostgroup{
hostgroup_name bsmart-servers
alias bsmart servers
members node2,node3
}
②:创建 services.cfg 文件来定义服务
输入: vim services.cfg
添加:
define service{
use local-service
host_name node1
service_description check-host-alive
check_command check-host-alive
}
③:编辑 localhost.cfg 文件
输入:vim localhost.cfg
添加:
define host{
use linux-server ; Name of host template
to use
; This host definition will inherit all variables
that are defined
; in (or inherited by) the linux-server host
template definition.
host_name node1
alias node1
address 192.168.90.233;(master)
}
define hostgroup{
hostgroup_name node1 ; The name of the hostgroup
alias node1 ; Long name of the group
members node1 ; Comma separated list of hosts that belong
to this group
}
define service{
use local-service ; Name of service
template to use
host_name node1
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use local-service ; Name of service
template to use
host_name node1
service_description Root Partition
check_command check_local_disk!20%!10%!/
}
define service{
use local-service ; Name of service
template to use
host_name node1
service_description Current Users
check_command check_local_users!20!50
}
define service{
use local-service ; Name of service
template to use
host_name node1
service_description Total Processes
check_command check_local_procs!250!400!RSZDT
}
④:编辑 nagios.cfg 挂载各个文件
输入:cd ..
输入:vim nagios.cfg
添加:
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
⑤:在以后修改配置文件后,可以利用以下命令行检测配置文件是否正确,可以根据错误提示修改
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
⑥:启动服务
输入:service nagios reload
输入: service nagios restart
⑦:登陆。点击 services(静静等待)
7.Nagios 配置监控 node2,node3 资源(在slave1节点,slave2节点上)
①:在被监控端(node2、node3)安装基础套件(salve1,slave2)
输入:yum install httpd php php-cli gcc glibc glibc-common gd gd-devel net-snmp
②:在被监控端(node2、node3)安装 plugins(slave1,salve2)
③:增加用户设定密码(slave1,salve2)
输入:useradd nagios
输入:passwd nagios
输入密码
④:将nagios-plugins文件拷贝至其他两个节点并安装(slave1,salve2)
输入:scp -r /apps/nagios-plugins-2.0.3.tar.gz @salve1:/apps/
输入:scp -r /apps/nagios-plugins-2.0.3.tar.gz @salve2:/apps/
解压:
输入:tar -zxvf nagios-plugins-2.0.3.tar.gz -C /opt
安装:
输入:./configure --with-nagios-user=nagios --with-nagios-group=nagios
⑤:make
⑥:make install
⑦:修改目录权限
输入:
chown -R nagios.nagios /usr/local/libexec/
chown -R nagios.nagios /usr/local/libexec/
8.在被监控端(node2、node3)安装 nrpe(slave1,salve2)
①:解压nrpe
输入:
tar -zxvf /apps/nrpe-2.15.tar.gz -C /opt
②:下载依赖
输入:
yum -y install openssl-devel
yum -y install xinetd
yum -y install tftp-server
yum -y install net-tools
③:进入nrpe目录进行安装
输入:./configure --enable-command-args
④:#接下来安装 NPRE 插件,daemon 和示例配置文件
输入:
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
⑤:修改nagios服务主机地址
输入:
vim /usr/local/nagios/etc/nrpe.cfg
将allowed_hosts修改为node1地址
allowed_hosts=192.168.47.130
#可以看到创建了这个文件/etc/xinetd.d/nrpe。
vim /etc/xinetd.d/nrpe
在only_from后面添加node1地址
⑥:增加nrpe服务
输入:
vim /etc/services
添加一行
nrpe 5666/tcp # nrpe
⑦:修改tftp配置文件
输入:vim /etc/xinetd.d/tftp
disable = no //需要修改的地方,初始时刻为 yes
⑧:重启服务
输入:systemctl restart xinetd.service
⑨:查看nrpe是否启动
输入:netstat -tnlp
查看端口已经启动
为了后面工作的顺利进行,注意本地防火墙要打开 5666 能让外部的监控机访问。
输入: vim /usr/local/nagios/etc/nrpe.cfg
修改路径为:sda1
9.在监控端(node1)安装 check_nrpe(master节点上)
①:解压:
输入:
tar -zxf /apps/nrpe-2.15.tar.gz -C /opt/
②:安装
输入:
./configure --enable-command-args
③:安装配置文件
输入:
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
④:修改nagios服务器主机地址
allowed_hosts=192.168.90.233(node1 地址)
⑤:可以看到创建了这个文件/etc/xinetd.d/nrpe修改文件
在only_from 后增加监控主机的 IP 地址
输入:
vim /etc/xinetd.d/nrpe
⑥:编辑/etc/services文件增加nrpe服务
输入:vim /etc/services
添加一行
nrpe 5666/tcp # nrpe
⑦:安装服务
yum -y install xinetd
yum -y install tftp-server
yum -y install net-tools
⑧:修改防火墙访问路径
输入:vim /usr/local/nagios/etc/nrpe.cfg
更改为sda1
⑨:修改tftp文件:
disable修改为:no
⑩:重启服务查看端口
输入:systemctl restart xinetd.service
查看监听端口:
监听node2和node2地址
输入:/usr/local/nagios/libexec/check_nrpe -H 192.168.47.131(更改ip地址)
10.配置node1各个文件(master节点上)
①:在 commands.cfg 中增加对 check_nrpe 的定义
输入:vim /usr/local/nagios/etc/objects/commands.cfg
添加:
define command{
command_name check_nrpe
command_line /check_nrpe -H -c
}
②:在 services.cfg 中添加对 Nagios-Linux 主机的监控
输入:vim /usr/local/nagios/etc/objects/services.cfg
添加:
define service{
use local-service
host_name node2
service_description check-host-alive
check_command check-host-alive
}
define service{
use local-service
host_name node2
service_description Current Load
check_command check_nrpe!check_load
}
define service{
use local-service
host_name node2
service_description Check Disk sda1
check_command check_nrpe!check_sda1
}
define service{
use local-service
host_name node2
service_description Total Processes
check_command check_nrpe!check_total_procs
}
define service{
use local-service
host_name node2
service_description Current Users
check_command check_nrpe!check_users
}
define service{
use local-service
host_name node2
service_description Check Zombie Procs
check_command check_nrpe!check_zombie_procs
}
③:在以后修改配置文件后,可以利用以下命令行检测配置文件是否正确,可以根据错误提示修改
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
④:修改nrpe.cfg文件
添加:command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
⑤:重启服务
service nagios restart
service nagios reload
⑥:查看界面(等待)
11.Nagios 配置监控 HDFS 的健康状态
①:新建 check_hdfs.sh 文件并修改权限
进入 /usr/local/nagios/libexec/目录下
输入:vim check_hdfs.sh
#!!!注意这里的目录写自己配置的环境目录
export JAVA_HOME=/opt/java
export JRE_HOME=/opt/java/jre
export CLASSPATH=.:JAVA_HOME/lib:PATH:JRE_HOME/bin
# set hadoop environment
export HADOOP_HOME=/opt/hadoop
export PATH=HADOOP_HOME/sbin:$PATH
chk_hdfs=`hdfs fsck /user | grep 'filesystem under path'`
case $chk_hdfs in
*HEALTHY*)
echo "OK - HDFS is healthy"
exit 0
;;
*)
echo "CRITICAL - HDFS is corrupt!"
exit 2
;;
esac
②: chmod 755 ./check_hdfs.sh
③: chown nagios:nagios ./check_hdfs.sh
④:编辑 services.cfg 文件
进入/usr/local/nagios/etc/objects 目录下
输入: vim services.cfg
添加:
define service{
use generic-service
host_name node1
service_description check_hdfs_health
contact_groups admins
check_command check_nrpe_hdfs!check_hdfs
}
⑤:编辑 commands.cfg 文件
输入:vim commands.cfg
添加:
define command{
command_name check_nrpe_hdfs
command_line /check_nrpe -H -c -t 30
}
⑥:编辑 nrpe.cfg 文件
输入:cd ..
输入:vim nrpe.cfg
添加:
command[check_hdfs]=/usr/local/nagios/libexec/check_hdfs.sh
⑦:输入此命令查看错误
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
⑧:重启nagios服务
service nagios restart
service nagios reload
⑨:查看nagios网页
⑩:查看hdfs健康状态:
进入/usr/local/nagios/libexec/目录下
输入: ./check_nrpe -H 192.168.47.130 -c check_hdfs
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY