銀河の歴史がまた1ページ(日記)

Last Update (2018/02/22 07:08:07)
1997.09.06から数えて counter 番目のアクセスです。

ミラーサイト [www.ceres.dti.ne.jp] [yk.rim.or.jp]

[ホームページ] [日記] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

ページ内目次


■ 宇宙暦 2018.02.22

http://www.ceres.dti.ne.jp/~george/jdiaryB80201.html#20180222

2018.02.22(木) FreeBSD 11.1 RELEASE の apache-2.4 に Let's encrypt を入れてみる。

Let's encryptを使うなら、certbotというツールを使うのが良いらしい。

ssh george@n3050 ~ $ pkg search certbot
py27-certbot-0.20.0,1          Let's Encrypt client
py36-certbot-0.20.0,1          Let's Encrypt client
ssh george@n3050 ~ $ 

python3.6用を使ってみよう。

sudo pkg install -y py36-certbot-0.20.0,1
apachectl stop
certbot-3.6  certonly  --standalone  --preferred-challenges  http
(前略)
<VirtualHost *:443>
    ServerName <ドメイン名>
    DocumentRoot "/usr/local/www/apache24/data"
    ServerAdmin <メールアドレス>
    ErrorLog "/var/log/httpd-error.log"

    SSLEngine on
    SSLCertificateFile "/usr/local/etc/letsencrypt/live/<ドメイン名>/fullchain.pem"
    SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/<ドメイン名>/privkey.pem"
(後略)
# virtual host の設定チェック
apachectl -S
# 設定ファイルの文法チェック
apachectl configtest
# apache再起動
apachectl restart

ふむ。httpsでアクセスできる。


■ 宇宙暦 2018.02.21

http://www.ceres.dti.ne.jp/~george/jdiaryB80201.html#20180221

2018.02.21(水) minikube に heapster を入れる ( minikube addon編 )

前回は helm chart で heapster 入れたけど、実は minikube addon には heapster があった(涙)

前回インストールしたheapsterは helm delete --purge my-heapster で削除してから以下を実行。

# アドオンの一覧表示
minikube addons list

# heapsterを有効にする
minikube addons enable heapster

# grafanaのWeb画面をブラウザで開く
# デフォルトブラウザがEdgeだと、 http://192.168.99.100:30002/ は表示できないので、Firefoxとかで表示する
minikube addons open heapster 

グラフィカルに色々なメトリクスが表示できる。 が....。

george@KabyLakeS ~ $ kubectl top pod --all-namespaces
NAMESPACE     NAME                               CPU(cores)   MEMORY(bytes)
default       my-kjwikigdocker-9f8498777-2hrc6   2m           201Mi
kube-system   heapster-jcqdn                     0m           16Mi
kube-system   influxdb-grafana-h2mpj             8m           40Mi
kube-system   kube-addon-manager-minikube        24m          32Mi
kube-system   kube-dns-54d4f78785-4fns6          1m           43Mi
kube-system   kubernetes-dashboard-r8nk9         0m           19Mi
kube-system   storage-provisioner                0m           35Mi
kube-system   tiller-deploy-7594bf7b76-dqhq4     0m           22Mi
george@KabyLakeS ~ $ kubectl top node
NAME       CPU(cores)   CPU%      MEMORY(bytes)   MEMORY%
minikube   155m         7%        1466Mi          77%
george@KabyLakeS ~ $

1.4Gくらいメモリ食っててワロタw

minikube heapster addon の内部構成はよくわからんけど、たぶん以下のような感じなのだろう。

heapsterは定期的に各種メトリクスを取ってinfluxdbに覚えさせる。 influxdbから情報を拾ってWeb画面に華麗にグラフ表示しているのは grafana (Ruby on Rails)。

minikubeはデフォルトでは2048MBメモリ構成でVMを起動するので、heapster + influxdb + grafana をセットで動かすとメモリ消費がヤバい結果となった。

なるほど、デフォルトでdisabledにされるaddonだな...。表示は華麗なんだけども...。

