如何让CMDB配置维护更贴近人性

运维帮 2016-05-27 作者介绍 作者简介:周振中,现任广通优云产品汪,运维工程狮一枚,小半条腿跨入运维的浩瀚世界,目标是成为一只有点逼格的产品汪,就酱。优云(uyun.cn)是广通软件旗下的新一代敏捷运维品牌,从高效、智能、迭代、协同等角度重新审视运维、在数据中心、互联网、物联网三个领域为用户提供敏捷运维工具和服务,帮助用户赢得数字化业务成功。 正文 近来很多行业内的大佬关于CMDB连连发声,CMDB的关注度持续高涨,CMDB的前生就是长满雀斑的丑媳妇,扭扭捏捏不受待见这么多年,终于熬出头要见公婆了。哎,她的贤惠谁能懂? 言归正传,在拜读了多篇大牛的文章发现,提及配置维护的内容很少,有也是一带而过。但在过去和用户的接触过程中,发现配置维护一直是一个无法回避的大难题,一块难啃的骨头。业界产品的普遍做法主要是依靠自动发现+人工维护+流程控制。对于自动发现、流程控制,我想只能解决配置维护的60%的工作,真正出现问题的是占用40%工作量的人工维护。由于人性的劣根性,天性决定了人在行动上靠谱的不多,即使当前配置准确性很高,时间一长又是烂摊子,形同虚设。暗地里估计还有人在抱怨,我操,谁TM开发的CMDB,一点也不好用,数据全是垃圾。谁又能静下来想一想?这是不是CMDB的问题?哎,她的委屈谁能懂? 今天,我们抛开高大上的自动发现和流程控制不说,和各位探讨怎么做好配置的人工维护,先来分析人工维护为啥这么难?配置准确率低为啥这么低?我想原因存在以下几点: 懒惰 懒惰是人的天性,是一种不自觉的习惯;尽可能的少思考,少干活;或者是人想保护脂肪层消耗的本能。安于现状,觉得和自己无关紧要,就懈怠漫不经心,做一天和尚撞一天钟,遇到刮风下雨的,估计连钟也不要撞了。很多企业的配置维护是由很多人共同维护的,吃大锅饭的做法。俗话说的好:“大锅饭,干不干,三顿饭,吃的饱,睡得甜”。时间长了,人养成傻白甜了,数据变成脏乱差了! 随大流、从众心理 在大环境中,一开始有些人,我们不得不承认很努力用心,但是团队里面难免有一些“搅屎棍”。长期以往近朱者赤,近墨者黑;人都有从众心理,看着别人都不及时维护配置,我干啥就那么拼命呢。时间久了你懂的,搅屎棍++,垃圾数据++! 缺少比较 大家都是被应试教育碾压过来的。如果学校里没有排名机制对比,我想我是考不上好大学的,恨透了每逢月底贴在年级公告栏上的排名。维护CMDB也是一样的,若没有比较,没有分三六九等,维护的好不好根本就没有直观的感受,更加别谈量化考核。 缺少协助 CMDB维护是一个群体行为,需要团队去贡献数据。然很多CMDB设计的时候,采用了相对封闭模式,自给自足,未能从协作分享的角度去考虑。有些非维护人发现配置的问题,基于沟通繁琐,不主动沟通,导致问题滞后,如果每个人不说也就这样不了了之。 需要解决的问题其实和人性息息相关,下面我将通过对具体的产品设计进行分析,解读“人性”对产品的影响。 人生来就有三种属性,自然属性(人老病死)、心理属性(喜怒哀乐)、社会属性(活动、人际交往),纵观互联网,所有产品都是围绕这三个方面来打造,产品的终极目标是满足人性需求,不从人性的角度去考虑产品设计,就是耍流氓。 所以我们CMDB从一开始设计就是从人性出发,从用户的痛点出发,围绕怎么整治人性的慵懒,诱发人性的虚荣,引起人性的恐惧,促进与人沟通协作的社交化上来,帮助用户做好人工的配置维护。 基于设计的初衷我们CMDB采用建立配置维护圈、社交协作化的思路,通过文化引导和规范约束结合的方法,促进配置的鲜活、保证配置准确率,激发用户内在动力来做好配置维护。具体设计如下: 物以类聚,人以圈分:按照业务、配置类型、区域、架构、管理人员等维度建立配置维护圈,通过圈子的建立,使管理目标、资源、行动更聚焦。 老一辈用他走的过路活生生的告诉我们,吃大锅饭行不通的,要致富,莫开大锅饭,分田到户,一家一户,自擦屁股。配置维护一样,但配置维护是小团队(如果团队小,可以到个人)行为,所以需要给每个团队一亩三分地划好,如按照业务系统的架构划分,圈子就会包括该业务架构的所有配置(业务、应用、集群、主机、数据库、中间件等),这样团队自给自足,懒的话,别说饭了,连汤都没得喝了,圈子的划分很好的解决了人性懒惰的天性,自己的责任自己维护! 社交协作:共享圈子的数据访问、开放式的评论、点赞、站内信,推动企业内部的高效沟通、协作、分享。 人是群聚而居的动物,没有社交活动,心理就没有归属,而且渴望得到别人的认同。通过数据的共享,分享,达到数据协作共建,另外通过开放式的评论、点赞、站内信,说说你的看法或不同观点、或者建议方案,帮助他人,也将收获别人的赞许。 激发活力:引入圈子的动态排名,激发人员内生动力,促进配置维护活跃度。 根据配置的创建和变更、评论以及圈子的操作等维度,计算出每个圈子的动态指数,有人爱慕虚荣,爱彰显,自然有人就会心生恐惧,害怕对比,害怕落后,势必会百尺竿头思更进,策马扬鞭自奋蹄!...

