ambari 丢失节点问题

ambari 由于运维失误覆盖了 hosts 文件跟重启机器, 集群丢失了一个节点, 问题排查

  1. 查看该节点 ambari-agent 服务正常, log 也没什么异常, restart 服务也正常
  2. 删除历史 log, restart 服务, 从头查看 log, 发现一条 Host system information: log 描述该机器详细属性的如下


{'kernel': 'Linux', 'domain': '', 'physicalprocessorcount': 24, 'kernelrelease': '3.10.0-862.2.3.el7.x86_64',
'uptime_days': '356', 'memorytotal': 57548684, 'swapfree': '0.00 GB', 'memorysize': 57548684,
'osfamily': 'redhat', 'swapsize': '0.00 GB',
'processorcount': 24, 'netmask': '255.255.192.0',
'timezone': 'CST', 'hardwareisa': 'x86_64',
'memoryfree': 918436,
'operatingsystem': 'centos', 'kernelmajversion': '3.10',
'kernelversion': '3.10.0',
'macaddress': '52:54:00:2C:41:01',
'operatingsystemrelease': '7.5.1804'
'hostname': '_hostname_',
 ....

发现该 hostname 数据成了系统 hosts 文件中的配置的一个域名, 这就不对了 根据以前的非 root 安装 ambari 集群踩过的坑, ambari 自动获取 hostname 的 py 脚本有很多坑

  • 使用上次爬坑经验来解决该问题, ambari-agent.ini 配置文件可以指定自定义的获取 hostname 脚本

ambari-agent 配置

...
[agent]
logdir=/var/log/ambari-agent
piddir=/var/run/ambari-agent
prefix=/var/lib/ambari-agent/data

#### 自定义 hostname 脚本
hostname_script=/etc/ambari-agent/hostname.sh

;loglevel=(DEBUG/INFO)
loglevel=INFO
...

hostname 脚本

#!/bin/bash
echo "hostname-001"