2010/05/10

新人快速指南




本文涉及的范围仅仅是基础的产品线和日常工作中所必须掌握的一些东西.

良好的专业英文阅读能力会让你解决问题的时候轻松很多.

此文绝对不是step by step模式,也不是具体交你怎么安装,升级,etc,更多的是经验和解决问题思路的描述。

如果你不觉得反感,那就开始吧.




                PART.1产品线概况
                
       EMA,xMAP,PUSHMAIL,eoffice,,DMMS,清美,烟草通,iorder,徐福记的稽查等等

 
    

              PART.2 裸机安装操作系统
                
    网络安装(PXE BOOT)是你必须掌握的技能,具体google之,网上文章成堆.
    
    1. 一般服务器安装,也就是航天服务器,DELL ,这个应该都不会有什么问题。
    
    2. 客户自备服务器. 这个就比较难说了。总之先确定以下几点。

        1) 确定服务器构架 x86的还是其他构架的,比如ppc,ia64,etc. 非x86的情况很少见就是了
        2) 设备品牌,型号. 主要是为了明确硬件配置,可以去官方检索
        3) 设备是否配备了专用的软驱,如果有配备,一定要确定在客户方现场安装的时候能否提供.
        
    3. 驱动问题

        最大问题的就是磁盘找不到,多出现在sas的磁盘,尤其是带磁盘阵列卡的。
        so,在去现场前先在官方网站上把驱动做好,(通常是软盘)以备万一之需。
        p.s 在下驱动的时候,几乎100%情况下都没有中文页面可选,所以一定的英文阅读能力是必须。



    

                PART.3 EMA
                
    1.    OVERVIEW
    
        1) 整体介绍
        公司核心产品,java编写。
        
        前台(web)的工作(展示层)由tomcat加载完成。
        
        后台(依赖OSP平台)主要的工作的是提供和数据库,isag,管理平台等等的交互.
        
        具体的工作包括但不限于日志生成,管理平台注册、鉴权、SMS,MMS发送和接收(和isag交互),数据备份等等.
        
        EMA=mini oa+短信机,大致上可以这么理解,其他功能自己去挖掘吧.


        2) 版本简述
        当你看的这个文档的时候,ema的版本应该是在2.3.X 或者3.x之上的版本了。至于以前的版本知道就可以了.

        3.x “必须”用统一安装脚本来安装,但是个人建议最好学会手工安装,有些时候不是都会具备“统一安装环境”的.
    简单解释下“统一安装环境”,就是把EMA所依赖的软件打包,在用统一安装脚本安装的时候,shell会自动检测当前环境条件是否满足,
    不如果不合适就会在“统一安装环境”里面提取,升级这些必须的组件。
    当然这些操作都是由脚本完成的,大致了解下这些shell是如何工作也是很有益处的(这是题外话).
    
        3) 工作目录
        
        [root@ema ~]# ls -l /home/ema

    drwxr-xr-x   4 ema ema 4096 2009-07-27  axis2
    drwxr-xr-x   3 ema ema 4096 12月 14 11:12 backup
    drwxr-xr-x   2 ema ema 4096 12月 14 11:21 bin
    drwxr-xr-x   4 ema ema 4096  4月 23 11:42 cosp_bin
    drwxr-xr-x   2 ema ema 4096 2009-07-27  cosp_lib
    drwxr-xr-x   3 ema ema 4096 12月 28 10:09 file
    drwxr-xr-x   8 ema ema 4096  4月 25 01:01 josp_bin
    drwxr-xr-x   4 ema ema 4096  1月 28 09:47 josp_lib
    drwxr-xr-x   5 ema ema 4096 2009-07-27  omc_bin
    drwxr-xr-x  24 ema ema 4096  3月  1 10:16 web

    axis2: ema 提供的webservice接口,用来做二次开发的时候所用到的组件,平时不会加载。
    bin:   这个目录下面都是一些脚本。用来安装,卸载EMA 服务的
    cosp_lib,josp_lib : 这两个目录放置的是ema的主程序,cosp_lib负责和OSP平台交互偏向和操作系统打交道,josp_lib负责数据库,和isag,管理平台通信什么的
    josp_bin,cosp_bin : 这两个bin目录非常重要,后台配置文件和log都在这两个里面,配置文件从2.2.0开始几乎就不需要更改了,关键是log,排错的时候必须要看
    web: ema的前台,由tomcat加载
    
    
    2. INSTALL概述(针对3.x之前的版本.)
        
        1) 安装前
        
        安装包存放与服务器的/opt/install目录
        [root@ema install]# ls
    apache-tomcat-6.0.16.tar.gz                                       //tomcat
    ema-2.2.0.tar.gz                                                       //ema的主程序
    ema_create_user_mysql.sql                                         //ema数据库初始化文件
    ema_init_mysql.sql                                                     //ema数据库初始化文件
    esvpn-5.1-1.i386.as4.rpm                                           //vpn拨号软件,用来连接CN2网络
    esvpn.xml                                                                //esvpn配置文件范例,用的时候改下用户名密码就行了
    fhpushmail_v2.2.0.0728_centos4.6_osp3.0.tar.gz            //pushmail主程序,后面会说
    ImageMagick.tar.gz                                                   //ema的依赖组件,用于处理图片
    install.sh                                                                 //安装脚本 sh install.sh 跟着提示就能把所有东西安装完了
    jdk-6u5-ea-bin-b06-linux-i586-31_oct_2007.bin             // jdk,不解释
    libmyodbc.tar.gz                                                       //odbc的补丁
    mysql                                                                     //mysql 安装包 rpm方式
    openoffice                                                               //ema的依赖组件,用来处理预览doc,xsl etc文档
    openvpn-2.0.9.tar.gz                                                //已经弃之不用了
    osp3.0-linux-centos4.6-x86-build-081222.tar.gz            //osp平台,
    osp3.0_patch20090313.zip                                        //osp补丁
    stunnel                                                                 //自行google,用来提供应用程序加密连接的
    xmap                                                                   //后面会说
    xpdf                                                                    //ema的依赖组件,用来处理预览pdf文档
    
        2) 安装过程
        
    正式安装只需要cd /opt/install && sh install.sh ,然后再按1就行了。脚本具体做了,想知道的去看install.sh,我这边简单说下
    
            *)优化系统,去掉不必要的服务.
            *)安装jdk,tomcat,mysql
            *)设置各种环境变量.
            echo "export JAVA_HOME=/usr/java/jdk1.6.0_05" >> ~/.bash_profile
            echo "export JAVA_HOME" >> ~/.bash_profile
            echo "export EMA_HOME=/home/ema" >> ~/.bash_profile
            echo "export OSP_HOME=/opt/osp3.0" >> ~/.bash_profile
            echo "export JAVA_BIN=/usr/java/jdk1.6.0_05/bin" >> ~/.bash_profile
            echo "export PATH=\$JAVA_BIN:\$HOME/bin:\$EMA_HOME/omc_bin:\$EMA_HOME/omc_bin/masftp:\
            $PATH">>~/.bash_profile
            echo "export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar" >> ~/.bash_
            profile
            echo "" >> ~/.bash_profile
            echo "export LANG=zh_CN.GBK" >> ~/.bash_profile
            *)安装osp,对应的服务名是oos
            *)修改tomcat端口(改成80,默认是8080).初始化数据库,开放ema用户远程登陆,设置权限等等.
            *)安装各种依赖组件,openoffice,xpdf,等等.
            *)释放EMA主程序到安装目录/home/ema,生成配置文件,增加ema用户和用户组,安装ema服务,启动ema服务
            *)安装pushmail,安装xMAP,后面会讲到。
            
        3) EMA服务的启动和停止
        
            *)service oos start && service ema start
              OOS就是osp平台,如果oos服务没启动,ema无法正常工作
              
            *)验证服务是否正常.
              对于oos来说,可以查看tcp 3001,3002,3005端口是否正常启动,lsof -i:3001;losf -i:3002; lsof -i:3005
              对于ema,必须到josp_bin,cosp_bin下查看日志.如果没有报错那就是正常的了.
        4) 启动tomcat

            在确保oos,ema服务器正常启动后,就可以启动tomcat了. tomcat安装在/usr/java下面。
            cd /usr/java/apache-tomcat/bin && sh startup.sh
            运行完启动命令后,注意观察日志是否有错。
            
        至此 EMA服务就已经安装启动完成了.
        
    3. INSTALL(针对3.x之上的版本.)        
            
        参考统一安装脚本附带的文档吧,上面会了这个也肯定明白的。

       




            PART.4 xMAP
            
    1. OVERVIEW
        
        公司核心产品,属于中间价范畴类的软件.
        从功能角度上来说,简要来说就是将传统的IT系统访问模式,从PC端移植到手机上。
        从技术角度来说,xMAP就是个可扩展的代理服务器。
        
        基本工作模式: 手机<-->xMAP<-->服务器.
                *)上行 即手机-->xMAP-->服务器
                    手机发出请求,在xMAP上通过适配代码将数据转换成PC端的请求发送给服务器
                *)下行 即服务器-->xMAP-->手机
                
                    xMAP接收玩服务器发过来的数据后,通过适配代码把它转化成手机端可以识别的数据,再转发给手机.
                    
        说的直白点,打个比方,你上mail.qq.com, 在PC上什么图片,广告啊都有,但是手机屏幕就那么大,这种情况肯定不行的。
        通过xmap转化,在手机上就只看到收件箱,发件箱,联系人最基本的功能,其他的都被过滤掉了(其实是xMAP只抓去了我们关心部分的内容)
        
    2. INSTALL
        xMAP就很简单了,就是一个TOMCAT+xMAP应用.
        一个压缩包,解开它,把它放到/usr/java
        第二步就是初始化数据库,一般初始化文件都会在压缩包里面,自己找.
        
    3. 适配代码安装.
        详询相关文档,有个建议就是,先把代码解压出来,修改好配置文件,再打包成zip,在xMAP前台装载,不要手工安装.




    
            PATR.5 PUSHMAIL
            
    1. OVERVIEW

        公司核心产品.
        pushmail(以下简称pm)跟xMAP有一点类似的地方,都是做代理的,lol.
        
        工作模式:

            配置好用户信息后,pm每隔5(可设定)分钟到你设置的邮箱里面查询是否有新邮件,如果有,
        pm首先把mail下载到ema服务器上,然后通过预先设定好的通知方式(sms,emn)通知你。
                sms,就是短信了,短信内容大致如下“您的邮箱XX@XX.COM,收到来自ABC@123.COM的邮件,主题是ooxx”
                emn,需要安装手机客户端支持。从实质上说,它也是sms,只是这是一条特殊的sms,触发手机上装好的客户端,客户端启动后自动收取新邮件

    2. INSTALL
    
        如果是2.3以下的版本,是跟着ema一起安装的,安装过程也类似与ema。
        2.3以上的,参考具体的文档。

        
        
        
            PART.6 EOFFICE
            
            
    1. OVERVIEW
        
        基于lamp的oa系统,作为ema的补充.因为ema oa实在太薄弱了。
        
    2. INSTALL
    
        for linux ,安装没什么好说的,按照文档和压缩包里面的脚本做就好了. 有2点需要注意的地方.
            1) eoffice是用root这个mysql用户访问数据库的,所以务必保证root有权限访问eoffice这个库.
               核对 /path/to/apache/htdocs/inc/oa_config.php里面数据库参数
            $MYSQL_SERVER="localhost";
            $MYSQL_USER="root";
            $MYSQL_DB="eoffice";
            $MYSQL_PASS="FHuma025";  //注意核对这里的密码
            
            2) 启动apache,注意最好用绝对路径来启动.即/usr/local/apache2/bin/apachectl start
            
        for win, 更没什么说的
        
    3.  eoffice的实施        
    
        尽量引导用户按照有利于我们的方式设置流程表单,不然工作量会非常大,非常繁琐

        


        PART.7 手机客户端安装
    
    1. wm&ce
    
        拖进去点下就行了
        
    2. brew
    
        详细的查看相关文档,这边补充一个brew安装视频 工程部ftp/brew手机驱动

        
        
        PART.8 EMA二次开发相关
        
        
    1. DB接口.
    
        以发送sms说明,简单来讲,就是ema每XX秒刷新一次sms_outbox表,如果有数据就处理掉(也就是发送短信)
        
        insert into sms_outbox(SISMSID,DESTADDR,MESSAGECONTENT,REQDELIVERYREPORT,MSGFMT,SENDMETHOD,REQUESTTIME,APPLICATIONID,ECID) values('123','18978842312','test',1,15,0,'2009-09-02 12:0:0','APP001','defaultema');
        
        抓几个字段出来说下,
            SISMSID,sms唯一表示符,通常由uuid()函数生成。
            DESTADDR,目标手机号
            MESSAGECONTENT, 短信内容
            APPLICATIONID, 在数据库插件那里设置,你新建的是APP00X 这里就写 APP00X,APP001是ema自带的
            其他都默认
            
    2. WebService接口
        
        1)加载ws
        
             修改tomcat的{Tomcat_home}/conf/server.xml文件,在<Host>标签页内增加

             <Context path="/ws" docBase="/home/ema/axis2" debug="0" reloadable="true" crossContext="true"/>
            
        2) 重启tomcat
        
            发布后的服务地址:http://ip:port/ws/services/ctcc_ema_wbs

            发布后的wsdl文件地址:http://ip:port/ws/services/ctcc_ema_wbs?wsdl

            ws接口的demo代码 ,可以在工程部ftp/友情共享/wstest.zip下载到. 有时候SI问你要demo的时候你就可以给他这个

            
        
        
        PART.9 常见问题排查举例
        
    1.EMA sms/mms/wap 问题
    
        *)确定OOS,EMA,mysql服务正常运行,首先看进程是否正常,然后是日志
        *)如果是走CN2的,确定VPN是否正常
        *)页面上短信回执栏提示发送失败的,抓包排查。一般来说sp不对或者sp ip鉴权失败的情况比较常见
        *)如果是SP问题,就到ISMP上核对信息(如果你有权限),不然就通过市场同事(或者直接找局方)确定SP是否有误
        
        下面说2个比较少见的问题
        
        1)
           问题描述:sp ip鉴权失败,核对后发现ip跟ismp一致,但是抓包死活都报sp ip auth fail.
           解决过程:isag一般是不会出什么问题,所以从自己排查。假设出问题的是hostA,公网ip是 1.1.1.1
           此时为了确定此主机对外访问所用的ip是否和本身的公网ip是否一样,我从hostA ssh 到hostB(公网),使用lsof-i:sshprot 查看连接,结果我发现hostA连到hostB的时候ip变了.
           解决办法:记录下新ip,到ismp上更新下,再发短信成功了。
           
           这种问题一般会出在EMA在企业内网,做端口映射的情况下,网络环境比较复杂导致的
        
        2)
            spid 重复使用导致短信上行收不到
            问题描述: EMA设备,服务,网络一切正常,下发短信正常,就是无法收取短信上行。
            解决过程:核对ISMP数据,查询这个spid,竟然返回了2个企业.也就是说一个SPID注册了2遍(吐槽ISMP吧)
            解决过程: 重新申请SPID
        
    2. 登陆的验证码刷不出来
        
        mysql问题. 一般重启可解决,也许你根本没启动mysql
        
    3.  无法启动mysql
    
        总之原因比较多,根据mysql报的错排查基本能解决问题的
        
        有一个比较特殊的情况,就是 service mysql start 后 ,一直卡在这,也不报错
        
        这时候检查下磁盘占用情况,如果是100%占用,mysql写不了fd也是无法启动的
        
        磁盘100%占用极有可能是ema 日志文件导致的. 在2.2.x版本里面遇到过,先截取josp.ema.log (tail -n 200 josp.ema.log > err.log)片段,保存出来,然后把所有服务停掉. oos ,ema,pm,mysql . 删除josp.ema.log,过程大概会持续2分钟以上,稍等片刻.
        删除完毕后,依次启动mysql,oos,ema,pm,最后把截取的日志提交到PMS,并且说明当时情况
    
        
        
    4. 日志提示XX端口被占用,启动失败.

        *)最常报这个错误的就是tomcat, lsof -i:port 找出对应进程id, kill -9 xxx
        *)另外一个就是oos,有时候在重启oos的时候,关闭OOS没问题,但是oos启动提示失败。
          这个是因为脚本没有彻底杀掉oos的进程,导致有些进程还在占用某些端口。这时候用losf找出3001,3002,3005监听端口的进程,确定全部杀掉后再启动就好了



0 评论: