Skip to content

Members xuxiaoshi

Xiaoshi Xu edited this page Sep 18, 2018 · 238 revisions

< 返回成员列表

2018/09/17

# mobile
# node
cd  $new_release_path/moore8_mobile
npm i
ionic build
/bin/chown -R www:www $new_release_path
  • nginx要做一些改动
rewrite ^/m$ /m/ permanent;
location ~ /m/ {
    alias /opt/vhosts/dev.qa.moore8.com/www/moore8_mobile/www/;
}
  • gg因为tls termination所以https的请求里调用的还是http
    • 入口nginx加一些header
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;

2018/08/01

2018/07/16 一周

  • 日常运维
    • 上线
    • 协助架构处理事务
    • 协助QA处理事务
    • 协助前端后端处理事务
    • 摩尔吧员工电脑配置
    • 广告async投放
    • https
    • 广告数据
  • bom2buy
    • 日常运维
    • 用go写一个rate limiter
    • 修改追踪代码
    • 数据问题排查
    • esxi新建qa服务器

2018/06/05

  • gg上的eeboard商城广告跳转后面的参数丢失导致链接不对
    • url编码问题
    • 应该新建supplyframe banner然后把链接放在landing page url里,不能直接放在代码里。
  • 继续测试香港服务器
    • resize web node to 8 cores 16 GB ram
    • 发现exchangeRate跟lax不同

2018/06/04

  • 香港服务器各个服务测试
    • 发现fcapi慢,发现是内部调用了botfilter,本地没有配置botfilter,配置,发现速度变快。
    • 其他一些问题修复。
  • eeboard论坛挂马排查
    • 还是上次的APP_JACK,把木马拉下来看,发现了其他有木马的地方,清除。
    • 无法查到木马入口。

2018/06/01

  • 香港服务器jenkins
    • 连续部署失败
    • 需要ruby环境,但是不能用全局的ruby,只能是jenkins user的private env。
    • 尝试用插件,但是插件需要sudo,咨询美国运维,帮装了一些系统需求的包,但是插件还是不好用。
    • 直接从ruby.io装环境,装好之后发现还是编译失败,发现需要source rvm,然后要禁止set -u,然后要用1.9.3版本,然后要装特定版本的旧gem。
    • 成功。
    • 将hk.bom2buy.com设置成cname lb.hk1.hkg.supplyframe.io
  • 把bom2buy上的厂商数据移到阿里云上
    • 目前是通过调用datasheet.eefocus.com的api来获取数据的。
    • 把所有数据都拉成json,放到阿里云,调整里面的logourl,把logo也都放到阿里云上。
    • 修改代码从阿里云获取数据。

2018/05/29

  • 修复sso第三方登录
    • 线上加日志,发现在判断state时候失败,就是没有获取到之前存的session。
    • 发现callback等文件开头调用了session_start,默认是走的php的session,所以生成的cookie是PHPSESSIONID,我们sso的为了和php的区分开了已经改成了eefocus_sess。
    • 在session_start之前调用session_name然后设置成配置中的名字。
  • bom2buy数据不一致
    • 两次bom上传之后推荐的型号厂商不同。
    • 线上把fclsearch的response放在redis中方便查看。
    • 发现fcl多个任务的时候outgoingmap里面有些是空的,没有去获取feed,导致获取数据不一致。发送给platform。
  • 尝试修改某用户的昵称失败
    • 发现测试环境是手机号primarykey没填,''冲突。修改后能修改了。
    • 线上发现是昵称冲突。
  • 有些论坛无法登陆,无法发帖。
    • 因为uid被改的太长,超出了有些地方,比如论坛字段限制,需要找出所有这些用到uid的地方,批量修改已经存入的uid,复原之前被改大的uid。
  • 跟马悦开会讨论bom2buy数据的问题。
  • 文章抓取几个新站:21ic, catech, tuicool

2018/05/28

  • 周末摩尔吧被攻击
    • 周末摩尔吧突然上不去,重启数据库后修复。
    • 早上卢朋发现tmp下有木马,然后发现/data/vhosts/www.moore8.com/src/config里多出一个shell文件夹,咨询星宇后发现里面全是木马。
    • 开始查日志,发现shell文件夹里的内容大概是17:30左右传上来,继续查源头。
    • 通过/opt/vhosts/www.moore8.com/www/moore8/logs/里记录的日志发现stat_code从15:50左右开始有异样,查看stat_code文件,发现多处了一句话木马。
    • stat_code会被所有页面调用,所以看到日志里很多POST /, POST到主页。
    • 查日志,发现有修改记录,星宇说这个是管理员登录后台就可以修改,应该是moore8超管权限被爆破了。查看日志,确实有很多admin/login尝试登录的记录。
    • 星宇去掉了后台的这个功能,并通知摩尔吧修改密码。
  • 登录系统account出现一些问题
    • 星宇发现开发模式被开启,表示很诡异。
    • 联想到摩尔吧的攻击,查看日志发现确实攻击了account的数据库。新建了用户,改成了超级管理员。并修改了页脚内容。
  • 时间轴
account.eefoucs.com 05/26
15:50 通过moore8把一句话木马传进stat_code
17:06 往uploads里传了一个1.php,但是没有用
17:25 注册了一个用户
17:30 往config/shell里传了一堆木马,并且修改了routes
17:41 - 19:09 对数据库进行攻击,看日志似乎在寻找我们的用户db,但是查了两个小时没有找到。
21:23 找到了pi_account_eefocus这个库,开始研究了我们account的工作原理
21:30 修改页脚 eef_core_config where id = 8,加了phpinfo
21:41 发现了管理员的关键字段,应该是通过select * from eef_core_user_account where id = 1;
21:42 修改自己注册的用户成admin
21:53 修改自己注册的用户的userid
22:24 似乎发现了我们account的工作原理,修改了数据里的页脚

之后又做了一些操作,但是看不出了,应该是导致account开始报错的原因,因为从account的日志看23:28开始报错,moore8日志看这个时间点有很多该ip的POST。

2018/05/25

  • 还原昨天的eefocusmail的配置
    • 本来说因为没有备案这个发邮件的域名eefocusmail.com需要修改成eefocusmail.eefocus.com
    • dns,postfix,sendy配置完毕后发现他们只要这个域名无法访问就行
    • 不用重新换域名发邮件了,还原之前做的配置。
  • 文章抓取
    • 三个新站 elecfanstech1 elecfanstech2 elecfansapply

2018/04/25

  • 给半数服务器配置logrotate
    • 因为需要验证,所以先一半
    • 明天看看效果
  • eeboard阿里云服务器
    • 相关数据先复制到阿里云sys服务器
    • 想一下哪些服务器可以去掉,nfs不需要了,lb不需要了,webserver直接面对外网好了。
  • 老主站使用情况

2018/04/24

  • 测试环境main.eefocus.com/admin无法登陆
    • 发现配置有问题,修改docker的配置
    • 发现可以正常显示,还是无法登陆,咨询刘卓,需要特定的代码版本。更换代码
    • 无法登陆,Remote access error: Error in cURL request: Failed to connect to account.eefocus.com port 80: Connection refused。
    • 需要把account.eefocus.com配置成nginx容器的端口ip,docker inspect <容器id>
    • 登录ok,主页有一些样式不显示,重新在测试环境21上打包下载data。
  • 下午请假了

2018/04/12

  • eeboard st社区很卡排查(没错排查了一整天)
    • 发现61缓存服务器只有100M的带宽,eeboard的redis和社区memcache占满了全部带宽
    • 把st社区的memcache移到了103,61的流量下来了,网站也不卡了。
    • 但是103上并没有看到很多于社区服务器的交互,非常奇怪,继续排查。

2018/04/11

2018/04/10

  • 应supplyframe要求整理所有苏州上海办公室的ip。
    • 发现vpn登录后公网ip显示218.4.165.171不是218.4.165.170,找卢大大确认后是做了映射。
  • 整理数据库日志,文档记录,确保各个数据库日志都正常输出。确认各个数据库内容功能。
  • openx视频广告,测试。
  • 木马研究

2018/03/07

  • 广告系统备用服务器
    • 在nginx端把163作为了backup
    • 修复更新脚本,广告系统的log : release/var/debug.log
    • 然后出现了一些权限问题,修复。发现昨天137广告系统没有在工作,还好163是backup,接管了过来,投放正常,没有广告数据丢失。
  • 邮件筛选某账户发送失败的
     先 grep "from=<stmcu@mail.eefocus.com>" 20180224.log  | awk -F' ' '{print $6}' | sort | uniq 找出所有uniq的id
     然后 grep "F419A403C9:\|F41BC4038D:\|F41FC4037F:\|F420B4037B:\|F422740310:" 20180224.log | grep "to=" | grep -v "status=sent"
    不知道如何合并成一条
    

2018/03/06

  • bom2buy服务器redis问题
    • 一直会突然crash然后所有key都丢失
    • 伴随着backend save error
    • 观察发现rdb存储路径和名称都被篡改了,跟 https://github.com/antirez/redis/issues/3594 描述的很像,是被attack的
    • 发现不连vpn也能直接ssh了
    • 汇报给network team,修复了vpn。有一些nat rule没有起作用,删除了一些nat session。
  • 社区服务器木马问题排查
    • 有人上传了reverse shell
    • 暂时无法定位源头位置,英飞凌可能性比较大。
    • 加固权限

2018/03/02

  • 本机配置Go环境

  • 移动端banner无法显示

    • 发现是因为自己定义了尺寸
    • 之前一直都是可以的,因为不定义尺寸在移动端就会溢出页面。
    • 现在无法自适应尺寸了,发现sz参数似乎在doubleclick端变成了required parameter

这个请求能获取内容

https://ad.doubleclick.net/ddm/adj/N4481.eefocus/B20610747.214795641;dc_ver=41.108;dc_eid=40004000;sz=728x90;u_sd=2;kw=%5Burl_encoded_publisher_data%5D;dc_adk=319894096;ord=d24fwk;dc_rfl=0,http%3A%2F%2Fgg.eefocus.com%2Fwww%2Fadmin%2Fbanner-edit.php%3Fclientid%3D44%26campaignid%3D2957%26bannerid%3D11181$0;xdt=0;crlt=.hYEAZpOXS;sttr=94;prcl=s?

