ホーム » コンピュータ (ページ 34)
「コンピュータ」カテゴリーアーカイブ
サーバ原因不明のフリーズ
休みののんびりする中、自宅サーバがフリーズ。出先だったのでママが恐る恐るリセット。
普通に起動したけど、icinga, munin を見ても予兆の変な雰囲気は無かった。
自宅に帰って改めてフリーズ時間の履歴を見ると、以下のようなところで syslog が途切れていた。
Apr 29 09:49:53 perrine postfix/smtpd[1325089]: connect from unknown[185.143.xx.xx] ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
この後、このIPアドレスから以下のような接続が続いている。postfix の脆弱性でもあるのかな。侵入には失敗しているようだが、なんか不気味。あまりにも不気味だし、繰り返し login を試しているし、iptables で接続をブロックする。
Apr 29 10:27:08 perrine postfix/smtpd[1943]: connect from unknown[185.143.xx.xx] Apr 29 10:27:10 perrine postfix/smtpd[1937]: warning: unknown[185.143.xx.xx]: SASL LOGIN authentication failed: authentication failure
WRM-D2133HPのファームウェアアップデート2.85
自宅ルータ WRM-D2133HP , WEM-1266 のファームウェアアップデート(Ver 2.85)が出たみたい。
これにより、ローミングアシスト機能により、端末との電波状況が悪くなった時に、より良い電波状況の接続先に切り替えを促すことができるらしい。端末も自宅のスマホなら対応しているようだ。
また、電波強度を測定した結果を表示してくれる機能もあり、間取り情報があれば電波強度のヒートマップを作れるみたい。ただ、1Fには機器が中継器だけなので、あんまりあてになる地図ではないな。

