集群节点故障诊断与处理

集群节点故障诊断与处理

 

安装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 USER1/check_nrpe -H HOSTADDRESS -c ARG1

}

②:在 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=.:CLASSPATH:JAVA_HOME/lib:JREHOME/libexportPATH=PATH:JAVAHOME/bin:JRE_HOME/bin
# set hadoop environment
export HADOOP_HOME=/opt/hadoop
export PATH=HADOOPHOME/bin: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 USER1/check_nrpe -H HOSTADDRESS -c ARG1 -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

 

 

 

posted @   世界终将是黑大帅的  阅读(549)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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
点击右上角即可分享
微信分享提示