这个获取不了(注意少了sz参数,是从ins tag里传入的)

https://ad.doubleclick.net/ddm/adj/N4481.eefocus/B20610747.214795641;dc_ver=41.108;dc_eid=40004000;u_sd=2;kw=%5Burl_encoded_publisher_data%5D;dc_adk=319894096;ord=98z5zn;dc_rfl=0,http%3A%2F%2Fgg.eefocus.com%2Fwww%2Fadmin%2Fbanner-edit.php%3Fclientid%3D44%26campaignid%3D2957%26bannerid%3D11181$0;xdt=0;crlt=8ovbNwNOMT;sttr=86;prcl=s?

交由前端杨涛同学处理

2018/03/01

  • ADI社区广告投放问题

    • 发现同一个页面无法投放多个广告
    • 尝试修改,封装广告代码,但是最后只有一个广告能显示
    • 尝试本地做修改,本地可以复现问题,一个广告能动,一个不动。
    • 采用iframe方式,将广告嵌套,外层再用超链接。
    • 方法还是按照wiki,上传七牛,修改图片src,把脚本和html提取出来,但是不同的是,这次把脚本和html放在一起,组成一个可以作为iframe的src的html文件。
    <div style="width:728px;height: 90px;position: relative;">
        <a href="{clickurl}" target="_blank">
            <div style="position: absolute;top: 0;left: 0;width: 100%;height: 100%;z-index: 10;"></div>
        </a>
        <iframe src="http://p4use9fnq.bkt.clouddn.com/3932.html"; style="width: 100%; height: 100%" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0">
        </iframe>
    </div>
    
    	<meta charset="UTF-8">
    <div id="animation_container" style="background-color:rgba(255, 255, 255, 1.00); width:728px; height:90px">
    	<canvas id="canvas" width="728" height="90" style="position: absolute; display: block; background-color:rgba(255, 255, 255, 1.00);"></canvas>
    	<div id="dom_overlay_container" style="pointer-events:none; overflow:hidden; width:728px; height:90px; position: absolute; left: 0px; top: 0px; display: block;">
    	</div>
    </div>
    
    <script src="https://code.createjs.com/createjs-2015.11.26.min.js"></script>
    <script src="http://p4use9fnq.bkt.clouddn.com/3932_180228.js"></script>
    <script>
    window.addEventListener('load', init, false);
    var canvas, stage, exportRoot, anim_container, dom_overlay_container, fnStartAnimation;
    function init() {
    	canvas = document.getElementById("canvas");
    	anim_container = document.getElementById("animation_container");
    	dom_overlay_container = document.getElementById("dom_overlay_container");
    	var comp=AdobeAn.getComposition("CA1F532C4E0FE04FB6FF9ED118BDE87A");
    	var lib=comp.getLibrary();
    	var loader = new createjs.LoadQueue(false);
    	loader.addEventListener("fileload", function(evt){handleFileLoad(evt,comp)});
    	loader.addEventListener("complete", function(evt){handleComplete(evt,comp)});
    	var lib=comp.getLibrary();
    	loader.loadManifest(lib.properties.manifest);
    }
    function handleFileLoad(evt, comp) {
    	var images=comp.getImages();	
    	if (evt && (evt.item.type == "image")) { images[evt.item.id] = evt.result; }	
    }
    function handleComplete(evt,comp) {
    	//This function is always called, irrespective of the content. You can use the variable "stage" after it is created in token create_stage.
    	var lib=comp.getLibrary();
    	var ss=comp.getSpriteSheet();
    	var queue = evt.target;
    	var ssMetadata = lib.ssMetadata;
    	for(i=0; i<ssMetadata.length; i++) {
    		ss[ssMetadata[i].name] = new createjs.SpriteSheet( {"images": [queue.getResult(ssMetadata[i].name)], "frames": ssMetadata[i].frames} )
    	}
    	exportRoot = new lib.LT3932_728_90_chs();
    	stage = new lib.Stage(canvas);
    	stage.enableMouseOver();	
    	//Registers the "tick" event listener.
    	fnStartAnimation = function() {
    		stage.addChild(exportRoot);
    		createjs.Ticker.setFPS(lib.properties.fps);
    		createjs.Ticker.addEventListener("tick", stage);
    	}	    
    	//Code to support hidpi screens and responsive scaling.
    	function makeResponsive(isResp, respDim, isScale, scaleType) {		
    		var lastW, lastH, lastS=1;		
    		window.addEventListener('resize', resizeCanvas);		
    		resizeCanvas();		
    		function resizeCanvas() {			
    			var w = lib.properties.width, h = lib.properties.height;			
    			var iw = window.innerWidth, ih=window.innerHeight;			
    			var pRatio = window.devicePixelRatio || 1, xRatio=iw/w, yRatio=ih/h, sRatio=1;			
    			if(isResp) {                
    				if((respDim=='width'&&lastW==iw) || (respDim=='height'&&lastH==ih)) {                    
    					sRatio = lastS;                
    				}				
    				else if(!isScale) {					
    					if(iw<w || ih<h)						
    						sRatio = Math.min(xRatio, yRatio);				
    				}				
    				else if(scaleType==1) {					
    					sRatio = Math.min(xRatio, yRatio);				
    				}				
    				else if(scaleType==2) {					
    					sRatio = Math.max(xRatio, yRatio);				
    				}			
    			}			
    			canvas.width = w*pRatio*sRatio;			
    			canvas.height = h*pRatio*sRatio;
    			canvas.style.width = dom_overlay_container.style.width = anim_container.style.width =  w*sRatio+'px';				
    			canvas.style.height = anim_container.style.height = dom_overlay_container.style.height = h*sRatio+'px';
    			stage.scaleX = pRatio*sRatio;			
    			stage.scaleY = pRatio*sRatio;			
    			lastW = iw; lastH = ih; lastS = sRatio;            
    			stage.tickOnUpdate = false;            
    			stage.update();            
    			stage.tickOnUpdate = true;		
    		}
    	}
    	makeResponsive(false,'both',false,1);	
    	AdobeAn.compositionLoaded(lib.properties.id);
    	fnStartAnimation();
    }
    </script>   
    

2018/02/07

  • bom2buy varnish架构梳理
  • 全站搜索三年内的统计,交给项目部
  • GA统计各个网站的campaign来源,交个项目部
  • openx后台一个ins tag的h5广告无法统计点击数
    • 发现从ins tag获取到的广告hardcode了clickurl,导致ins tag的click tracker被忽略。
    • 整个广告是在iframe里,无法修改
    • 还在摸索中。

2018/02/06

  • 邮件打开数太低问题排查
    • 发现16号的campaign没有全部发送
    • 发现有硬盘问题,导致无法进队列
  • 邮件群发有人收不到问题排查
    • 发现“全部”群组里是一个一个的部门架构,而不是部门群组,有的人没有在部门架构里添加,不知道为什么以前没有问题,应该是有改动过。
    • 将丢失的全部添加回正确的部门里,解决。

2018/02/05

  • 给深圳办公室和moore8办公室配置翻墙路由器
  • 广告点击数问题排查
    • 我们的短链接点击和PI统计差距越来越大
    • 自己统计的GA参考意义不大,只有统计主站
    • 还是不清楚GA的筛选机制。

2018/01/29 ~ 2018/02/02

  • 出差,见香港机房Equinix,China Mobile, China Unicom,安装,配置网络设备
  • bom2buy的threading有些问题,redis会过载,协助开发追溯问题源头。
  • bom2buy一直会报 “upstream prematurely closed connection while reading upstream”,后来发现是搜索搜不到结果会报这个错,需要查看搜索不出结果的情况有什么特殊处理。

2018/01/26

  • 尝试简化H5投放过程

2018/01/25

  • bom2buy的digikey价格错误
    • 发现usd是正确的,但是没有获取到cny的价格,所以自己按照汇率换算了。
    • digikey官网的价格不是根据汇率换算的,所以有对不上了,应该是api端的datafeed有变化
    • 暂时在后台给digikey加了个系数,明天调回来。
  • bom2buy的js载不出来
    • 发现路径下为空,没有能够生成
    • 重新部署

2018/01/24

  • bom2buy的digikey exception排查
    • 加上threadid,追踪请求
    • 发现是sockettimeout,需要platform配合解决

2018/01/23

  • bom2buy的502和digikey不显示
    • digikey不显示的时候发现有dns错误,加大了dns的timeout,继续测试
    • 502的情况是node报socket timeout,判断可能是concurrent的请求太多
    • 在node里加了maxSockets,这样请求会被queue起来,继续观察
  • 广告被人刷了
    • 发现有同一个ip在刷

2018/01/22

  • cndzz的diagram页打不开
    • 排查发现代码无改动,配置无改动,返回200
    • 星宇发现是2018年日志的表没有生成,应该是手动添加的, 添加完后修复。
  • 又发现eeboard一篇点击数异常的文章
    • 发现变0日期是1月11日,在代码修改之前,所以代码修复之后目前没有发现新的文章归零。
    • 手动修改这篇文章的点击数。
  • 投放另外两个h5广告
    • 这两个代码跟另外一个有所不同。发现init不执行,因为onload必须放在body里,导致广告无法加载。
    • 解决办法,在脚本最前面加上window.onload,调用init,成功。
    • 感谢杨涛帮助。

2018/01/19

  • 投放三个h5广告
    • 根据自制教程 gg-html5-banner,制作了一个
    • 另外几个略有不同,目前还有一些问题。
  • bom2buy有时候会502排查
    • 发现502之后对这个浏览器这个用户不会恢复,需要换一个url然后再回主页就能成功。
    • 判断是服务器worker数量耗尽,用户访问502,接下来的访问都可能缓存了或者使用了之前的链接所以直接502了。
    • 但是cookie的验证是在node端,node端却没有显示报错。,只有nginx有显示错误,情况不明,继续排查。
  • 爱板又出现pc端显示移动的问题
    • 应该是移动ua列表不全,导致一个pc显示了移动页面,被缓存。
    • 问星宇要了完整移动端ua,更新varnish配置,目前稳定
    • 目前使用的移动端判断: iPhone|Mobile|iPod|Android|BB|BlackBerry|IEMobile|webOS|iPad|PlayBook|Xoom|P160U|SCH-I800|Nexus|Touch

