2017年11月7日

影響 solr 效能的三大因素

 1. schema:schema 規劃不好,硬體再好也無用
 2. ssd: NRT 必備,一個 instance 給一個ssd ,並開啟Trim
 3. ram: 使用量評估=OS + jvm heap  + system cache ,system cache > index 尤佳

2017年11月1日

使用rrdcached 減少ganglia 收集metric 的IO (ubuntu)


1. 修改 /etc/init.d/gmetad
   export RRDCACHED_ADDRESS=unix:/tmp/rrdcached.sock
2. 修改 /etc/default/rrdcached
   BASE_PATH=/var/lib/ganglia/rrds/
   PIDFILE=/tmp/rrdcached.pid
   SOCKFILE=/tmp/rrdcached.sock
   SOCKGROUP=nogroup
   DAEMON_GROUP=nogroup
   DAEMON_USER=nobody
   NETWORK_OPTIONS="-L"
   BASE_OPTIONS="-B -F -R"
3. chown -R nobody:nogroup /var/lib/rrdcached/journal
4. 修改 /var/www/html/ganglia/conf_default.php
   $conf['rrdcached_socket'] = 'unix:/tmp/rrdcached.sock';
5. service stop gmetad
   service stop rrdcached
   service start rrdcached
   service start gmetad
   service apache2 restart

2017年3月10日

ganglia 用multi source (cluster)

ganglia  有需要監控二個 source , 一個hadoop 一個solr ..

ganglia 主機設定,改用unicast
1. gmetad.conf
    data_source "hadoop" 172.1.0.2:8649
    data_source "solr" 172.1.0.2:8655

2. 要設定二個 gmond.conf.1 gmond.conf.2 , 開二個gmond 來收metric
     gmond.conf.1   (這個gmond 收也送,主機加入hadoop source)
         cluster {
         name = "hadoop"
         owner = "unspecified"
         latlong = "unspecified"
         url = "unspecified"
         }
         host {
           location = "unspecified"
         }
         udp_send_channel {
           host = 172.1.0.2
           port = 8649
           ttl = 1
         }
         udp_recv_channel {
          port = 8649
          bind = 172.1.0.2
         }
         tcp_accept_channel {
         port = 8649
         }
      gmond.conf.2 (這個gmond 就只收)
         cluster {
         name = "solr"
         owner = "unspecified"
         latlong = "unspecified"
         url = "unspecified"
         }
         host {
          location = "unspecified"
         }
         udp_recv_channel {
           port = 8655
          bind = 172.1.0.2
         }
         tcp_accept_channel {
          port = 8655
         }
3. 執行gmond
    /usr/sbin/gmond  --conf /etc/ganglia/gmond.conf.1
    /usr/sbin/gmond  --conf /etc/ganglia/gmond.conf.2
    或改daemon 的shell  , /etc/init.d/ganglia-monitor
         start-stop-daemon --start --quiet --name gmond1 \
                --exec $DAEMON -- --pid-file /var/run/$NAME.pid.1 --conf /etc/ganglia/gmond.conf.1
        start-stop-daemon --start --quiet --name gmond2 \
                --exec $DAEMON -- --pid-file /var/run/$NAME.pid.2 --conf /etc/ganglia/gmond.conf.2

   


2017年3月1日

log4j log 送到 logstash log4j input

jvm 程式,像是hadoop solr 可以把log 送到ELK 集中控管

ex: 修改hadoop log4j.properties
log4j.appender.server=org.apache.log4j.net.SocketAppender
log4j.appender.server.Port=4560
log4j.appender.server.RemoteHost=172.1.1.1
log4j.appender.server.LocationInfo=true
log4j.appender.server.Application=hadoop

logstash 設定
input {
  log4j {
    host => "172.1.1.1"
    port => 4560
  }
}
filter {
  grok {
    match => { "host" => "%{IPORHOST:host}:%{POSINT}" }  // 修改1.2.3.4:8888 => 1.2.3.4
    overwrite => [ "host" ]
  }
}

output {
  elasticsearch { hosts => ["localhost:9200"] }
}



2017年2月21日

ubuntu 16.04 procos 的bug

ubuntu 16.04 遇到的bug , 會把process 誤砍,這二個package 請更新到以下版本,即可修正..

ii  libprocps4:amd64                   2:3.3.10-4ubuntu2.3             amd64        library for accessing process information from /proc
ii  procps                             2:3.3.10-4ubuntu2.3             amd64        /proc file system utilities

https://bugs.launchpad.net/ubuntu/+source/procps/+bug/1610499

2016年10月18日

讓tomcat Applications 可以自己reload 不用手動restart 或reload

新增 context.xml 檔案到
~/apache-tomcat-7.0.70/webapps/testapp/app/META-INF/context.xml

<Context reloadable="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/data</WatchedResource>
</Context>

WEB-INF/data  下的檔案有變動,就會自己reload

mysql 修改tmpdir (ubuntu)

1. vi /etc/mysql/my.conf
   tmpdir = /mnt/md0/mysqltmp

2. mkdir /mnt/md0/mysqltmp
   chown mysql:mysql /mnt/md0/mysqltmp
   chmod 1777 /mnt/md0/mysqltmp

3. vi /etc/apparmor.d/usr.sbin.mysqld
   /mnt/md0/mysqltmp/* rw,

4. /etc/init.d/apparmor restart
   /etc/init.d/mysql restart