あと、kubectl top podの合計とkubectl top nodeの値が合わないのも変だな。なんだろこれ。


■ 宇宙暦 2018.02.16

http://www.ceres.dti.ne.jp/~george/jdiaryB80201.html#20180216

2018.02.16(金) minikubeにheapsterを入れてkubectl top nodeしてみる

tag:kubernetes

minikubeにはheapster(kubectl top nodeとかで使うサービス。CPU使用率とかメモリ使用率を表示)が入っていないので、入れてみる。

インストール方法は、helm & charts に頼るw

helm ( & tiller ) & charts は、kubernetes用の homebrew(MacOS X) とか chocolatey(Windows) とか yum(Red Hat) みたいなモン。

helm & tillerがyumのような普通のバイナリパッケージ管理システムと異なる点は、tiller serverが常駐してkubernetesサービスとしてアクセス可能である必要があること。 (要するにクライアント/サーバ型のシステム)

なお、helmでインストールしたchartの情報はkubernetes上のconfigmapとかsecretsに保存されているので、 helm listでインストールしたRELEASE-NAME一覧が表示でき、 helm history RELEASE-NAME とすると、該当するパッケージの履歴が見物できる。


# minikube開始
minikube start

# helm設定ファイル初期化&tiller server(deployment+service)をkubernetesにインストール
helm init

# heapsterのchartのtar.gzを取得
helm fetch stable/heapster

# tar.gzを展開
tar xvzf heapster-0.2.5.tgz

# README.mdを読む。パラメータとして指定できる変数の一覧が書いてある。
# heapster/values.yamlにはパラメータの初期値が書いてある。
# service.typeをClusterIPからNodePortにする必要がある。(minikubeなので)

# helmを使ってインストール。
# RELEASE-NAMEは my-heapster にした。これは helm のインストール管理用の名前。helm list で表示される。好きな名前をつけてOK。
# インストール先の namespace は kube-system とする。
# インストール先のnamespaceをkube-system以外にした場合は、
# kubectl top node 実行時に --heapster-namespace オプションにて 
# heapsterをインストールしたnamespaceを指定する必要がある。
# service.typeは --set オプションでコマンドラインから指定可能。
helm install --name my-heapster --namespace kube-system  --set service.type=NodePort  heapster

# kubectl top node してみる
kubectl top node

実行結果

george@KabyLakeS /c/home/minikube/charts $ kubectl top node
NAME       CPU(cores)   CPU%      MEMORY(bytes)   MEMORY%
minikube   138m         6%        913Mi           48%
george@KabyLakeS /c/home/minikube/charts $

CPU(cores)が138mとあるが、これは1CPUを1000mとしたミリCPUコア(?)という単位のようだ。

kubernetesでは、このPodはCPUリソースを100m使うよーとかメモリを100Mi使うよーとか、予約(require)できたりする。

予約で埋まったノードにはもうPodは新たに作成されないとか、そんな制御もできるようだ。

minikubeは1ノードしか無いので関係ないけど。


■ 宇宙暦 2018.02.14

http://www.ceres.dti.ne.jp/~george/jdiaryB80201.html#20180214

2018.02.14(水) バーチャルネットアイドル ちゆ12歳がバーチャルユーチューバーとして復活?!

マジかよ...。

2018.02.14(水) なぜHTTPS化が必要なのか

なぜHTTPS化が必要なのか

いい記事だったのでメモ。

HTTPのままだと、中間者攻撃でブラウザにウィルス仕込まれる、ということが実際にあるらしい。 NSAとか国家レベルの機関なら十分実施可能で、実際に使われているとのこと。

そろそろ自宅鯖とオレのAWS鯖にもLet's Encrypt入れるかなー


■ 宇宙暦 2018.02.04

http://www.ceres.dti.ne.jp/~george/jdiaryB80201.html#20180204

2018.02.04(日) TIL 中胚葉型とかがあるらしい