2018/01/18

  • sendy的subscribers列表打开慢
    • 发现有慢查询
    SELECT timestamp FROM subscribers WHERE timestamp <= 1508351798 AND list = 1260 AND unsubscribed=0 AND bounced = 0 AND complaint = 0 AND confirmed = 1;
    
    • 发现用了索引,但是不是最佳索引,尝试analyze table,没有效果
    • 强制使用某个索引能优化很多
    mysql> SELECT timestamp FROM subscribers use index (s_list) WHERE timestamp <= 1508351798 AND list = 1260 AND 
    unsubscribed=0 AND bounced = 0 AND complaint = 0 AND confirmed = 1;
    Empty set (0.08 sec)
    
    mysql> SELECT timestamp FROM subscribers  WHERE timestamp <= 1508351798 AND list = 1260 AND unsubscribed=0 AND bounced 
    = 0 AND complaint = 0 AND confirmed = 1;
    Empty set (10.08 sec)
    
    • 无法让mysql自动走这个index,在代码中添加了这个use index,页面可以打开了,但是还是不快,需要继续优化
    • 发现还有一句count也慢,加了use index。
  • bom2buy的fcl-search依然有些时候digikey和mouser不返回
    • 上次加了延迟,并且platform更新了代码,现在稍微稳定点,但是达不到100%
    • 会出问题的请求:
    curl "http://ilb:4080/v1/fcl-search?part=RCLAMP0524PATCT&distributorIds=1588&ip=180.108.227.50&userAgent=Mozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_12_1)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/63.0.3239.132%20Safari/537.36&h_crc=16e359cb-da56-4378-abe6-6b19b94c0688&site=bom2buy&country=chn&itemIdSearch=true&tinyUrl=false&softWaitTime=3000&hardWaitTime=5000&apiKey=kt7fQq7LELUvF7aYn3K2"
    
    这个有时候会返回空值

2018/01/17

  • 有人反映bom2buy无法访问
    • 显示是error,应该是直接走到了error页面,默认的50x.html
    • 开始排查,发现日志只有nginx log,直接502,没有走到node。
    • node端没有错误,nginx也没有显示错误,感觉像缓存了这个用户的请求。
    • 让用户删除缓存尝试,无用。
    • 让用户删除cookie尝试,未回复。
  • 发现有时候爱板主页会显示移动端页面,跟上次看到的相反
    • 说明有些移动端的UA被识别做了pc,然后pc端缓存了移动页面
    • 需要更改判断移动端还是pc端的逻辑。
    • 需要更改varnish判断移动端还是pc端的逻辑。
    • 不缓存主页

2018/01/16

  • 发现移动端打开是pc端页面
    • 应该是打开了缓存的页面
    • 缓存的时候需要分开pc端和移动端
    • 还需要细分爬虫+pc 爬虫+mobile 普通+pc 普通+mobile
  • eeboard目前趋于稳定
    • 检查百度抓取的相关信息
  • 全站搜索删除垃圾内容
    • 记得以前做过,但是好像没有给blog启用
    • 检查blog的代码,发现有小bug
    • 修改bug,手动删除已经存在的垃圾blog,加上定时任务。

2018/01/15

  • 继续查eeboard
    • 这是前几天后台操作日志和服务器load对比
    • 发现周末压力也很高,非常奇怪,因为看了下周末后台操作并不多。发现
    • 今天目前为止还ok,不知道是不是因为禁用了baidu-sitemap插件,再观察看看。
    • 发现百度爬虫的分布也跟load图比较接近,现在加了缓存,看看是否有效。
    • 将baidu的缓存和其他缓存分开,百度的ttl 2天,其他5min

2018/01/12

  • eeboard实在太卡
    • 考虑加varnish,在外面走一层缓存,然后进apache
    • 测试环境配置varnish,测试
    • 上线varnish,未登录用户速度飞快。
  • eeboard还是很卡
    • 发现每次后台操作会导致cpu压力大,尝试关闭wp-super-cache,看看是否是插件清了缓存。
    • 关闭了super-cache,看看情况,发现后台操作还是卡。
    • 查了下有人说是baidu的sitemap插件,下周会尝试关闭以后观察。
  • 想办法让eeboard不卡
    • Varnish缓存服务配置
    • 还需要调整一下配置,根据不同文件设置不用的ttl
    • 然后可能有些地方需要强制purge缓存。

2018/01/11

  • bom2buy的partsapi的问题
    • 访问美国服务器正常返回数据,但是访问国内服务器返回404
    • 怀疑是国内服务器没有配置好,查看java服务的配置,发现zookeper配置的国外服务器,调整回国内,两台都顺利启动。
    • 但是还是返回404,查看日志,发现两种不同的请求:partsio如果发到load balancer上 请求是 xxxx/v1/xxxx,然后loadbalancer会转成 xxx/solr/partsio/xxx,直接发送到服务商不走lb是发送的xxx/solr/partsio/xxx
    • 目前问题是我们国内服务器没有设置这个rewrite
    • 加上rewrite,修复。

2018/01/10

  • eeboard文章点击重置问题
    • 加了一下log,基本可以确定,是在服务器压力高的时候,从缓存和数据库都没有取出数据,然后这种情况代码里默认点击数是0,然后重置,写入数据库。
    • 压力高的问题暂时还在排查,是否可以想办法修改一下逻辑,判断取得的meta到底是空值还是0,如果是空值说明报错,throw一个exception之类的,不更新数据库。
    • 给140加了个定时任务,每20秒执行以下netstat,然后排序连接的ip,想看看高压力下是不是跟缓存服务器交互最多。
  • PI广告点击Gap
    • gap无法填补
    • 根据我们的ga观察跟我们的短地址点击对比,差不多,说明大部分还是网络原因,他们服务器在美国,可以理解。
    • 应该是他们网站没打开就被关闭了。
  • bom2buy suggestion api无法获取数据的问题
    • 发现suggestion内部还是调用了fcapi
    • fcapi内部调用了parts-lookup的服务,用来获取相关的起见名称,这个服务返回空值,问题出在这里。
    • 判断可能是数据缺失,进/var/cache/parts-lookup里看,发现parts文件比lax服务器小很多
    • 尝试从美国服务器拉过来,但是速度太慢,决定先下载到本地,然后传到boluu服务器上。
    • 花了好几个小时,搞定,测试能获得数据了。

2018/01/09

  • 文章抓取停住了
    • 发现laoyaba挂了
    • 把禁用的几个ofweek开启
  • 发现添加的文章页的监测代码影响了功能
    • onclick覆盖了之前的onclick
    • 因为只需要加pi widget的监测代码,所以打算还是在onload里
    • 先getElementsByClassName然后再加onclick,后台代码位置: main.eefocus.com/admin -> 系统 -> 设置 engine.eefocus.com/admin -> 系统 -> 设置
  • bom2buy定时发送email脚本更新

2018/01/08

  • 尝试在主站短链接上加GA监测代码
    • window.onload然后搜索全部a,加上onclick
    • 发现这样如果网站没载完就点击 会无效
    • 还是得改代码,在模板里改?目前还是加在了网页载入完毕之后,因为那个短链接在最下面。
  • bom2buy阿里云oss内容迁移
    • 原来的内容要迁移到bom2buy的账号的bucket里
    • 发现oss客户端很不友好,无法按时间排序
    • 一页只显示100个,要一页一页啦,效率太低,咨询了阿里云,目前无回音。

2018/01/05

  • bom2buy上线
    • 发现上线后功能缺失
    • 发现有些commit没有被merge进部署分支
    • merge后重新部署
  • admaster广告适配
    • 根据运营说,他们会提供两个链接,一个是landing page一个是tracking pixel
    • 这么看来其实跟admaster关系不大,我们放一个图,然后clickurl设置一下,把tracking pixel放到advanced里面的附加代码
    • 可以跟他们进行一下测试,看看是否可以监测到
  • bom2buy的部件搜索一直有内容丢失
    • 发现是第三方(digikey,mouser等)的api会有时候超时,一超时就放进我们自己的进黑名单
    • 尝试传入参数,但是还是会有短暂缺失。
    • 研究黑名单部分相关逻辑,发现参数似乎无法越过黑名单,继续测试。

2018/01/04

  • 被告知有未备案的网站导致端口被封
    • 但是没有说是哪个网站
    • 又被告知66ip恢复了
    • 运行脚本把dns从124改回66
  • bom2buy上传pdf相关
    • 在灵动账号下新建oss bucket,提供key给开发
    • 帮助开发完成关于signagure相关,因为bucket是私有,读也是需要权限的
  • PI广告GA数据和短链接统计GAP大
    • 询问运营有没有其他客户的GA数据和短链接数据,作对比,被告知没有。
    • 询问运营有没有我们内部的GA数据和短链接数据,作对比,被告知没有。
    • 询问运营为何觉得GAP大,被告知肉眼观察得出结论,以前有些客户没那么大,但是没有记录数据。
    • 目前来看Gap确实挺大,但是原因不太好查。
    • 据运营说GA的session和短链接的gap差不多在30%左右,现在接近70%,之前爱板也有类似问题。

2018/01/03

  • linear域名变更
    • 所有linear的域名都换成adi.eefocus.com
    • 修改sso部分,发现adi是以前用过的域名,导致一些登录问题,把sso中旧的内容注释掉就好了。
  • 关于获取广告点击geo location的相关事宜
  • 爱板文章点击问题重现,加日志观察。
  • 所有网站都挂了,发现80端口被封,立刻修改dns转移到124,据mike说有未备案网站,但是我们扫了一遍没有发现,等他们提供具体信息。

2018/01/02

  • bom2buy导出pdf图片不显示
    • 原因是国内服务器edge router里的NAT我们无法控制,导致服务器无法通过外网访问自身静态文件
    • 尝试修改路径,无法完成任务。
    • 加到阿里云cdn,可以。
  • openhw社区无法登陆
    • 发现时inode占满
    • 删除一下inode
  • 网站流量激增
    • 发现linear社区主页有7-8张1M大小的图片
    • 尝试压缩图片以后替换原来的
    • 今天让社区运营测试一下,ok的话全部替换