bc.googleusercontent.com からの大量アクセス
サーバの負荷が急に上がってきた。
アクセス元を確かめると、35.210.166.102 。調べると 102.166.210.35.bc.googleusercontent.com. からのアクセスで、関連記事を調べるとこういった記事が上がってくる。Google 提供のクラウドみたいで個人からのアクセスらしい。どちらにしろ、10秒程度で次々とページを漁ってる、とてもマナーが悪いクローラー。User-Agent は、以下のようになっている。 https://velen.io をアクセスするけど、つながらない。
"Mozilla/5.0 (compatible; VelenPublicWebCrawler/1.0; +https://velen.io)"
ひとまず、FireWall の IPアドレス指定で接続拒否を行う。
((( /var/www/html/robots.txt ))) User-agent: VelenPublicWebCrawler Disallow: /
WP Fastest Cache を試す
PHP の 7.4 への切り替えを行ったけど、インストール済みのパッケージに Cache 関連のモジュールがあって、あらためて WordPress の Cache を調べてみた。
WP Fastest Cache を Install
簡単に導入できそうな、WP Fastest Cache というのがあったので、導入してみた。
WordPressの普通のプラグインの要領でインストール。WordPress の左メニューに WP Fastest Cache が追加されるので選んでから、キャッシュさせたい項目を選んで保存するだけ。
職場の WordPress にも入れてみた。でも、どこまで効果が出ているかは、よくわからない。ある程度運用してから、CPU 負荷を確認するしかないかな。
追加
数日の様子を見たけど、サーバとしては特に負荷が下がったという雰囲気は無いな。
ただ、ページの表示は早くなったような気がする。
homebridge-peopleの設定
homebridgeの記事を探していたら、homebridge-people を見つける。ping の結果を、人感センサーの ON/OFF 情報として扱うことができる。ping のホスト名をスマホのIPアドレスを指定すれば、自宅に居る/居ないとして把握できる。
$ sudo npm install -g homebridge-people
$ emacs .homebridge/config.json
"platforms": [
{
"platform": "People",
"threshold" : 15,
"anyoneSensor" : false,
"nooneSensor" : false,
"webhookPort": 51828,
"cacheDirectory": "./.node-persist/storage",
"pingInterval": 10000,
"ignoreReEnterExitSeconds": 0,
"people" : [
{
"name" : "斉藤徹",
"target" : "iphonex-tsaitoh",
"threshold" : 15,
"pingInterval": 10000,
"ignoreReEnterExitSeconds": 0
}
]
}
]
本当は、ホームハブを導入することで、Home のオートメーションと連動させて、○○が家に帰ったら、○○するといったことができるんだけど、ホームハブが無いのでできない。そうなってくると、HomePod が欲しくなってくる。
speedtest-cliとrrdtool
インターネットとの通信速度を計測する speedtest-cli で Linux の上で測定できそうなので、毎日測定するようにしてみた。MRTG を単純に使うと5分おきになってしまうので、rrdtool を使って1日1回更新にてデータを生成させる。
#!/usr/bin/perl
my $pgname = "speedtest" ;
my $rrdfile = "/var/lib/munin/localdomain/localhost.localdomain-$pgname.rrd" ;
my $graphfile = "/var/cache/munin/www/localdomain/localhost.localdomain/$pgname.png" ;
my $rrdtool = "/usr/bin/rrdtool" ;
my $speedtest = "/usr/local/sbin/speedtest-cli" ;
my $time = time() ;
my $debug = 0 ;
sub fetchvalue {
my ($upv , $dwv) = @_ ;
my $upload = 0 , $download = 0 ;
open( FH , "$speedtest |" ) or die( "Can't open $speedtest." ) ;
while( my $line = ) {
if ( $line =~ /^Upload:\s*([\d\.]+)\s*(M|K|)bit\/s/i ) {
$upload = $1 ;
$upload *= 1000000 if ( $2 eq "M" ) ;
$upload *= 1000 if ( $2 eq "K" || $2 eq "k" ) ;
}
if ( $line =~ /^Download:\s*([\d\.]+)\s*(M|K|)bit\/s/i ) {
$download = $1 ;
$download *= 1000000 if ( $2 eq "M" ) ;
$download *= 1000 if ( $2 eq "K" || $2 eq "k" ) ;
}
}
close( FH ) ;
$$upv = $upload ;
$$dwv = $download ;
}
sub create {
my $cmd =
"$rrdtool create $rrdfile"
." --step 86400"
." DS:upload:GAUGE:200000:0:U"
." DS:download:GAUGE:200000:0:U"
." RRA:LAST:0.5:1:7"
." RRA:AVERAGE:0.5:3:7"
." RRA:MIN:0.5:3:7"
." RRA:MAX:0.5:3:7"
;
print $cmd."\n" if ( $debug ) ;
system( $cmd ) ;
}
sub update {
# rrdファイルが無ければ作る
create()
unless( -f $rrdfile ) ;
# 値を取得して更新
my $upv , $dwv ;
fetchvalue( \$upv , \$dwv ) ;
my $cmd =
"$rrdtool update $rrdfile"
." N:$upv:$dwv"
;
print $cmd."\n" if ( $debug ) ;
system( $cmd ) ;
}
sub graph {
my $start = $time - 3600*24*200 ;
my $cmd =
"$rrdtool graph $graphfile"
." --imgformat PNG"
." --start $start"
." --end $time"
." --title \"SpeedTest\""
." --height 150"
." --font DEFAULT:7:Consolas"
." --vertical-label \"bit/sec\""
." --color FRAME#f3f3f3"
." --color AXIS#F3F3F3"
." --color SHADEA#f3f3f3"
." --color SHADEB#f3f3f3"
." --color ARROW#f3f3f3"
." COMMENT:\" cur avg min max\\n\""
." DEF:upload=$rrdfile:upload:LAST"
." LINE:upload#00FF00:\"Upload \""
." GPRINT:upload:LAST:\"%6.2lf%s /\""
." GPRINT:upload:AVERAGE:\"%6.2lf%s /\""
." GPRINT:upload:MIN:\"%6.2lf%s /\""
." GPRINT:upload:MAX:\"%6.2lf%s \\n\""
." DEF:download=$rrdfile:download:LAST"
." CDEF:download_minus=download,-1,*"
." LINE:download_minus#0000FF:\"Download\""
." GPRINT:download:LAST:\"%6.2lf%s /\""
." GPRINT:download:AVERAGE:\"%6.2lf%s /\""
." GPRINT:download:MIN:\"%6.2lf%s /\""
." GPRINT:download:MAX:\"%6.2lf%s \\n\""
." > /dev/null"
;
print $cmd."\n" if ( $debug ) ;
system( $cmd ) ;
}
if ( @ARGV > 0 && $ARGV[0] eq "config" ) {
create() ;
} elsif ( @ARGV > 0 && $ARGV[0] eq "update" ) {
update() ;
} elsif ( @ARGV > 0 && $ARGV[0] eq "graph" ) {
graph() ;
} else {
update() ;
graph() ;
}









