首页 > 其他分享 >Neo4j 实现一个简单的CMDB管理平台

Neo4j 实现一个简单的CMDB管理平台

时间:2024-11-04 17:23:01浏览次数:3  
标签:p2 p1 平台 192.168 instance match Neo4j property CMDB

Neo4j 实现一个简单的CMDB管理平台

简介

Neo4j是一个高性能的图形数据库管理系统,它使用图形模型来存储和查询数据。图形数据库与传统的关系型数据库不同,它们使用节点和边来表示数据实体和它们之间的关系,而不是使用表格和行,可以使用neo4j实现权限系统,知识图谱,cmdb等

部署

docker run -d --name=neo4j \
  --publish=7474:7474 --publish=7687:7687 \
  --volume=$HOME/neo4j/data:/data \
  --volume=$HOME/neo4j/logs:/logs \
  --volume=$HOME/neo4j/import:/var/lib/neo4j/import \
  --volume=$HOME/neo4j/plugins:/plugins \
  neo4j:latest

neo4j密码

docker logs neo4j 2>&1 | grep 'Initial password'

访问地址:http://ip:7474

创建节点

# ()表示一个node节点,n是一个别名,tag是标签,{}是该节点的属性及该属性对应的值,可以有多个不同属性,属性和标签可以忽略
create (n:tag {"property":"属性值"})

创建节点与节点关联关系

# 先匹配要建立关联关系的两个节点,其次才创建关联关系
# 栗子
match (p1:instance {property:"192.168.1.1"}),(p2:env {property:"测试环境"}) create (p1)-[r:envrel {relation:''}]->(p2);
# 先匹配出标签为`instance`,属性`property`的值为`192.168.1.1`以及标签为`env`,属性`property`的值为`测试环境`的两个节点,分别为p1和p2,创建p1指向p2的关联关系
`[r:envre {relation:''}]`:[]代表关联关系,r是一个别名,envre代表这个关联关系类型的标签。{}代表关联关系的属性,支持多个不同的属性

新增逻辑环境节点

Create (n:env {property:"生产环境"});
Create (n:env {property:"测试环境"});

新增主机实例节点

Create (n:instance {system:"Centos Linux",property:"192.168.1.1"});
Create (n:instance {system:"Centos Linux",property:"192.168.1.2"});
Create (n:instance {system:"Centos Linux",property:"192.168.1.3"});
Create (n:instance {system:"Centos Linux",property:"192.168.1.4"});
Create (n:instance {system:"Centos Linux",property:"192.168.1.5"});

Create (n:instance {system:"Centos Linux",property:"192.168.2.1"});
Create (n:instance {system:"Ubuntu Linux",property:"192.168.2.2"});
Create (n:instance {system:"Centos Linux",property:"192.168.2.3"});
Create (n:instance {system:"SUSE Linux",property:"192.168.2.4"});
Create (n:instance {system:"Centos Linux",property:"192.168.2.5"});

创建主机与逻辑环境关联关系

#192.168.1.x段的ip归属于测试环境
#192.168.2.x段的ip归属于生产环境
match (p1:instance {property:"192.168.1.1"}),(p2:env {property:"测试环境"}) create (p1)-[r:envrel {relation:''}]->(p2);
match (p1:instance {property:"192.168.1.2"}),(p2:env {property:"测试环境"}) create (p1)-[r:envrel {relation:''}]->(p2);
match (p1:instance {property:"192.168.1.3"}),(p2:env {property:"测试环境"}) create (p1)-[r:envrel {relation:''}]->(p2);
match (p1:instance {property:"192.168.1.4"}),(p2:env {property:"测试环境"}) create (p1)-[r:envrel {relation:''}]->(p2);
match (p1:instance {property:"192.168.1.5"}),(p2:env {property:"测试环境"}) create (p1)-[r:envrel {relation:''}]->(p2);
match (p1:instance {property:"192.168.2.1"}),(p2:env {property:"生产环境"}) create (p1)-[r:envrel {relation:''}]->(p2);
match (p1:instance {property:"192.168.2.2"}),(p2:env {property:"生产环境"}) create (p1)-[r:envrel {relation:''}]->(p2);
match (p1:instance {property:"192.168.2.3"}),(p2:env {property:"生产环境"}) create (p1)-[r:envrel {relation:''}]->(p2);
match (p1:instance {property:"192.168.2.4"}),(p2:env {property:"生产环境"}) create (p1)-[r:envrel {relation:''}]->(p2);
match (p1:instance {property:"192.168.2.5"}),(p2:env {property:"生产环境"}) create (p1)-[r:envrel {relation:''}]->(p2);

新增应用服务节点

Create (n:service {servicetype:"application",property:"权限系统"});
Create (n:service {servicetype:"email",property:"邮件服务"});
Create (n:service {servicetype:"database",property:"Mysql"});
Create (n:service {servicetype:"application",property:"测试系统"});
Create (n:service {servicetype:"application",property:"oa系统"});

创建服务与主机关联关系