2017/12/29

忘了 一会儿补一下

2017/12/28

  • 大清早发现bom2buy挂了。。
    • 公网ip ping不通,无法ssh进入,问Mike,说没改什么
    • 无解,找leon,他可以登入,排除了一些可能性,最后发现需要Cheda登入edge router排查
    • 解决。具体原因暂时不提。
  • bom2buy调用的fcapi里的一个获取汇率的功能失效
    • 访问美国服务器可以获得,但是本地不行
    • 汇率获取的api和fcapi是同一个api,只是参数不同,需要plaform排查。
    • 让曾新给汇率获取单独加了个config,目前只有汇率获取走美国服务器,其他还是本地。
  • sendy访问缓慢
    • 经排查是谷歌字体拖慢了速度
    • 无法经常复现是因为网络环境不同
    • 将谷歌字体下载,放入本地服务器上,然后直接从服务器上读,因为总体大小不大,所以可行。亲测成功,sendy速度恢复。

2017/12/27

  • bom2buy国内服务器中文字体

    • 之前在美国服务器放了,但是不知道为什么没有一同移植过来
    • 这次比之前多一个字体,下载下来后放入/var/lib/bom2buy/.fonts
    • 测试成功
  • 在teamdev部署自动发通知邮件

    • 需要python的virtualenv
    virtualenv sendmail
    
    
    • 发现需要有sudo权限的人装一个系统包,不然无法启用pg的python包,找了人帮忙
    • 在virtualenv里尝试运行脚本,成功,邮件收到。
  • eeboard问题排查

    • 期初以为是和之前一样是和缓存,session有关
    • 但是经过长时间的log排查,发现上次遇到的相似问题并不是造成最近卡顿的主要原因。
    • 卢朋也发现strace出来并没有sesson的lock了
    • 排查方向错误
    • 重新思考问题

2017/12/26

  • eeboard拦路虎在safari无法关闭
    • 尝试复现,并不是每次成功
    • 发现过5-6秒后无法关闭,一开始可以,且只有eeboard safari才有问题,其他站,其他浏览器都没有问题。
    • 尝试改成alert(1),onclick也没有执行。判断可能是onclick被覆盖?
    • 尝试将javascript调用放在href里,亲测成功。
    • 发现底部有个脚本每次都overwrite页面中所有的onclick,不想去改那个脚本怕造成其他影响,所以还是把关闭的js调用放在href里。
  • 爱板经验频道点击量大于GA
    • 后台日志的点击数 = 所有点击数
    • 前台显示的点击数 = 所有点击数 - 两次访问间隔小于30秒的点击数(30秒内访问10次只算作一次) - 大型蜘蛛(百度谷歌360等)的访问
    • GA的Page View = 所有点击数 - 大型蜘蛛(百度谷歌360等)的访问 - 小型蜘蛛的访问
    • 目前从日志里的ip分析来看,“小型蜘蛛的访问”占挺大一部分,但是除非自己建一个黑名单机制,不然这个没有太多办法监测。

2017/12/25

  • 上午开会
  • eeboard问题排查
    • 根据截图发现跟上次是完全类似的情况:smart-watermark插件载入session的时候卡住
    • 上次的排查有日志记录,根据上次的排查过程重新走一遍,加日志,看看有没有什么线索
    • 关闭116的eeboard,目前只留140一台服务器,似乎比开两台还稳定。

2017/12/22

  • 上午请假
  • bom2buy国内服务器问题排查
    • 部署完成过后主页打不开
    • 开启日志,发现报错,代码问题,转交开发。
    • 修复后部署,问题修复。
    • 这次出现了较长时间的宕机,因为之前没有回滚机制,回滚都是靠代码回滚。
    • 脚本里保存了一下上一次的代码,但是因为两次部署,覆盖了。。。现在保存前两次。
  • H5广告点击会弹开两次
    • 发现是onclick里写了跳转
    • 去掉多余部分,亲测修复。

2017/12/21

  • bom2buy迁移准备,bug修复
    • 有些内部api调用错误,修复
    • 上传bom失败,据查是platform那边的api问题
    • 确认部署脚本完好
  • 凌晨开始部署
    • lax先关闭
    • www的dns指向国内服务器
    • 数据库迁移
    • 上线
    • 测试基本功能
  • 早上发现页面样式丢失,网站出问题
    • 发现后台缓存服务器权限被puppet修改
    • 修复后验证ok
    • 目前唯一的问题就是fcapi速度较慢,已经交由platform排查。

2017/12/20

  • H5广告投放,代码修改
  • bom2buy的阿里云监控服务器降配续费
    • 原先是10M,带宽调到2M
  • bom2buy的cn服务器日志问题分析
    • 经查是因为forever 加了-s进入silent mode
    • 然后发现newrelic内部的module跟我们使用的有冲突,禁用了newrelic,不需要

2017/12/19

  • bom2buy的cn服务器开始完整测试
    • 需要佳慧帮助一起测试
    • 发现js载入时间较长
    • 马悦发现没有启用cache,修复,验证ok。
  • 阿里云eefocus账户需要充值
    • 这次因为临时开了一个台bom2buy测试服务器,下个月可以不用续费。
    • 需要把旧的服务器转移到新的上,然后可能放在灵动的账号下。
  • 北京那边发现无法登录
    • sso报403
    • 要来了他们的ip,排查发现ip被封
    • 解封,加入白名单。

2017/12/18

  • 移动端广告无法适配排查
    • legacy tag可以自适应,ins不行
    • 看代码,ins强制设定了大小,去除这部分。
    • 测试ok
  • 研究bom2buy哪些可能需要移到国内
    • 厂商logo现在从media.findchips.com获取,需要移到国内服务器然后用media.bom2buy.com来访问本地静态文件,暂时不考虑使用第三方服务
    • analytics.supplyframe.cn

2017/12/14

  • bom2buy新增qa.hampoo域名
    • 需要在haproxy和nginx端添加允许
    • 修改部署脚本要在hampoo里compass
  • eefocus所有网站速度慢分析
    • cacti显示流量激增
    • 所有网站都卡,应该是入口带宽不够
    • 这次在线人数并不多,排查原因。发现有个图片尺寸很大。
    • 这样可能大家载图片的时候占用了全部网速。
    • 用小图片替换了大图。

2017/12/13

  • 跟Equinix HK沟通
  • 跟ChinaMobile HK沟通
  • 跟ChinaUnicom HK沟通

2017/12/12

  • bom2buy上线
    • 涉及到数据库结构更新
    • 首先停掉所有bom2buy服务器,因为没有maintenance page,就直接让他503
    • 本地连上服务器数据库运行脚本
      • 听起来比较惊悚,这个可能要做限制。
      • 确实遇到了问题,因为本地连数据库速度比较慢,有一个很慢的操作会导致db的connection超时。
      • 换到noc上,jumpbox上尝试,也超时。
      • 最后直接在服务器数据库上尝试,成功,不容易。
  • 代码上线,测试新环境
  • 打开所有服务器。

2017/12/11

  • 补全cn.bom2buy.com上缺失的内容
  • 主要是部署环境这一块
    • 之前部署的流程是从一个部署服务器打包,然后整个scp到web服务器
    • 但是现在web服务器在中国,部署服务器还在美国,并且暂时没有迁移的打算,导致scp太慢
    • 尝试直接在web服务器用git更新,但是web服务器缺少一些打包需要的bin,比如compass,甚至ruby,装gem。
    • 总体来看最优办法是rsync,每次rsync更新过的文件,用--delete删除多余的文件。
  • 撰写部署脚本。

2017/11/30

  • 在boluu上部属bom2buy
    • 将cn.bom2buy.com DNS设置到boluu的ip
    • 目前这个cn站进行测试,暂时不能作为prod用,缺少一些东西,数据库也还没同步。

2017/11/29

  • 阿里云上搭建临时的bom2buy的测试环境
  • 阿里云上搭建简易的web portal用于更新测试环境代码

2017/11/28

  • bom2buy测试环境数据库迁移

    • 目前是跟fcl公用一套数据库,需要单独移出,因为bom2buy的数据库结构需要调整
    • 在不同的qa服务器上
    pg_dump -h us-lax-1w-qa-07.vpc.supplyframe.com -p 5432 --no-owner -x -U fcl -f fcl fcl
    cat fcl | psql bom2buy  -h us-lax-1w-qa-06.vpc.supplyframe.com -p 5433 -d bom2buy
    
  • 移动端广告数据异常排查

  • 开会

2017/11/27

  • 处理镜像网站
    • 找到镜像站的托管DC的联系方式,发邮件要求处理。
    • 没有收到回复,DC网站上的邮箱似乎不对,直接联系DC,给了我另一个邮箱。
    • 发邮件要求处理,过了一会收到回复说已停止解析,确认,亲测镜像站已无法访问。
  • puppet重写nginx相关
    • 入口文件一次全部导入,而不是每个站再去软链
    • 在web服务器上控制enable/disable
  • eeboard文章被人抓取
    • 根据被抓的内容找到相关ip

2017/11/24

  • docker适配eehub
    • 不用grunt,直接node app.js,安装grunt会装上一批新的包,然后会有冲突。
    • 修改配置文件
    • 启动
  • stat.local问题排查
  • 提交补充内容给APNIC

2017/11/23

  • bom2buy需要一个cronjob定时检查db发送邮件
    • 不太了解流程,看一下supplyframe的wiki
    • 先ssh进teamdev服务器上,这个服务器是用来给大家各种运行脚本,或者一些线上产品代码之外的任务的。
    • 可能需要virtualenv以不影响其他人的任务,脚本会放在这上面用xxu用户运行。
    • 直接连接ILB的2033端口(bom2buy的postgre),这样不用把db克隆到teamdev上。
    • 等待脚本完毕然后测试。

2017/11/22

  • 主站docker登录问题修复
    • 用nginx的rewrite无法解决,只能想办法尝试改代码里的端口,似乎也不合适。
    • 可以通过 fastcgi_params SERVER_PORT 80 来将传入php的端口号改为80.
    • 可以登录了。
  • 熟悉supplyframe的监控系统
    • grunf + Riemann + Graphite
    • grunf负责收集日志,传到Riemann的流,然后用Graphite显示成图表。

