AGENT 模式唯一标识主机名
客户端以自身主机名为唯一标识将数据上报到API,每个客户端数据根据主机名去存储,若主机名被改变则数据会被认为是新主机得数据造成信息上报失误。
-
解决方式
客户端建立配置文件,第一次数据采集后把主机名配置写入配置文件,第二次后以配置文件中主机名为准进行数据上报
-
代码
1 config/settings.py 2 3 CERT_PATH = os.path.join(BASEDIR,'config','cert') 4 5 src/plugins/client.py 6 class Agent(Base): def execute(self): 7 8 server_info = PluginManager().exec_plugin() 9 #唯一标识主机名得处理(在config/cert为记录主机名得文件) 10 hostname = server_info['basic']['data']['hostname'] 11 certname = open(Settings.CERT_PATH,'r',encoding='utf-8').read() 12 if not certname.strip(): #注意去空行。如果文件中没有,第一次会写入获取得主机名 13 with open(Settings.CERT_PATH,'w',encoding='utf-8') as f: 14 f.write(hostname) 15 else: #如果有就以文件中主机名为准 16 server_info['basic']['data']['hostname'] = certname 17 self.post_asset(server_info)