match (p1:service {property:"oa系统"}),(p2:instance {property:"192.168.2.1"}) create (p1)-[r:servicerel {relation:'隶属于'}]->(p2);
match (p1:service {property:"权限系统"}),(p2:instance {property:"192.168.2.2"}) create (p1)-[r:servicerel {relation:'隶属于'}]->(p2);
match (p1:service {property:"邮件服务"}),(p2:instance {property:"192.168.2.3"}) create (p1)-[r:servicerel {relation:'隶属于'}]->(p2);
match (p1:service {property:"Mysql"}),(p2:instance {property:"192.168.2.4"}) create (p1)-[r:servicerel {relation:'隶属于'}]->(p2);
match (p1:service {property:"测试系统"}),(p2:instance {property:"192.168.1.1"}) create (p1)-[r:servicerel {relation:'隶属于'}]->(p2);
match (p1:service {property:"oa系统"}),(p2:service {property:"Mysql"}) create (p1)-[r:depend {relation:'依赖于'}]->(p2);

匹配所有节点信息

列出所有节点及关联信息,这样可以很清晰的看出主机与服务及逻辑环境的关联关系

match (n)
return (n)

image-20240808171246708

匹配某个节点

match(n)
WHERE id(n) = <节点ID>
return n

匹配某个节点及与他关联的节点

match(n1)-[r]-(n2)
where id(n1)=15
return (n1),r,n2

image-20240808172909552

设置节点属性

# 为节点id为123的节点设置一个属性为name,值为John Doe
MATCH (n)
WHERE id(n) = 123
SET n.name = 'John Doe'

删除节点属性

# 移除节点id为123的name属性
MATCH (n)
WHERE id(n) = 123
REMOVE n.name

删除单个节点

注意:若该节点与其他节点有关联关系则会删除失败

MATCH (n)
WHERE id(n) = <节点ID>
DELETE n

删除节点及关联关系

MATCH (n)
WHERE id(n) = <节点ID>
DETACH DELETE n

标签:p2,p1,平台,192.168,instance,match,Neo4j,property,CMDB
From: https://www.cnblogs.com/jruing/p/18525808

相关文章

  • 基于springboot+vue实现的公考知识学习平台 (源码+L文+ppt)4-103
      4.1系统功能结构设计根据对公考知识学习平台的具体需求分析,把系统可以划分为几个不同的功能模块:管理员可以对系统首页、个人中心、用户管理、讲师管理、在线咨询管理、学习资料管理、讲座信息管理、讲座预约管理、学习论坛、练习自测管理、试题管理、试题库管理、系统管......
  • 国标GB28181设备管理软件EasyGBS国标GB28181公网平台创新应用
    在当今数字化时代,视频监控技术在各个领域发挥着至关重要的作用。随着科技的不断进步GB28181标准的广泛应用为视频监控系统带来了更高的兼容性和稳定性。而国标GB28181公网平台EasyGBS作为一款基于GB28181标准的视频监控平台,正以其强大的功能和创新的应用,为用户带来全新的监控体......
  • 国标GB28181网页直播平台EasyGBS国标GB28181软件与GB28181应用场景分析
    随着5G、AI、云计算、大数据、物联网等新兴技术的快速发展,各行各业都在积极探索智能化、现代化的管理与运营模式。国标GB28181网页直播平台EasyGBS作为一款基于国标GB28181协议的视频云服务平台,凭借其强大的功能和广泛的应用场景,在众多领域中展现出了独特的优势。一、EasyGBS......
  • 国标GB28181-2022平台EasyGBS国标GB28181设备管理软件:GB28181标准下的视频监控集成与
    随着信息技术的飞速发展,视频监控领域正经历从传统安防向智能化、网络化安防的深刻转变。在这一变革中,国标GB28181-2022平台EasyGBS作为一款基于GB28181标准的视频监控集成与管理平台,凭借其卓越的性能、高度的灵活性和用户友好的设计,广泛应用于智慧城市、智慧园区、智慧交通、智......
  • 国标GB28181公网平台EasyGBS国标GB28181软件构建标准化视频监控网络
    在当今的数字化时代,视频监控已成为公共安全、企事业单位等领域不可或缺的一部分。为了规范这一领域的信息传输、交换和控制,我国推出了GB/T28181标准,并在此基础上,国标GB28181公网平台EasyGBS以其丰富的视频能力和灵活的部署方式,为视频监控领域带来了诸多创新和便利。国标GB/T2......
  • 乐维网管平台(四):配置化数据报表应用
    在网络管理中,报表功能是一项非常重要的功能,它通过统计与分析各种类型数据,为网络管理员决策提供数据支撑。一、配置化数据报表概述基于不同行业、不同客户、不同应用场景,乐维网管平台提供了配置化报表功能。配置化数据报表允许用户根据实际需求,灵活配置并生成多种类型的数据报表......
  • 国标GB28181设备管理软件LiteGBS国标GB28181公网直播视频监控解决方案:流媒体业务平台
    LiteGBS作为国标视频综合管理平台,在智慧物联领域中表现卓越,其核心竞争力源自于其尖端的视频流媒体技术、分布式架构和负载均衡技术的高效融合。该平台不仅具备全面的功能性,包括视频直播、录像检索、云存储、告警推送、语音通讯以及跨平台资源共享等多样功能,而且因其出色的兼容性、......
  • CMDB模型管理:构筑高效IT运维的坚实基础
    在CMDB中,模型是一个非常重要的概念,在前面的文章中我们提到了模型对于保障CMDB数据准确性的重要性。那么,要如何理解CMDB的模型呢?模型在CMDB中又是什么地位?能起到什么作用呢?一、模型概述在CMDB中,模型指的是对IT基础设施中各种配置项(ConfigurationItems,简称CI)的抽象表示,包括这些配......