2017/11/21

  • 主站docker登录问题排查
    • 发现是sspmod_saml_Message::processResponse里destination不符合,www.eefocus.com/saml/index/acs/sid-sp vs www.eefocus.com:8082/saml/index/acs/sid-sp ,因为在docker里有端口,想办法解决。
    • nigix有个sub_filter功能,但是发现只是最后显示的时候替换string而已,内部还是带端口的,无法使用。
  • 帮同事配置mac的扫描
    • 尝试用原有办法配置,扫描失败!
    • 扫描仪无法连接到mac
    • 经查发现最新版本的10.13系统取消了ftp
    • 尝试用smb,也不行,smb连windows都连不上,应该是打印机内部smb有问题。
    • 找第三方软件给mac开启ftp服务,找到。
    • 重新配置,有坑,打印机端的路径应该是/,因为在ftp断已经配置了默认路径,打印机端直接进去就行,不然会连不上。
  • apnic的申请需要补充资料
    • 准备资料,找人签字,提交。
  • 在新开的灵动阿里云新建实例
    • 共7个实例,每个区域1个。

2017/11/20

  • 联系CNNIC关于最后一些不确定的问题
    • 得到回复说是cnnic申请的ip不能在香港用
    • 重新换apnic申请
    • 联系apnic,确认ip可以在香港用,5天审核,价格1500AUD左右。
    • 开始填表
    • 提交
  • 申请阿里云服务器用作bom2buy的monitor环境
    • 需要财务先充钱
    • 然后需要用灵动的账户,但是阿里云不能修改发票抬头
    • 重新申请阿里云账户,处理了一些转账的事情。。。
  • github merge 回滚相关事宜

2017/11/17

  • 继续docker主站文章页配置
    • 现在主页和文章页可以跑起来,剩下一些细节,比如登录注册,有些问题。
    • 然后因为功能比较多比较散,需要多测试。
    • 老主站尚未处理。
  • 阿里云服务器搭建squid代理
    • 方便国外测试国内打开网页或者其他连接的速度
    • 目前放在了阿里云的jumpbox上,有公网ip
    • 限制了特定ip的连接。
  • windows配置cirmall docker
    • entrypoint.sh文件要改成unix格式,否则报错
    • 配置文件有个路径错误
    • 现在出现一个mysql的lib的语法错误

2017/11/16

  • eeboard测试环境登录失败
    • 提示SAML文件找不到
    • 这个应该是在ssp-client里的,看了下各个配置都完好
    • 经验 bbs都没有问题,只有wordpress有问题。进代码看是不是哪里没有load进去。
    • 发现文章也打不开。
    • 清了下memcache,好了。
  • 移动端广告impression异常排查
  • 全站搜索windows端docker适配修复

2017/11/15

  • 继续docker配置cirmall
    • 发现node_modules是空的
    • 感觉是npm install失败
    • 可能是volume挂载的时候覆盖了node_modules
    • 把npm放在脚本里,然后cmd执行这个脚本,这样就能在mount之后运行cmd。
    • 亲测成功。但是这样导致每次修改都要重新npm install
    • 想别的办法,复制package.json进docker,然后在Dockerfile里npm install。
    • 亲测成功

2017/11/14

  • 申请ASN和IP段
    • 填表
    • 找到一个all-in-one的表,但是只有中文
    • 把部分翻译成英文,因为需要国外那边填一些东西。
  • docker配置cirmall
    • node和nginx php不同
    • 发现pm2启动后container直接退出了
    • 应该是因为前台没有东西执行,pm2在后台。
    • 换成node app.js启动,可以成功。
    • 但是网站无法访问。

2017/11/13

  • 申请ASN和IP段
  • docker配置修复
  • 社区压力大
    • 封了一些ip

2017/11/10

  • docker适配主站
    • 难点在新主站老主站和文章页同一个url要运行不同的代码
    • 外层的nginx需要做反向代理,这样就需要在php的image里加nginx。
    • 尝试其他办法,试试看能不能塞到一个nginx里,这样就不需要反向代理。
  • 主站nginx配置比较凌乱,尝试清理
    • 之前清理过一次,但是导致老主站功能出现问题,故没有继续下去。
    • 重启之前清理的任务
  • cirmall论坛一直会有奇怪的广告请求
    • 都是一些1x1的pixel,应该是那些网站注入来偷导流量的。
    • 每次都不一样,感觉有一批。
    • 应该是被挂码了,查一遍代码,发现木马,清除,更新代码。广告还在

2017/11/09

  • 测试环境升级node
    • 之前的node不是用n或者nvm装的,无法直接升级。
    • 尝试更新npm,更新之后npm坏了,应该是node版本不兼容。
    • 尝试先更新pm2,失败。
    • 先删除现在的node,然后用yum先安装nodejs,然后更新npm,然后安装n,然后更新pm2。似乎可以。
    • 把/usr/bin/里的node,pm2,npm都软链到/usr/local/bin里,版本都对了。
    • 新版本pm2语法不同,json启动文件的端口部分整合到了env里,要稍作改动。
  • eeboard bbs url跳转
        if ( $request_uri ~* "/bbs/portal.php" ){
                set $start_uri O;
       }   
    if ( $args ~* "mod=topic&topicid=2" ){
                set $start_uri "${start_uri}K";
       }   
    if ( $start_uri = OK ){
          rewrite ^  http://www.eeboard.com/bbs? last;
       } 
    

2017/11/08

  • 阿里云测试环境web服务器puppet配置
    • 之前lb服务器nginx用puppet可以跑了
    • 直接用web的逻辑,装不上,提示yum repo base section已经存在。
    • 尝试修改yum源,不行
    • 发现在yum配置里有多个配置文件,有冲突,跟puppet无关。
    • 尝试用centos默认源,不走阿里云源头。
    • 重新跑puppet,成功
  • 直接联系联通,咨询data center相关事宜。
    • 打电话,没人接。
    • 换个电话,要我拨分机号码,没有。
    • 上周网上找到email地址,发过去,一周没有回音。
    • 重新找个email地址,找到一个售后客服,说明情况,让帮忙转到销售。
    • 居然回邮件了,稍微说明了下情况,等待回复。

2017/11/07

  • 广告有个文字链客户无法统计
    • 我们这里可以统计到,但是客户那边不行
    • 怀疑是链接跳转导致不能统计
    • 但是有一些其他带跳转的链接是可以统计到的
    • 跳转的时候后面的参数没有问题,都保留着。
    • 仔细看一下链接,发现第一个参数和第二个参数之间用了?不是&,这样就只读到了第一个参数。
    https://igbt-driver.power.com/zh-hans/products/scale-idriver-ic-family/scale-idriver/?adsource=aden_eefocus_728x90_scaleidriver?utm_campaign=scale-idriver&utm_medium=display&utm_source=eefocus&utm_content=text&utm_term=igbt+scale-idriver+motor+supplyframe+cn&AdSource=Aden_EEFocus_ScaleiDriver_TextAd
    
    应该是这样的
    https://igbt-driver.power.com/zh-hans/products/scale-idriver-ic-family/scale-idriver/?adsource=aden_eefocus_728x90_scaleidriver&utm_campaign=scale-idriver&utm_medium=display&utm_source=eefocus&utm_content=text&utm_term=igbt+scale-idriver+motor+supplyframe+cn&AdSource=Aden_EEFocus_ScaleiDriver_TextAd
    
  • 测试环境升级node
    • 尝试用npm安装最新的n
    • 用n安装8.7的node
    • 目前测试环境两个版本共存,尝试让pm2用8.7。

2017/11/06

  • 继续配置docker
    • 配置moore8,遇到一些问题。
      • nginx配置文件里fastcgi_params.sso需要改成fastcgi_params_sso
      • Primary script unknown,查看代码路径。
      • 白屏 可能是数据库无法读取 database.php里mysql改成mysqli,或者在Dockerfile里加上mysql的ext
    • 打包moore8静态文件,放入199

2017/11/03

  • 继续查阿里云封禁网站的问题
    • 发现似乎不是域名的拦截
    • 应该也不是dns
    • 可能是端口,尝试端口换成8080,没有被禁,应该就是80端口需要备案的网站才能访问。
    • 换成8080无法解决问题,很多内部调用还是走的80端口,做端口映射是最后的选项。
    • 跟美国那边讨论解决办法,可能会在美国的服务器上部属qa。听说是美国他们也会操作这个qa,我们这边应该继续用我们自己的。
  • 帮助同事配置docker
    • windows的bat文件一直运行失败
    • 排查发现是git命令执行失败
    • 把git的路径放到环境变量里,重试,成功。
  • 全站搜索不相关的关键词。
    • 居然有人来刷我们全站搜索的关键词,比较惊讶。
    • 直接手动筛选了几个关键词,把点击数改到很高,一般超不过。

2017/11/02

  • 导出老主站后台的数据

    • 厂商数据,所有“高校”
    • 数据库3306端口,eefocus_vendor,trade = 22
    select name,c_basicinfo.url,deptname,c_deptinfo.contacter,phone,c_deptinfo.email from c_basicinfo,c_deptinfo where  c_basicinfo.id = c_deptinfo.mid and  trade = 22 INTO OUTFILE '/tmp/school_3.csv' FIELDS TERMINATED BY ',';
    
  • 在阿里云上部属测试的网站访问不了了

    • 提示没有备案
    • 目前用的是已经备案的域名,比如 www.moore8.com ,但是还是提示没有备案,被阿里云拦截,怀疑是因为域名绑定的ip不一样。
    • 域名换成 www.moore8.qa ,还是被拦截,查下来发现可能是服务器需要备案?
    • 想其他办法。
    • 不过puppet配置还是可以继续。
  • 其他

    • 配置windows测试机
    • 清理eeboard webinar
    • bom2buy更新文件等

2017/11/01

  • 上午开会
  • 测试环境docker配置
    • 各种失败
    • 尝试连翻墙wifi,失败。
    • 卢朋把包下到服务器,然后装,成功。太麻烦。