tomcat的配置和优化

转自:http://www.sysopen.cn/20165012/ 作者:yangc tomcat的内存使用配置,最大连接数配置。 如何修改配置呢,在/tomcat的/bin/下面有个脚本文件catailna.sh。 如果 windows 是bat设置tomcat的使用内存,其实就是设置jvm的使用参数。 一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS 参数。 1.JAVA_OPTS参数说明 Java代码 -server  启用jdk 的 server 版; -Xms...

supervisor 管理 tomcat 常见问题

1.supervisorctl http://localhost:9001 refused connection 1.打开如下的配置: [inet_http_server] ; inet (TCP) server disabled by default port=0.0.0.0:9001 ; (ip_address:port specifier, *:port for all iface) username=user ; (default is...

supervisor program配置实例

program 配置 上面我们已经把 supervisrod 运行起来了,现在可以添加我们要管理的进程的配置文件。可以把所有配置项都写到 supervisord.conf 文件里,但并不推荐这样做,而是通过 include 的方式把不同的程序(组)写到不同的配置文件里。 为了举例,我们新建一个目录 /etc/supervisor/ 用于存放这些配置文件,相应的,把 /etc/supervisord.conf 里 include 部分的的配置修改一下: [include] files = /etc/supervisor/*.conf 假设有个用 Python 和 Flask 框架编写的用户中心系统,取名...

Linux运维人员共用root帐户权限审计

2016-11-02 运维部落 一、应用场景 在中小型企业,公司不同运维人员基本都是以root 账户进行服务器的登陆管理,缺少了账户权限审计制度。不出问题还好,出了问题,就很难找出源头。 这里介绍下,如何利用编译bash 使不同的客户端在使用root 登陆服务器使,记录各自的操作,并且可以在结合ELK 日志分析系统,来收集登陆操作日志 二、环境 服务器:centos 6.5、Development tools、使用密钥认证,SElinux 关闭。 客户端:生成密钥对,用于登录服务器 (2台) 三、搭建部署 服务器操作 : 192.168.30.72 1、下载编译bash [root@open1 ~]# wget http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz [root@open1...

zabbix_server的自动发现,实现批量添加主机,并链接到模板

一、需求 zabbix 服务器可以手动加入zabbix-agent客户端,对于少量的机器,这没有什么。但到了线上,我们有大量的服务器需要监控时,如果再一个个的手动加的话,工作量势必会增加很多。这时,zabbix-server 的Discovery 自动发现 功能便派上了用场。 二、条件 1.zabbix server 已经部署好,所需要加入的服务器zabbix-agent已经安装。 2.防火墙都开放端口,主要是10050、10051端口,或者关闭整个iptables 三、zabbix-agent客户端的设置 1.打开zabbix-agent.conf配置文件,只需要修改2处配置.大批量的修改,可以利用自动化部署工具、如saltstack、ansible等。我用的是saltstack推送文件的方式进行修改,在本实验环境中,我用的是国产的一个批量工具CheungSSH。 2.批量执行的命令 sed -i 's/Server=127.0.0.1/Server=10.8.0.22/g' /etc/zabbix/zabbix_agentd.conf sed -i 's/ServerActive=127.0.0.1/ServerActive=10.8.0.22/g' /etc/zabbix/zabbix_agentd.conf grep "Server" /etc/zabbix/zabbix_agentd.conf...

tomcat 监控

主要监控JVM (1)JPS(快速获取Java的PID) 这个是jdk包里的 显示Java进程的 +l +v +m   (2)jstack 命令格式: 常用说明:   (3)jmap     现在列举生产中遇到的JVM的问题的处理流程(Java进程占用CPU特别的高) (1)首先使用jps来获取Java进程的PID (2)jstack pid >> java.txt 导出CPU占用高进程的线程栈 (3)top -H -p...

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解 2016-10-28 马哥Linux运维 DK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java进程消耗CPU过高……这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是Java程序员进阶的必备要求。本文将对一些常用的JVM性能调优监控工具进行介绍,希望能起抛砖引玉之用。 A、 jps(Java Virtual Machine Process Status Tool)          jps主要用来输出JVM中运行的进程状态信息。语法格式如下:jps [options] [hostid] 如果不指定hostid就默认为当前主机或服务器。    命令行参数选项说明如下:-q 不输出类名、Jar名和传入main方法的参数-m 输出传入main方法的参数-l 输出main类或Jar的全限名-v 输出传入JVM的参数 比如下面:root@ubuntu:/# jps -m -l2458 org.artifactory.standalone.main.Main /usr/local/artifactory-2.2.5/etc/jetty.xml29920 com.sun.tools.hat.Main -port 9998 /tmp/dump.dat3149 org.apache.catalina.startup.Bootstrap start30972 sun.tools.jps.Jps -m -l8247 org.apache.catalina.startup.Bootstrap start25687 com.sun.tools.hat.Main -port 9999 dump.dat21711 mrf-center.jar B、 jstack    jstack主要用来查看某个Java进程内的线程堆栈信息。语法格式如下:jstack [option] pidjstack [option] executable corejstack [option] [server-id@]remote-hostname-or-ip 命令行参数选项说明如下:-l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况-m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法) jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps、top、printf、jstack、grep。   ...

tomcat 的安全规范

下面来说一下,日常工作当中我们需要注意的一些tomcat的安全规范:   一:telnet管理端口的保护 类别 配置内容及其说明 标准配置 备注 Telnet 管理端口的保护 (强制) (1)配置文件中的默认端口是8005管理端口,所以为了不容易攻击,最好端口改成其他的(大于1024,建议设区间为8000~8999) (2)改SHUTDOWN 指令为其他的字符串 <Server port=”=8517″ shutdown=”dangerous”>       二:AJP管理端口的保护: 类别 配置内容及其说明 标准配置 备注  ...