2022年7月12日

SEO Link的重要性

SEO基本的因素是meta tag的Title/description
更重要的是網頁內有價值的內容
google評斷這頁面是否有價值,其中有幾個演算法在計算
其中一個重要的因子是backlink
backlink是從外部連進來的連結,越多連結表示這頁面越有價值
下面的示範頁,用來拉昇這些頁的seo分數
 

2018年8月8日

開啟solr的 jetty request log

修改 solr-6.5.0/server/etc/jetty.xml

原本是mark的設定,拿掉mark,修正filename位置,改時區,重啟後生效
    <Ref id="Handlers">
      <Call name="addHandler">
        <Arg>
          <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
            <Set name="requestLog">
              <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
                <Set name="filename">
                   solr/logs/request.yyyy_mm_dd.log
                </Set>
                <Set name="filenameDateFormat">yyyy_MM_dd</Set>
                <Set name="retainDays">90</Set>
                <Set name="append">true</Set>
                <Set name="extended">false</Set>
                <Set name="logCookies">false</Set>
                <Set name="LogTimeZone">Asia/Taipei</Set>
              </New>
            </Set>
          </New>
        </Arg>
      </Call>
    </Ref>
   

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
  


2015年12月24日

dd disk to disk 看進度的方法

dd if=/dev/hda of=/dev/sda bs=4k

再開另外一個terminal ,執行 sudo kill -USR1 $(pgrep ^dd) 
在dd的那個terminal 就會顯示copy 多少資料,speed多少..

33706002+0 records in 
33706002+0 records out 
17257473024 bytes (17 GB) copied, 34.791 s, 496 MB/s

2014年8月25日

停止 ubuntu gui介面

有時gui 介面使用過多的記憶體,在cmd 下:

sudo service lightdm stop

即可以停掉gui介面

2014年8月20日

apt-get 透過proxy

ubuntu 12.04 上使用apt-get 透過proxy 來更新...

1. export http_proxy=http://1.2.3.4:3128
    export ftp_proxy=http://1.2.3.4:3128

2. sudo vi /etc/apt/apt.conf
    加上     Acquire::http::Proxy "http://1.2.3.4:3128";
                Acquire::ftp::Proxy "http://1.2.3.4:3128";
   
              

2014年6月9日

用fail2ban 擋掉整個subnet

使用fail2ban 在try ssh密碼的IP擋掉,但通常對方被擋後就換IP,換的IP都是同一個subnet,
1.2.3.4 當掉後換 1.2.3.5 再試,但fail2ban預設只能擋1.2.3.4,
我想要把整段IP(1.2.3.0/24)擋掉,
修改如下:

1. vi /etc/fail2ban/action.d/iptables-multiport.conf
2. actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP
    換成
    actionban = iptables -I fail2ban-<name> 1 -s `echo <ip> | sed -e "s/\([0-9]*.\)\([0-9]*.\)\([0-9]*.\)\([0-9]*\)/\1\2\30\/24/"`  -j DROP
3. actionunban = iptables -D fail2ban-<name> -s <ip> -j DROP
    換成
    actionunban = iptables -D fail2ban-<name> -s `echo <ip> | sed -e "s/\([0-9]*.\)\([0-9]*.\)\([0-9]*.\)\([0-9]*\)/\1\2\30\/24/"` -j DROP
4. 重啟 fail2ban

2013年8月22日

tcpdump 使用方法

文字版的抓取封包程式
tcpdump -i eth0 host 210.65.1.1 -w test.cap

抓eth0網卡,並只抓取對210.65.1.1的封包,並寫入 test.cap
test.cap檔可以在Wireshark開啟...

2013年8月14日

讓 snmptrapd開機後可以隨著snmpd自動執行

ubuntu的環境

一般snmpd autostart後,但snmptrapd沒有跟著執行,修改/etc/default/snmpd
TRAPDRUN=no   ==>     TRAPDRUN=yes

這樣就會自動跟著啟動了。

讓cisco網路設備的logging是用當地的時間,而不是UTC時間

service timestamps log datetime localtime

2013年8月8日

bind9 named 快速新增DNS反解紀錄

bind9 named 快速新增DNS反解紀錄

一般設定整段IP的反解,需要一筆一筆寫,如下
1    IN    PTR     PC1.local.
2    IN    PTR     PC2.local.
3    IN    PTR     PC3.local.       
4    IN    PTR     PC4.local.
5    IN    PTR     PC5.local.
6    IN    PTR     PC6.local.
7    IN    PTR     PC7.local.
8    IN    PTR     PC8.local.
9    IN    PTR     PC9.local.10    IN    PTR     PC10.local.


現在,可以一筆就可取代,自動產生反解紀錄
$GENERATE 3-10 $ IN PTR PC$.local.


Ganglia 雜項設定



Ganglia 雜項設定

1.     /usr/share/ganglia-webfrontend/                                                                  web所有檔案位置
        /usr/share/ganglia-webfrontend/templates/default/cluster_view.tpl      首頁cluster view的設定檔                                     
        /usr/share/ganglia-webfrontend/graph.d                                                    增加Cluster view的metric php檔
        /usr/share/ganglia-webfrontend/get_content.php                                     修改首頁的default sorted,改成by name
                                                                                                                                            if (!$sort)
                                                                                                                                           $sort = "by name";

2.    gmetric -n 245toInternet -v foo -t string -d 10            刪除不要的metric  245tointernet


2013年8月7日

使用shell算使用頻寬

有些網路設備不提供即時頻寬,只好學Mrtg抓標準的snmp oid,再計算出當時使用頻寬..
以下範例是抓取  switch的port 48 ,ifspeed(port速率是100Mb),抓取間隔為60秒

tmp_port6_in=`/usr/bin/snmpwalk -v 2c -c public 10.110.1.252 1.3.6.1.2.1.2.2.1.10.48 | awk {'print $4'}`
old_port6_in=`cat /tmp/old_port6_in`
port6_in=`/usr/bin/expr \( $tmp_port6_in - $old_port6_in \) \* 8 / 60 /1000000`
echo $tmp_port6_in > /tmp/old_port6_in
tmp_port6_ou=`/usr/bin/snmpwalk -v 2c -c public 10.110.1.252 1.3.6.1.2.1.2.2.1.16.48 | awk {'print $4'}`
old_port6_ou=`cat /tmp/old_port6_ou`
port6_ou=`/usr/bin/expr \( $tmp_port6_ou - $old_port6_ou \) \* 8 / 60 /1000000`
echo $tmp_port6_ou > /tmp/old_port6_ou


記得再rc.local 加echo 0 > /tmp/old_port6_in   和 /tmp/old_port6_out 
以免重開機時,檔案被清掉...

參考連結,內有算式   http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a008009496e.shtml   


part 2

發現有問題,
octet值是32位元的,超過最大值即歸零,最大值是4294967295 (2的32次方-1)。

shell 需要增加判斷式
if [ `expr $tmp_port6_in - $old_port6_in` -lt "0" ]
 then
   port6_in=`/usr/bin/expr \( $tmp_port6_in - $old_port6_in + 4294967295 \) \* 8 / 60`
 else
   port6_in=`/usr/bin/expr \( $tmp_port6_in - $old_port6_in \) \* 8 / 60` 
 fi



參考連結: http://www.cisco.com/en/US/tech/tk648/tk362/technologies_q_and_a_item09186a00800b69ac.shtml