2017/10/31

  • 短链接点击导出有空ip
    • 排查日志,发现日志里有空ip。
    • 看下日期,10/27 ~ 10/29之间发生。
    • 应该是因为我们取消高防ip,然后nginx的forward配置没有改回来导致的,现在已经修复了。

2017/10/30

  • 联系各家IDC,沟通一整天,根据supplyframe要求,要一个路由器一台服务器做测试。
    • IDCS,天互数据,联通,西安,可以提供测试环境。
      • 等待提供测试环境。
    • CNLINKCHINA,互联通,苏州,已经提供测试环境。
      • 美国优化,链接很好,美国200ms,但是国内500ms。
      • 中国优化,尚未测试。
    • 互联港湾,北京,可以提供测试环境。
      • 等待提供测试环境。
    • 云网时代,广东,无法提供测试环境。
    • 乐拓数据中心,苏州,无法提供测试环境,态度不友好。
    • 网域,上海,尚未答复。

2017/10/27

  • 帮同事装打印机

    • 同事的电脑mac版本不同,重新下驱动。
  • windows docker配置

    • 把之前的search加一个windows版本。
    • 尝试帮助同事搞定windows上的docker配置,失败。
  • 完成bom2buy数据库定时任务的配置

    • 可以在postgre里写一个function,然后外面脚本调用这个func
    • 也可以直接在cron里执行命令
    CREATE OR REPLACE FUNCTION delete_function()
    RETURNS void
    LANGUAGE sql
    AS $body$
    DELETE FROM lists
    WHERE user_id = '835cf67a-1b93-45f8-acc2-c2b07c95f3e6' and name = 'Bom范本' and last_visit < now() - interval '1 
    month';
    $body$;
    
    psql postgres  -d bom2buy -c 'SELECT delete_function()'
    
    psql postgres  -d bom2buy -c "DELETE FROM lists WHERE user_id = '835cf67a-1b93-45f8-acc2-c2b07c95f3e6' and name = 'Bom范本' and last_visit < now() - interval '1 month';"
    
    • 因为这需要装在postgre用户下,但是我没有supplyframe数据库服务器的sudo权限
    • 把代码提供给国外同事,让他们负责上线。

2017/10/26

  • Docker配置search.eefocus.com
    • 照着之前的配置先配
    • 发现nginx加载了一些不必要的配置,因为有些php的container不存在所以nginx无法build。
    • 每次只复制需要的conf过去,但是windows不支持mount文件,继续想办法,目前用老办法测试。
    • 发现连不上本地数据库,换成测试环境数据库,可以。
    • search用的是5.4.19,尝试php5.6报错,换回5.4最新版,还是报错,换成5.5,可以。
    • search基本完成。
  • bom2buy测试和prod都需要加一个定时任务
    • 每天固定删除某个表里某些数据。
    • 通过一个字段判断是否超过一个月,是就删除。
    • 不太熟悉postgre,大概了解一下。
  • 停止高防ip的使用
    • 全部解析到高防ip的网站,修改dns配置解析到新ip。
    • 所有站过一遍,看有没有其他需要修改的地方。
    • 简单沙盒测试,确认基本功能没有问题。

2017/10/25

  • 社区异常排查
    • 卢朋发现st社区被人黑了,被植入了恶意代码
    • 跟昨天的发现吻合!
    • 仔细研究恶意代码,发现是搜索引擎劫持,所有360蜘蛛来爬都会抓到赌博网站。
    • 过我看360搜出来也没有看见赌博内容,看起来目前没有被污染。
    • 需要找到这个木马的源头。可能比较困难。
  • 阿里云puppet配置
    • 自动安装nginx基本完成

2017/10/24

  • 广告数据异常排查

    • 文字链的点击统计和客户那边统计相差比较大
    • 文字链用的是短连接,已经筛选排除掉了搜索引擎的访问,但是相差还是比较大。
    • 有一次跳转 会损失一部分 但是不至于这么多。
    • 有一点是GA统计的是session,我们统计的是click。
    • 根据页面停留时间排查。
    • 好像没有办法获得页面停留数据。
  • 社区服务器突然压力高

    • 因为社区较多,需要逐个社区排查问题。
    • 突然想起以前有一个把所有社区全部扫一表然后列出访问ip排序的脚本,利用。
    • 没有发现过多刷屏的ip。
    • 卢朋发现sso访问超高,不知道是否有关联。
    • 换个思路,查有没有某个时间段访问突然暴增,发现st社区在11点左右访问激增。
    253 10:38:
    275 10:39:
    272 10:40:
    271 10:41:
    294 10:42:
    282 10:43:
    227 10:44:
    276 10:45:
    205 10:46:
    274 10:47:
    250 10:48:
    168 10:49:
    296 10:50:
    171 10:51:
      1 :10:52
    822 10:52:
      3 :10:53
    1582 10:53:
    1968 10:54:
    4924 10:55:
    2547 10:56:
    4560 10:57:
    994 10:58:
    1503 10:59:
    1883 11:00:
    1611 11:01:
    1810 11:02:
    1438 11:03:
    1093 11:04:
    1658 11:05:
    1590 11:06:
    2624 11:07:
    1384 11:08:
    1639 11:09:
    2222 11:10:
    2049 11:11:
    1928 11:12:
    1082 11:13:
    400 11:14:
      1 :11:15
    147 11:15:
     68 11:16:
    128 11:17:
    120 11:18:
    283 11:19:
    
    • 但是并没有查到什么特征,也没有听说有什么活动进行。比较费解。明天继续查。
  • 开会,讨论docker。

2017/10/23

  • 在wiki上记录如何在openx里创建html5的banner。
  • 新版sendy上线
    • 替换旧sendy和新sendy。
    • 域名指向新sendy。
  • 继续阿里云qa配置puppet
    • 基本的环境搭好,确认agent可以获取到master的catalog
    • 第一步准备loadbalancer需要的配置
      • nginx (主配置nginx.conf,upstream.conf,以及各个站点的配置,想放在一个文件里。)

2017/10/20

  • eeboard文章阅读数异常
    • 有几篇文章阅读数被重置。
    • 查询数据库log发现是在9月30日被重置的,那天我们做了一些缓存相关的操作。
    • 修改数据库数据,恢复阅读量。
    • 发现刷新页面后,阅读量又被重置为几百,感觉是memcache里的数据。
    • 修改数据库后,清空缓存,刷新页面,发现数据正常。
    • 阅读数是用一个wp-postviews插件完成的,需要开发配合看看这个插件的逻辑,是不是把缓存里的数据存到数据库了。
  • 广告相关
    • 收到客户要求需要投递HTML5的广告,但是没有相关js。
    • 只能把所有h5相关文件上传到七牛,然后把html页面放到iframe里,测试发现广告可以正常展示。
    • 但是这样tracking url没法修改,没法修改iframe里的目标链接。
    • 尝试把html代码放入,把所有图片改成url,添加目的地url,发现可行。
    • 但是太麻烦,寻找其他快捷一点的办法。目前没有,可能得找Igor帮忙。
  • 帮同事配置扫描仪
    • 扫描仪直接扫描到mac电脑。
    • 完善wiki。

2017/10/19

  • 全站搜索出现垃圾关键词
    • 目前没有一整套关键词体系
    • 如果要做关键词过滤,需要去每个站的数据库中搜索一遍,严重降低了速度。
    • 暂时没有很好的办法,删除了一些垃圾关键词,然后调高了合理关键词的次数,确保不会被轻易的超过。
  • eeboard宕机问题
    • 上次发现是因为和缓存交互太多,这次发现还是这个情况。
    • 细查发现宕机之前访问量有增加,但都是在正常范围内。
    • 再细查,发现宕机前百度蜘蛛来的多了。
    • 淡季每小时1500左右,卡机前到15000,最高接近30000。
    • 但是按理百度也不应该造成宕机,继续查。
    • 卢朋发现配置文件被恶意篡改了,上次出现问题的时候没有被改。改回来以后继续观察。

2017/10/18

  • 美国那边让我加快阿里云qa环境的puppet配置
    • 跟美国语音。
    • 他们希望他们的一整套自动化运维系统能用在eefocus上
    • 继续puppet配置,但是agent始终无法同步master。
    • 发现manifest是正确的,本地也是可以同步的,但是切换到agent-master模式就不行。
    • 测试两台服务器的连通性,可以连通。
    • 查看配置,正确。
    • 想到可能是权限的问题,之前的配置文件路径有软链,尝试去掉软链,成功。

2017/10/17

  • sendy在git上没有代码
    • 将config.php,uploads文件夹,jobfetch做软链
    • 导出线上sendy-new代码,sendy代码,和纯净3.0.4sendy代码,上传到git
    • 写脚本,以后sendy-new用脚本更新
  • 研究BGP,ASN,GRE Tunnel等
    • 美国需要在国内服务器和美国建一条gre tunnel
    • 但是目前所有vpn端口都被禁
    • 联系各个dc看看是否有解决办法。

2017/10/16

  • 新版sendy经测试发现无法发送邮件
    • 尝试打印发送时的参数,并未发现和现在有什么不同,新旧两个版本的“是否进行ssl验证”参数都是true。
    • 但是EHLO命令变成问号
    • 打印debug trace,发现smtp connection failed。
    • 尝试检查smtp配置,发现都正常。继续查看旧版本代码,发现在helpers/class.phpmailer.php里有做改动,将“是否进行ssl验证”强制改成了false。
    • 在新版加上同样的逻辑,成功。因为打印参数的地方其实不是最终执行smtp connect的地方,在另外的地方,也就是connect之前又把这个参数改掉了,所以我们打印出来的都是true,但是在发送前被强制改成了false,所以旧版的smtp因为某些原因没有走ssl。新版根据这个逻辑,也不走ssl了。
  • 周末广告数据异常
    • 得到两个异常的zoneid 211和269
    • 未发现同ip段的大量点击
    • 发现有一个user agent产生了110个点击,告知产品部。