You Tube 動画を流し見していたら、ボディビル関連の動画で「中胚葉型」とかいう聞きなれない単語が耳に入ってきたのでグーグル先生に聞いてみた。

ボディビル業界では、生まれつきの体質として「内胚葉型」「中胚葉型」「外胚葉型」の3種類、および、それらの混合型の体質があると考え、それに合わせた食事とトレーニングをすると良い、とされているらしい。

ボディビルに向いているのは「中胚葉型」で、ボディビル大会で賞を取れるのはこのタイプとのこと。

中胚葉とかって卵の発生時にしか使わない単語だと思ってたわ。


■ 宇宙暦 2018.02.02

http://www.ceres.dti.ne.jp/~george/jdiaryB80201.html#20180202

2018.02.02(金) 雪だー

今回の雪は降り始めが深夜からなので、前回のように帰宅ラッシュ時に入場規制乱発で大混乱とはならなかったが、朝は荒れるかな?

後日談。

今回の雪では、特に混乱はなかった模様。


■ 宇宙暦 2018.01.27

http://www.ceres.dti.ne.jp/~george/jdiaryB80101.html#20180127

2018.01.27(土) docker tomcat8のログをファイルではなくstdout,stderrに出力するように変更する

docker上のアプリはstdout, stderrにログを出して、ログ管理はdocker任せ(コンテナサービス提供会社任せ)にするのが統一的で良いらしい。

というわけで、tomcatのログもstdout/stderrに出すようにしてみる。

まずは /usr/local/tomcat/conf/logging.properties の編集。

FileHandlerは全部コメントに。ConsoleHandlerだけ残す。

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
handlers = java.util.logging.ConsoleHandler

#.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
.handlers = java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

#1catalina.org.apache.juli.AsyncFileHandler.level = FINE
#1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.

#2localhost.org.apache.juli.AsyncFileHandler.level = FINE
#2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.

#3manager.org.apache.juli.AsyncFileHandler.level = FINE
#3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#3manager.org.apache.juli.AsyncFileHandler.prefix = manager.

#4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
#4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler

#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler

# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = FINE

# To see debug messages in TldLocationsCache, uncomment the following line:
#org.apache.jasper.compiler.TldLocationsCache.level = FINE

Tomcat AccessLog Valve は、別のログ出力システムを内蔵しているので、上のjava.util.loggingの設定は効かない。

/usr/local/tomcat/conf/server.xml 内部にあるアクセスログのところを編集。 /proc/self/fd/1 ファイルに出力する(無茶しやがって)

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/proc"
               prefix="self/fd/1" suffix="" fileDateFormat="" rotatable="false"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

これで、アクセスログは stdout に、catalina.out は stderr に出てくる。

/usr/local/tomcat/logs にファイルは作成されない。


■ 宇宙暦 2018.01.26

http://www.ceres.dti.ne.jp/~george/jdiaryB80101.html#20180126

2018.01.26(金) ファイル名にja_JP.eucJPが使われたファイルをja_JP.UTF-8ファイル名に変換する

長年、自宅のFreeBSDはLANG=ja_JP.eucJPで運用していたのだが、 iPad用端末エミュレータソフトはUTF-8サポートのみ、というのが多い。

というわけで、LANG=ja_JP.UTF-8にしてみたのだが、eucJP時代に作成した日本語ファイル名を使っているファイルがlsで文字化けする(ファイル名の文字エンコーディングがeucJPなので)ので頭が痛い。

テキストファイル内容の編集を行う場合はemacsが適当に変換してくれるので困らないのだが...。

上手い方法が思いつかなかったのでjarを使ってバックアップしてから戻す、という策に出た。

