zoukankan      html  css  js  c++  java
  • Sonar安装-Linux[20171227]

    前言
        一款不错的代码质量管理工具Sonar
    前期准备
        软件下载
        硬件环境(在官方参考文档有提出硬件规格,如下只是测试环境)
                磁盘 ->16G
                内存 ->2G
                CPU -> 2core
        软件环境
                OS -> Red Hat Enterprise 6.5
                DB -> Mysql 5.7
                Sonar -> SonarQube 6.7.1 (LTS *)
                IP -> 192.168.1.59
                Host -> t-xi-sonar01
    系统初始化
            关闭selinux和防火墙
               [root@t-xi-sonar01 ~]# vi /etc/selinux/config
                   SELINUX=disabled
               [root@t-xi-sonar01 ~]# chkconfig  iptables off&&chkconfig  ip6tables off&&service iptables stop&&service ip6tables stop
          [root@t-xi-sonar01 ~]# vi /etc/hosts
                192.168.1.59 t-xi-sonar01
            配置Yum源,我这里配置了web站点,所以指定了http地址.
              [root@t-xi-sonar01 ~]# cat /etc/yum.repos.d/rhel-source.repo
    [rhel-source]
    name=Red Hat Enterprise Linux $releasever - $basearch - Source
    enabled=1
    gpgcheck=0
     
      也可以使用ios镜像进行配置yum源
     [root@t-xi-orc01 ~]# mount -o loop /u01/rhel-server-6.5-x86_64-dvd.iso /u01/http/redhat6.5
     [root@t-xi-orc01 ~]# cat /etc/yum.repos.d/rhel-source.repo
     [Server]
     name=Red Hat Enterprise Linux $releasever - $basearch - Server
     baseurl=file:///u01/http/redhat6.5/Server
     enabled=1
     gpgcheck=0
     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
            
            系统内核优化(参考文档中有)
             
     [root@t-xi-sonar01 ~]# vi /etc/sysctl.conf  
                #add sonar 
      vm.max_map_count = 262144
      fs.file-max = 65536
     
    [root@t-xi-sonar01 ~]# vi /etc/security/limits.conf
        #add sonar
        sonarqube   -   nofile   65536
        sonarqube   -   nproc    2048
     
    sysctl -w vm.max_map_count=262144
    sysctl -w fs.file-max=65536
    ulimit -n 65536
    ulimit -u 2048

    安装Mysql数据库

          首先移除原有mysql-libs-5.1.71-1.el6.x86_64包,但它依赖postfix。
          [root@t-xi-sonar01 ~]# yum remove postfix
          [root@t-xi-sonar01 ~]# rpm -e mysql-libs-5.1.71-1.el6.x86_64
          安装下载的Mysql 5.7
          [root@t-xi-sonar01 ~]#
            rpm -ivh mysql-community-client-5.7.20-1.el6.x86_64.rpm
            rpm -ivh mysql-community-common-5.7.20-1.el6.x86_64.rpm
            rpm -ivh mysql-community-devel-5.7.20-1.el6.x86_64.rpm
            rpm -ivh mysql-community-embedded-5.7.20-1.el6.x86_64.rpm
            rpm -ivh mysql-community-embedded-devel-5.7.20-1.el6.x86_64.rpm
            rpm -ivh mysql-community-libs-5.7.20-1.el6.x86_64.rpm
            rpm -ivh mysql-community-libs-compat-5.7.20-1.el6.x86_64.rpm
            rpm -ivh mysql-community-server-5.7.20-1.el6.x86_64.rpm
     
      注意将原来移除的包重新安装
            yum install postfix  crontabs
                优化Mysql数据库参数     
    [root@t-xi-sonar01 ~]# vi /etc/my.cnf
    query_cache_size=8M
    innodb_buffer_pool_size=1152M
    innodb_log_file_size=256M
    innodb_log_buffer_size=4M
    innodb_flush_log_at_trx_commit=2
    innodb_thread_concurrency=8
    innodb_flush_method=O_DIRECT
    transaction-isolation=READ-COMMITTED
    thread_cache_size=4
    slow_query_log=on
    slow-query-log-file=mysqld-slow.log
    long_query_time=10
    explicit_defaults_for_timestamp=true
    skip-character-set-client-handshake
    collation-server=utf8_unicode_ci
    character-set-server=utf8

      启动数据库,此时数据库会生成临时密码

                [root@t-xi-sonar01 ~]# service mysqld start
               启动时要随时关注mysql数据库产生的日志记录
                [root@t-xi-sonar01 ~]# tail -f  /var/log/mysqld.log
               查看临时密码
                [root@t-xi-sonar01 ~]#grep 'temporary password' /var/log/mysqld.log
                    2017-12-26T10:37:57.842981Z 1 [Note] A temporary password is generated for root@localhost: cSj&aPfkS60w
                登陆并且更新密码
                [root@t-xi-sonar01 ~]#mysql -uroot -p
                mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '******';
                mysql>FLUSH PRIVILEGES;
                将mysql数据库设定为自启动
                [root@t-xi-sonar01 ~]# chkconfig mysqld on
                
        创建Sonar账户和数据库
                [root@t-xi-sonar01 ~]#useradd sonar
                [root@t-xi-sonar01 ~]#passwrd sonar
     
                [root@t-xi-sonar01 ~]#mysql -uroot -p
                mysql>create user 'sonar'@'localhost' identified by 'sonar';
                mysql>CREATE DATABASE sonar
                              DEFAULT CHARACTER SET utf8
                              DEFAULT COLLATE utf8_general_ci;
                mysql>GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost';
                mysql>FLUSH PRIVILEGES;
     
        安装Sonar软件
                [root@t-xi-sonar01 ~]# unzip sonarqube-6.7.1.zip
                [root@t-xi-sonar01 ~]# mv sonarqube-6.7.1 /etc/sonarqube
                [root@t-xi-sonar01 ~]# chown -R sonar.sonar /etc/sonarqube
                    注意:sonarqube后面启动 ./sonar.sh start时不能使用root账户,es.log报错信息
                     2017.12.27 13:59:30 ERROR es[][o.e.b.Bootstrap] Exception java.lang.RuntimeException: can not run elasticsearch as root
      切换到Sonar账户
                [sonar@t-xi-sonar01 sonarqube]$
                [root@t-xi-sonar01 sonarqube]# su - sonar
                [sonar@t-xi-sonar01 ~]$ cd /etc/sonarqube/
            查看/etc/sonarqube目录树(主要的三个,可以查看参考文档)         
    bin ->软件运行目录
    conf -> 软件配置目录
    COPYING
    data
    elasticsearch
    extensions
    lib
    logs ->软件运行日志目录
    temp
    web

    配置软件参数

                        [sonar@t-xi-sonar01 sonarqube]$ cat conf/sonar.properties|grep -v '^#'|grep -v '^$'|grep -v '=$'
          
    sonar.jdbc.username=sonar
    sonar.jdbc.password=sonar                             
    sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
                                注意Sonar Web访问默认地址为9000,账户admin/admin
     
                         启动Sonar软件 
                                   [sonar@t-xi-sonar01 sonarqube]$ bin/linux-x86-64/sonar.sh start
                                   注意查看logs/es.log 和logs/sonar.log两个日志文件
             [sonar@t-xi-sonar01 sonarqube]$ less logs/es.log
                             [sonar@t-xi-sonar01 sonarqube]$ less logs/sonar.log
                访问Sonar
                    http://192.168.1.59:9000
        

        

        

                    
      前期配置Sonar完成,后续完善中文字符和Jekins的整合
     
    参考网址:
     
     
     
     
     
     
                
     
     
     
            
  • 相关阅读:
    CUP的MESI协议
    synchronized 锁的升级
    BigDecimal/Long 前后端交互失去精度解决办法
    nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
    根据文件原始名称,文件根路径按照日期生成存储路径
    异步处理MultipartFile -- No such file or directory
    select下拉框相关操作(更新中。。。)
    input清空和重置select下拉框
    sql多字段分组排序显示全部数据
    ajax发送请求下载字节流形式的excel文件
  • 原文地址:https://www.cnblogs.com/also-brook/p/8135524.html
Copyright © 2011-2022 走看看