2017/10/12

  • 升级sendy

    • 新版本 sendy-new.eefocus.com,这是纯净的sendy,因为不知道我们之前改过什么,所以先用纯净的测试,看看是否有功能缺失。
    • 重新开一个新数据库,是从现有sendy数据库用mysqldbcopy直接复制的
    • 修改配置文件
      • 数据库配置
      • url配置
    • 移动uploads文件夹
      • 发现不需要移动,因为图片还是走的sendy.eefocus.com
    • 运营进行测试
  • 测试sendy

    • 新版本无法发送邮件
    • 发现EHLO命令无法解码,变成了??????
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: xsasl_cyrus_server_create: SASL service=smtp, realm=(null)
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: name_mask: noanonymous
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: watchdog_pat: 0x7f39a6b2d1d0
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: vstream_fflush_some: fd 15 flush 35
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: vstream_buf_get_ready: fd 15 got 286
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: < unknown[xx.xxx.xxx.xxx]: ??????
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: match_string: ?????? ~? CONNECT
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: match_string: ?????? ~? GET
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: match_string: ?????? ~? POST
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: match_list_match: ??????: no match
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: report unknown command to all milters
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: milter8_unknown_event: milter inet:127.0.0.1:20118: unknown command: ??????
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: event: SMFIC_UNKNOWN; macros: (none)
    Oct 12 17:33:11 nginx postfix/smtpd[26116]: skipping event SMFIC_UNKNOWN for milter inet:127.0.0.1:20118
    

    正确的是这样的

    Oct 12 17:33:42 nginx postfix/smtpd[26116]: xsasl_cyrus_server_create: SASL service=smtp, realm=(null)
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: name_mask: noanonymous
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: watchdog_pat: 0x7f39a6b2d1d0
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: vstream_fflush_some: fd 9 flush 35
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: vstream_buf_get_ready: fd 9 got 24
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: < unknown[xx.xxx.xxx.xxx]: EHLO xx.xxx.com
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: report helo to all milters
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: milter_macro_lookup: "{tls_version}"
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: milter_macro_lookup: "{cipher}"
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: milter_macro_lookup: "{cipher_bits}"
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: milter_macro_lookup: "{cert_subject}"
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: milter_macro_lookup: "{cert_issuer}"
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: milter8_helo_event: milter inet:127.0.0.1:20118: helo sendy.eefocus.com
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: event: SMFIC_HELO; macros: (none)
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: skipping event SMFIC_HELO for milter inet:127.0.0.1:20118
    Oct 12 17:33:42 nginx postfix/smtpd[26116]: match_list_match: unknown: no match
    
  • 文章抓取一直抓到重复的

    • 因为现有逻辑只是判断标题是否已经在文章数据库存在
    • 编辑会修改标题,所以旧文章发现标题不存在,就重新被收录了一遍。
    • 增加通过文章链接去重的逻辑,新开一个数据库存所有已经处理过的链接。

2017/10/11

  • 继续寻找丢失文档
    • 发现左侧内容并不是调用的文章
    • 名师专栏内容是直接存在该页面的数据库中,不调用其他
    • 原文无处可寻,但是相关内容可以找到。
  • 阿里云qa服务器发现domain name错误
    • hostname -d无输出
    • 查看dns配置,没有问题
    • 发现/etc/hosts内hostname的full qualified name写反了。应该是 192.168.0.58 web-00.qa.e2b.ay.eefocus.com web-00,之前是192.168.0.58 web-00 web-00.qa.e2b.ay.eefocus.com

2017/10/10

  • 上午开会
  • nginx的记录的ip想办法去除代理的ip,只显示真实ip。
    • 在入口处的http_x_forwared_for被设置成proxy_add_http_x_forwared_for,这个步骤会把上层代理添加到http_x_forwared_for,所以在网站服务器也就是下一跳的log会显示代理,而nginx入口这里不会。
    • 目前去掉了这个,所以http_x_forwared_for就是真实ip。
    • 另外保留了之前修改的设置realip的逻辑,所以deny,allow还是可以继续用。
    • 目前的情况是在网站日志里看不到代理。
    • 要看代理的话可以在入口处开启。
  • 寻找丢失文档
    • http://tmtext.eefocus.com/ 上有些内容无法访问,但是需要看一下是否还是需要。
    • 重新开启了一些无法访问的链接。
    • 左侧名家专栏寻找数据源。
      • 找到数据源,但是只是用来展示的一些简介,具体的文章内容目前还没找到。

2017/10/09

  • 阿里云相关事务
    • 余额不足,找财务充值。
    • 得知现在充值需要走流程了,发了邮件给董利军和卞云慧申请,同意后充值。
    • 之前两万元的高防ip开合同,检查,发给财务确认。
  • 怀舒反映eeboard线上图片有问题
    • 上传图片,覆盖原有的。
  • eeboard经验频道线下测试环境卡死
    • 发现服务器收到请求,只是处理很慢
    • 排查哪里出了问题,发现数据库获取数据很慢,判断是数据库问题。
    • 进入测试环境数据库,cpu正常,但是内存剩余很少,重启3306,恢复部分内存,页面恢复加载。应该是有部分代码吃内存导致,需要配合开发有空的时候检查一下。线上没有这个问题,线上内存够。

2017/09/30

  • 爱板服务器经常压力突增导致无法访问
    • 查看日志没有看出有异常,也没有突然的请求量突增。
    • 一阵一阵,有时候突然好了。
    • 在正常情况下,尝试让编辑部复现,让他们多发点文章看看,也没有见到有异常。
    • 压力高的时候跟星宇排查发现缓存有时候取不到,走了数据库,开了大量链接去数据库,流量也大增。基本符合cacti图的情况。
    • 怀疑是缓存服务器的问题,正常情况下关闭缓存服务器,发现压力增高,流量增大,重新打开以后恢复,目前看来是这个问题。
    • 增加一个备用的缓存端口,因为只有一台真正意义的缓存服务器,所以在那台机器上新开了个端口,wordpress会分散写入两个缓存,而且一个宕了会去写另一个。
    • 目前看来稳定。继续观察。
    • 问题未解决,继续查,但是目标锁定缓存,需要查为什么缓存读写突然增加。

2017/09/28

  • DDOS解决方案,过程略过,或者以后再补。
  • 用了高防以后很多nginx层的ip限制失效,修复。
    • center.eefocus.com,设定有些页面只能公司访问,由于用了$remote_addr,读到了高防,尝试换成$http_x_forwarded_for。
    • url.eefocus.com,照着center的逻辑加在了url里。
  • focussend发不出邮件
    • 联系focussend技术客服,他们系统升级,全部换成webservice,我们还在用旧的smtp服务。
    • 需要将我们的ip加入他们系统才能发送邮件。

2017/09/27

  • 遭受ddos攻击,寻找解决方案
    • 联系机房Mike,了解攻击大概情况
      • 总流量达到6G,交换机崩溃。
      • 影响到了机房其他客户,机房收到投诉,收到运营商电话通知。另外美国supplyframe在那边的机器也受到波及,因为是在同一个交换机下。
      • 如果继续被攻击,可能要断线我们的机器。
    • 寻找解决方案
      • 各个云平台的高防ip服务了解
      • 机房Mike帮我们联系试用
  • 开会讨论数据平台相关事宜

2017/09/26

  • sso线上代码跟github差异比较大了
    • 弃用master,develop
    • 新开分支,让开发人员以后都用从新分支下开自己的分支做开发
    • 修改sso线上线下更新代码脚本
  • 完善cacti
    • 因为遭受ddos排查比较麻烦
    • 所有有对外ip的服务器都加进了cacti,开启了traffic相关的图。
    • 192.168.0.1 192.168.0.2 192.168.0.42 192.168.0.211
  • 重新开启ELK
    • 为了方便排查eeboard日志量上升,服务器压力大的问题
    • 修复了一些elk的问题
    • 导入了7-9月的eeboard日志进elk
    • 以后eeboard日志每天定时收录进elk
    • http://kibana.eefocusops.com/ 配置host 61.155.217.124 kibana.eefocusops.com

2017/09/25

  • 早上技术部例会
  • 帮前端查看github代码不一致的问题
    • 发现线上的asset文件夹不是软链且git上不存在,而线下是软链,导致asset内容测试环境不显示。
    • 将线上asset内容拉下来放上git,线下重新拉一份。
  • 下午跟美国运维Leon开会
    • puppet重构
    • 国内boluu服务器架构进度
    • supplyframe总体架构再过一遍
  • 跟机房的mike通电话讨论ddos的事情
    • 他们那里没有可以提供的服务
    • 再次遇到可以升带宽

2017/09/22

  • 全站搜索bug修复
    • 发现已经删除的文章还是会再被删除
    • 新建的已删除数据表没有起到作用。
    • 发现我用的array_column只有在php5.5里有,我们用的是5.4
    • 换成array_map。
    • 解决。
    • 进行一次线上整合测试。没有发现问题。
  • 有人报最近广告ctr异常低
    • 我们需要五倍的展示量来获得期待的点击量
    • 看了下7-9月确实impressions有涨,但是clicks稳定
    • 继续详查user agent各种。
  • 大概想了下docker测试环境的大概架构
    • 整合jenkins+github+docker
    • 开发人员每次push到自己的一个github分支上,触发jenkins,jenkins在测试环境新建一个docker image,分支删除时销毁image。这样多个开发者就可以在测试环境运行不同的分支代码。
    • 细节待定。
    • 一些共享内容:数据库(独立or共享?),配置文件,缓存等等,如何处理。

2017/09/21

  • eeboard服务器不太稳定
    • 日志量是以前的三倍
    • 请求量明显增多。
    • 要来了GA的权限,看了下真实流量并未增加太多。
    • 应该是各路刷子看我们最近做的不错都来刷了,目前没有封的必要。
    • 百度蜘蛛明显来的多了。
  • 研究正则
    • 需要删除最后一个点
    • 正则不熟,各种尝试,perl都试了
    • 最后刘卓发现并不需要“最后”一个点,只需要删除第4个点,因为点的数量是确定的。
    • 用sed,可以设定第n个匹配。
    • 解决。

2017/09/20

  • 同事反应wifi无法连接
    • 看了一下发现ip池满了
    • 本来是150个ip,满了,增加到200个。前50个要预留给测试环境。
    • 再满只能再开网段了。
  • 全站搜索打不开
    • 发现服务器load不高,代码数据也都正常。
    • 怀疑阿里云搜索端的问题,ping可以ping通,但是curl接口无法获得数据。
    • 卢朋刷新了一下路由表,等了一下,发现好了。不确定是不是路由的原因。