function f_my_backup_jar() {
    if [ $# -ne 2 ]; then
        echo "f_my_backup_jar  archive-file-name  directory-name"
        return 1
    fi
    local RC=0
    local ARCHIVE_FILE=$1
    local TARGET_DIR=$2

    # シンボリックリンク存在チェック
    local symlinkcount=$( find $TARGET_DIR -type l | wc -l )
    if [ $symlinkcount -gt 0 ]; then
        echo "シンボリックリンクファイルあり。jarはシンボリックリンクではなくファイル内容を格納するので注意。"
        echo "処理中断。"
        return 1
    fi

    # 日本語ファイル名存在チェック
    find $TARGET_DIR > $$.a.txt
    find $TARGET_DIR | strings > $$.b.txt
    diff -uw $$.a.txt $$.b.txt > /dev/null
    RC=$?
    if [ $RC -ne 0 ]; then
        echo "日本語ファイル名あり。"
    fi
    /bin/rm $$.a.txt $$.b.txt

    # 一時的に、eucJPにする。JavaVMはLANGに従ってファイル名の文字エンコーディングを決める。
    export LANG=ja_JP.eucJP
    # jarを使ってアーカイブを作成。jarは内部的にはZIPフォーマットだがファイル名はUTF-8で格納する決まり。
    jar cf $ARCHIVE_FILE $TARGET_DIR
    RC=$?
    # UTF-8に戻す
    export LANG=ja_JP.UTF-8
    if [ $RC -ne 0 ]; then
        echo "jarコマンド失敗;;"
        return 1
    fi
    return 0
}

# バックアップ実行
f_my_backup_jar  /home/backup/webpub2.jar  /home/webpub2

解凍する時は、 export LANG=ja_JP.UTF-8 の状態で jar を使って展開すれば、ファイル名がUTF-8で作成される、という寸法。

ファイルのオーナーは変化してしまうので、chown で適当に補正する必要アリ。

というわけで、オレのFreeBSD機の中のファイル名は全部UTF-8になったゾ。


■ 宇宙暦 2018.01.25

http://www.ceres.dti.ne.jp/~george/jdiaryB80101.html#20180125

2018.01.25(木) Google 翻訳凄い、、、翻訳データをダウンロードしておくとオフラインでも使用できる

Google 翻訳凄い、、、 しかもこれ翻訳データをダウンロードしておくとネット接続してなくていいから、 Textasticと合わせて、僕の電波の届かない区間のある列車の中で翻訳作業できる。 これで通勤列車の中で生産的な活動ができる。素晴らしい。

Google翻訳アプリって、スマホカメラが捉えた日本語の漢字をリアルタイムに翻訳して画面上で英語に張り替えて表示する動画が流行したけど、 オフラインでも翻訳可能アプリなのか。 すげぇな。 神アプリじゃね?

TextasticはiPhone/iPad用の高機能テキストエディタらしい。 iPhone/iPad用エディタ探してたので、後で試してみよう。

関係ないけど、以下のエディタも良さそう。


■ 宇宙暦 2018.01.22

http://www.ceres.dti.ne.jp/~george/jdiaryB80101.html#20180122

2018.01.22(月) 東京都心でも積雪するくらいの大雪

大雪警報が出てたので、今日は早引け。

1730現在、各地の主要ターミナル駅で入場規制がかかっている模様。

渋谷駅では1600ごろから入場規制がかかっていたという話だから恐れ入る。

この他、品川駅は定番の入場規制。 東急田園都市線も各地で入場規制。 メトロ日比谷線も各地で入場規制。 意外なところで茅場町と鎌田と武蔵小杉駅でも入場規制。


old day diaries...


日記ファイルリスト最新100件


Copyright(c) 1996-2018 George(小濱 純). All rights reserved.
私の作成したページへのリンクはご自由にどうぞ。
このページに間違いや要望などがありましたら george@yk.rim.or.jp まで御連絡ください。
メール本文に 6020-5440-3372 と書いて頂くと、ウチのSPAMフィルタを通過できます(2009-06-14から2018-12-31まで)。

[ホームページ] [日記] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

home: <george@yk.rim.or.jp> or <george@ceres.dti.ne.jp>
(I am using white list SPAM filter. To avoid it, please write 6020-5440-3372 in mail body. This key word is valid since 2009-06-14 until 2015-12-31.)