要使用Nagios监控主机和某些服务,我们必须使用以下内容编辑文本文件:
define host{
use <template>
host_name <name>
alias <alias>
address <IP> }
define service{
use <template>
host_name <name>
service_description <desc>
check_command <command> }
我有一个界面,我可以用PHP语言做这样的事情。我有2个函数addServiceNagios($ hostname,$ service,$ command)和addHostNagios($ hostname,$ hostIP),其中信息放在文件中。现在我有一个大问题:
无论如何,始终放置信息。如果主机已存在,或者服务已分配给主机。检查主机是否已定义的最佳方法是什么?如果服务相关联?如果我想删除与主机关联的服务?提前谢谢。
答案 0 :(得分:0)
我会构建一个解析器来解析文件中的语法,因此能够在更易于访问的数据结构中显示相同的数据。
根据文件的大小,数组可以存储其他信息,如偏移等。但是,在解析器旁边编写可以将此数组结构转储回文件的转储程序更容易。因此,每次重写整个文件,但使用实际数据。
然后,您可以轻松地对阵列结构执行添加和删除操作,同时注意读取和写入文件。
所以你把彼此的问题分开了。