2017/09/19

  • cirmall用户名不匹配问题继续
    • 查旧文档,看是否有当时的记录。
    • 大概了解当时的合并过程。
    • 尝试复现这个情况,注册用户然后强行改用户名,成功复现。
    • 据说应该会弹出合并选项,没有看到。
    • 查看这些用户的注册时间,发现新的只有邮箱注册的。
  • 开会
    • 讨论关于数据中心
  • focussend发不出邮件
    • 查看focussend后台,发现可以发送
    • 怀疑是focussend服务器smtp有问题。
    • 尝试telnet测试,发现没有响应
    • 联系客服,说帮我们看看,也没给出解决办法。
    • 过了一会儿好了,也不知道是不是他们做了什么操作。

2017/09/19

  • cirmall用户名不匹配问题
    • 查询数据库日志,没有看到相关操作。
    • 让编辑问用户是一直登不上还是突然登不上
    • 有一个人回答是cndzz论坛整合进cirmall之后没有登录过,这是第一次
    • 比对与非的用户系统和cirmall论坛的用户系统发现8w多cirmall论坛用户中有1w多和与非的账户不匹配。
    • 大家讨论修复方法,可以直接把cirmall数据库中的用户名改成和与非相同,相比改与非的用户名,改cirmall的似乎更稳妥?
  • 老主站添加的公司不显示在bom2buy上
  • 上海办公室翻墙wifi无法连接
    • 远程指导上海同事操作
    • 发现不是之前的ss ip ping不通
    • 指导同事登入路由器后台重启一下ss服务,修复。
  • 排查社区突然load变高

2017/09/18

  • 断电后修复
    • 早上过来有人报上不了网
    • 发现电闸跳了,推上去
    • 测试机器全部开启
    • jingyan.eeboard.com很慢,排查
      • 发现一个调用eeboard的api卡住,用curl_get导致页面加载不出
      • 继续排查eeboard,发现虚拟机本身有点问题
      • 重启虚拟机,解决。
  • 全站搜索删除
    • 社区 + 自测
    • moore8 + 自测
    • yinglai + 自测

2017/09/15

  • 全站搜索删除继续
    • cirmall + 自测
    • eefocus 资讯 + 自测
    • eefocus 博客 + 自测
    • eefocus 资料 + 自测

2017/09/14

  • www.sensors-iot.com 问题解决,警报解除,确实是被植入了恶意代码。
    • 跟干净代码对比了下
  • 全站搜索删除继续
    • eeboard 资料 + 自测
    • eeboard 商城 + 自测
    • eeboard 经验 + 自测

2017/09/13

  • 查dnspod的改动,无迹可寻。
    • 不像是人为改的,可能是dns失效自动停了。
    • 也可能是sendcloud新加的要求,这个mx是收信用的,我们用的大部分功能是发信。
  • 继续查www.sensors-iot.com的问题
    • 谷歌重新验证后还是警报
    • 更新线上代码,再次提交
  • 全站搜索删除文章
    • 开始重写eeboard删除的现有逻辑
    • 新建数据库保存所有已删除的
    • 每次搜索删除文章的时候传入已删除的id,放在not in里,获取所有未在阿里云删除的已删除文章。

2017/09/12

  • bom2buy www跳转问题
  • http://www.sensors-iot.com/ 被各浏览器禁了
    • 360webscan, 百度站长工具查验无问题
    • 查看代码,暂时没看出问题
    • 开通谷歌的站长工具查验,提示有问题,提交申请重新验证。
  • 文章页158开启cacti,之前由于权限原因cacti一直没开,所以文章页排查问题不方便。

2017/09/11

  • 上午
    • 开会
  • 下午上海bom2buy办公室检查翻墙失效原因
    • 移除了多余的hub,无效
    • 猜测是路由器版本问题,更换备用路由器,无效
    • 发现是shadowsocks服务器ping不通了,他们的铁通网连不上我们的代理了。
    • 换备用shadowsocks服务器,测试成功
    • 到火车站单双告知github图片载不出,远程指导单双把github的图片域名加到代理列表里。成功。

2017/09/08

  • 所有站点,文章删除以后,都需要在搜索里面删掉
    • 之前只做了论坛的,要拓展到全局。先从eeboard开始吧。
    • 目前没有event机制,还是只能每个站定时清一下
    • 无法解决的问题1:如果文章彻底从数据库中删了,搜索没有办法获取到,因为现在是定时把某一个时间段的文章检查一下是否标记了删除,如果文档都不存在就没法删。
    • 无法解决的问题2:如果是很老的文章被删除,无法在搜索中删除。除非获取“所有存在于搜索中的文章”和“目前数据库中的所有文章”,做对比删除。这个开销可能有点大,每次要在文章数据库中搜索所有符合要求的文章id。

2017/09/06

  • 继续阿里云QA配置puppet
    • step1: 尝试用puppet在lb-00上输出test message
    • step2: 整合进hiera
    • step3: TBD
  • 广告数据异常,排查,封IP
    • 看了下应该是刷文章的时候刷到了广告
    • 这点刷的量对于文章来说很少,但是在广告里就比较明显
    • 目前只能封ip,暂无其他解决办法。
  • 分析eefocus用docker的可行性
    • step1: 找开发了解开发环境的难处 in progress
    • step2: 对症下药

2017/09/05

  • 文章页底部相关社区不显示
    • 发现缓存返回的值是false,判断可能缓存哪边出错
    • 加判断如果返回false就不走缓存,发现还是false
    • 那就是请求本身返回了false,然后存进了缓存。
    • 查看请求,发现多了个问号,然后发现是截取query的时候把问号也截进去了。
    • 修复,验证ok。
  • 注册邮件发不出去
    • 查看sendcloud配置,没有问题
    • 尝试telnet,没有问题
    • 问产品组要账号密码,但是负责人不在,要过一会儿
    • 用telnet测试发邮件,authentication failed,不确定是不是我操作哪里的问题。
    • 联系sendcloud客服,一番来来去去,也没什么进展。
    • 负责人回来,拿到账号密码,登录进去,发现api user被冻结,因为一个dns的配置。
    • 改好dns。成功
    • 发送邮件,成功。

2017/09/04

  • 广告数据异常,排查,封IP
  • 阿里云域名转出转入,账号合并,域名续费。
  • 拦路虎改回10s
  • 文章页底部相关社区不显示
    • 调查发现158服务器可以显示,161和182不行
    • 测着测着发现158也不行了,应该是缓存的问题
    • 发现没有请求到111服务器老主站上,应该是走了缓存
    • 进代码里查,发现配置都正确
    • 暂无头绪,明天继续

2017/09/01

  • 在阿里云上弄一个压力测试的环境
    • ECS 400RMB + RDS 400RMB
    • 感觉没有必要
    • 先在测试环境看看能不能抠出差不多的配置来
  • 全站搜索修复
    • 社区垃圾帖删除之后需要从搜索中也删除,不然垃圾帖标题内容还是会在搜索中出现
      • 但是搜索内容已经提交到阿里云
      • 加一个接口,用cron定时调用删除。
      • 想了下这种情况,如果删帖会发出一个rtu,搜索可以接收,用rabbitmq这种监听着
        • 有点overkill了
  • 新闻自动抓取
    • 编辑反应最近抓取的文章少了
    • 检查发现有些抓取页面的文章不按时间排序了
      • 将普通抓取模式改成hard模式,不比对时间,只剔除重复的其他都抓。
      • 新增几个站点,ofweek的前5页。

2017/08/30

  • 阿里云降配
    • 尝试镜像导入功能, 发现镜像导入后不能删除,保留镜像要收费,一个月15左右,可以接受。
    • 重新开了三个实例,附上原来的ip。
    • 新实例无法ssh
      • 重启无效
      • systemctl无效
      • 所有进程都没有启动
      • 发现克隆的时候在/etc/fstab里配置了挂载硬盘 但是新服务器没有这块硬盘
      • 在/etc/fstab 删除 解决
    • mysql无法启动
      • pid路径权限
  • 给同事Mac装打印机驱动
    • 发现自己装mac的经验不适用于同事的mac
    • 重新摸索,发现解决办法
    • 修改wiki Mac安装打印机

2017/08/29

  • cirmall间歇性502排查
    • 发现是数据库连接失败
      • 将数据库最大连接数调至10000
      • 等待时间从120s降低到60s
    • 发现cirmall的访问量莫名地大,每分钟约2000个请求,看了下单个页面的请求数比较多,没什么问题。
  • bom2buy证书续费
    • 发现不知道为什么他们去年6月买的证书没有给美国那边部署,所以一直没派上用场。
    • 联系美国那边看看bom2buy的证书怎么操作
      • 回复说可以用他们的证书,加一个域名,或者我们把证书发给他们部署。
      • 大家讨论决定最后方案。
  • 尝试给阿里云服务器降配,现有配置对于一个作为未被使用的试验田来说,价格太高。
    • 发现选择的类型无法降配
    • 可能需要重新购买重新部署(DNS,HAPROXY,各种服务。。。头大。。。)

2017/08/28

  • 周末eeboard白屏复盘排查 2017-08-26-爱板网无法访问
  • 老主站后台厂商无法更新,经检查是3306没有开主从备份。但是发现数据一直到8月9号都是在从库上有的,所以怀疑是3306修改配置禁用了某些数据库的主从复制,但是没有重启生效,直到上次数据库服务器硬盘问题重启过后生效了。
  • 压力测试。

2017/08/25

  • 阿里云QA
    • 测试环境主站和文章页数据库迁移到阿里云
    • 由于阿里云主机配置问题迁移遇到一些麻烦
      • 遇到mysql错误无法启动 可在my.cnf里添加innodb_force_recovery = 1然后重启,然后改回0再重启,不然无法update/insert。
      • sql文件太大
      • 通过给主机加swap区解决
set global net_buffer_length=1000000; --Set network buffer length to a large byte number 
set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number
set global wait_timeout=60000;  
SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour
source file.sql --Import your sql dump file
SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete!
  • 测试环境跳转客户网站
  • puppet继续学习
  • 所有站点拦路虎调整至13秒
Clone this wiki locally