7月 19

iTop唯一性检查功能测试

唯一性检查在 CMDB 里比较重要,大部分 CI 都不希望重复。iTop 2.6 之前并没有支持唯一性检查功能,需要使用 DoCheckToWrite 函数在写入前自行检查。 老方法回顾 用DoCheckToWrite函数实现写入前的校验,比如下面的代码校验某些属性,保证其唯一性。还可以在写入前进行简单的校验,例如限制登录用户只能编辑自己 … Continue reading

6月 13

Zabbix自动删除下线机器的监控

由于 Zabbix 自动注册没有删除机制(例如以主机名为规则注册,当服务器主机名变更时,会再次注册,并不删除原主机名的监控),导致有重复项。另外机器下线也需要删除服务器的监控。本文记录一种基于 iTop CMDB 和 Zabbix 接口自动审计 Zabbix 监控服务器的方案。 概述 使用 PHP 语言写脚本,并使用以下 SDK。 脚本使 … Continue reading

6月 11

使用Zabbix采集服务器基础信息

CMDB 建设中一个比较重要的方面是保证数据的及时更新以及准确性,靠人工肯定是很难做到的,必须通过技术手段用自动化的方式去做。本文记录一种通过 Zabbix inventory 来审计和更新 iTop CMDB 中服务器基础信息的方案。 概述 大致流程如下: 服务器基础信息的采集,通过 Zabbix 的自定义 Key 功能来实现。 服务器 … Continue reading

6月 10

登录时显示服务器信息

/etc/motd 里可以设置登录 Linux 服务器时显示的信息,但是只能显示静态信息,如果需要动态信息,可以通过 /etc/profile.d/ 下的脚本来实现。本文记录一种通过脚本调用 CMDB 接口获取服务器的业务,机房,状态以及联系人信息,在登录时显示的方法。效果如下图。 CMDB接口规格 为简化 Shell 脚本的调用,CMD … Continue reading

6月 02

基于iTop的Kubernetes工作流

当面向很多用户时,Kubernetes 的使用方式是一个需要考虑的问题。如果直接让用户写 yaml,一方面是要求每个用户都学 Kubernetes,这对研发人员来说是一个不必要的负担,另一方面 yaml 的管理以及权限分配对运维人员来说也是一个不必要的负担,平添很多琐事。因此,使用一个管理系统来屏蔽 Kubernetes 细节,管理权限等 … Continue reading

4月 12

基于iTop及pam_listfile的服务器账号管理方案

使用iTop CMDB实现服务器账号的存储,用户申请及审核界面,使用cmdbApi提供一个面向服务器的查询接口,服务器上一个脚本通过定时任务(或者ansible等工具触发)的方式查询本机账号信息,更新pam_listfile.so配置文件及sudo配置文件。 逻辑结构 iTop/lnkUserToServer及工单 lnkUserToSe … Continue reading

10月 19

iTop类继承关系及名称修改

场景 一开始规划不好,Database继承自FunctionalCI,由于自建数据库会使用某个Server,还有一个lnkDatabaseToServer类。后来又有了管理消息队列的需求,跟Database很类似,也需要lnk到Server,为了减少代码重复,考虑新增一个抽象类Middleware,Database及MessageQueu … Continue reading

8月 29

iTop 2.2.1 升级到2.3.1

升级过程中断 数据库升级之后就停了,chrome审查元素可以看到后续步骤需要sso认证。 原因: 一开始把2.3.1放在2.2.1的子目录下,用2.2.1的域名加 /web 子目录来访问2.3.1。sso扩展的代码片段如下: 匹配已 /setup 开头的URI,而子目录下的URI为 /web/setup,所以仍然需要sso认证。 因此,把 … Continue reading

7月 05

基于iTop的CMDB设计与实现

iTop使用面向对象的方式对现实世界的资源及配置项进行建模,易于理解,同时提供一套扩展机制定义类的属性和行为,使得CMDB建模变得简单并且可依赖。完全可以重写自带的配置管理模块,以适应不同的运维环境。另外,iTop还有强大的编辑功能,高效的导入导出工具,直观的依赖关系图,以及可以使用OQL查询语言REST/JSON接口。无论是简单的手工编 … Continue reading

6月 22

iTop集成SSO登录

基本思路 新建一个authent-sso扩展,除默认文件外在新建一个login.php用于充当sso回调url。基本流程为:用户选择SSO登录(或者系统判断用户为SSO用户,自动跳转),跳转到SSO登录页面,登录成功后带着token返回authent-sso/login.php,login.php中调用model.authent-sso. … Continue reading