ページ

2019年4月21日日曜日

RRD::Editor


RRD ファイルの構造を変更するときに CPAN の RRD::Editor は何かと便利です。

例 DS の type を COUNTER から DERIVE に変更する。

use File::Find;
use RRD::Editor;

$SIG{__DIE__} = sub {
    print $File::Find::name, "\n";
};

$| = 1;

$top_dir = "/path/to/rrd/.";

sub process {
    return unless (/\.rrd$/);
    return unless (-f $File::Find::name);

    print $File::Find::name, " ... ";
    my ($min_pdp, $max_pdp);
    my $rrd = RRD::Editor->new();
    $rrd->open($File::Find::name);
    foreach $name ($rrd->DS_names()) {
        if ($rrd->DS_type($name) eq "COUNTER") {
            $rrd->set_DS_type($name, "DERIVE");
        }
    }
    $rrd->save();
    $rrd->close();
};

find(\&process, $top_dir);

例 RRA のレコード数を変更する。

use File::Find;
use RRD::Editor;

$SIG{__DIE__} = sub {
    print $File::Find::name, "\n";
};

$| = 1;

$top_dir = "/path/to/rrd/.";

sub process {
    return unless (/\.rrd$/);
    return unless (-f $File::Find::name);

    print $File::Find::name, " ... ";
    my ($min_pdp, $max_pdp);
    my $rrd = RRD::Editor->new();
    $rrd->open($File::Find::name);
    for ($i=0; $i < $rrd->{rrd}->{rra_cnt}; $i++) {
        if ($rrd->{rrd}->{rra}[$i]->{pdp_cnt} == 1) {
            if ($rrd->{rrd}->{rra}[$i]->{row_cnt} < 18432) {
                $rrd->resize_RRA($i, 18432);
            }
        }
        if ($rrd->{rrd}->{rra}[$i]->{pdp_cnt} == 6) {
            if ($rrd->{rrd}->{rra}[$i]->{row_cnt} < 3072) {
                $rrd->resize_RRA($i, 3072);
            }
        }
        if ($rrd->{rrd}->{rra}[$i]->{pdp_cnt} == 24) {
            if ($rrd->{rrd}->{rra}[$i]->{row_cnt} < 768) {
                $rrd->resize_RRA($i, 768);
            }
        }
        if ($rrd->{rrd}->{rra}[$i]->{pdp_cnt} == 288) {
            if ($rrd->{rrd}->{rra}[$i]->{row_cnt} < 797) {
                $rrd->resize_RRA($i, 797);
            }
        }
    }
    $rrd->save();
    $rrd->close();
};
find(\&process, $top_dir);

2018年8月4日土曜日

ssmjp 2018/07

ssmjp 2018/07 の参加メモです。

メモを取ろうとしたら、DPT-RP1 のスタイラスが電池切れで書けず、iPhoneで取ったので断片的になっています。

ssmjp 2018/07 @株式会社インターネットイニシアティブ

プログラム

1. 石田さん        DNS Summer Day 2018報告ー海賊版ブロッキング問題を中心にー
2. @koyhogeさん        「CloudFormation と FaaS のはざま - Kubernetes の設計思想を探る - 」
3. @tcshさん        『続 運用自動化、不都合な真実 〜 なぜコスト削減目的で運用自動化してはいけないのか』
4. @_keihinoさん        『マインドフルネスのススメ』        10分
5. @Alice_Youさん        『OPNsenseをUTMに入れて使う』        10分
6. @goto_ipv6さん        『「DNS浸透いうな」と言うけれど…』


石田さん        DNS Summer Day 2018報告ー海賊版ブロッキング問題を中心にー


DNS Summer Dayについて
2012年より毎年開催
今年は6/27日 参加者 約140名

プログラムと資料は dnsops.jp にあります http://dnsops.jp/event20180627.html

今年のトピックから

- BIND ESV 9.9 から 9.11 へ
- DNSブロッキング

DNSブロッキングについては、JANOG42 のブロッキングセッションの資料も参照してください。
 https://www.janog.gr.jp/meeting/janog42/program

DNS ブロッキングの是非について

ノート:

私も、以前はキャッシュサーバでBINDを利用していましたが、セキュリティ問題でBIND祭りがたびたびあり、対応が大変だったので、Unboundを利用するようになりました。
権威サーバを立てるためにまだBINDを利用しているケースはあると思いますが、最新版にアップデートしておきましょう。
会場でも、是非についてアンケートが取られました。

DNS ブロッキングについては、ニコ動のアンケートでは賛成が50%程度あったそうですが、アンケート内容や対象などの詳細はわからないそうです。

DNS ブロッキングに賛成か反対かというのは、現時点では、何を、どのようにの部分が、技術的にも法整備や運用面でも議論が十分でないため、単純にYES/NOで答えられるものではないと思いました。


@koyhogeさん        「CloudFormation と FaaS のはざま - Kubernetes の設計思想を探る - 」 


背景:
CloudFormationのような、宣言型デプロイツールが増えてきている。
YAMLの複雑さ
コンテナとオーケストレーションツール

でかいYAMLはいや

そもそも、サービスに必要なものを全て記述しているので、サービスが増えればその分長くなる


サーバの管理を減らせば、管理対象が減って、コントロールしやすくなる

FaaS → 新しいパラダイム
長時間実行、大容量メモリなどの処理は、苦手

既存システムとの互換性

コンテナ + オーケストレーションツールは実行イメージの単位でデプロイ

Docker + Kubernetes

しばらく前にまで乱立していましたが、いまはDockerがKubernetesをサポートするようになりこのかたちに落ち着いています。

Kubernetesの名前の由来
Borg スタートレックTNGのBorgです
Project Seven
Voysger の Seven of Nine からきています

コンテナを組み合わせてサービスを作るときのコントロールを司る役割

Kubernetesをつかったシステムでの構築原則
イミュータブル
宣言的設定
自己回復

多数のサブシステムから成り立つ


- クラスタ マシン群 dockerが動けばOK
- Pod ワークロードが動作する論理ノード
- サービス 名前解決 エンドポイント作成
- レプリカセット 同一Podを複数立ち上げ
- DaemonSet 全てのPodに付随して動作するサイドカー群
- デプロイメント 配置
- ConfigMap 設定情報管理のしくみ

こうなってくると、サービスのための新しい考え方も出てくる

- サービスメッシュ データを管理するしくみ

サービスの OSS基盤としての標準と成りつつある

会場からの質問
Q: サービス互換性はどうなのでしょう?
A: GCPでは古いバージョンも今でも動いているため、それほど悪くないと思います。

メモ:
終了後、Kubernetesを自分たちで動かして使っている人ってどれくらいいるのでしょうね、マネージドサービスを使っているケースがほとんどじゃないですか、サービス基盤としてのKubernetesそのものと、Kubernetes上で動かすサービスの両方の面倒を見ないとダメなので、そこはやりたくないですよね、なんてことを話しました。
Kubernetesを使ってサービスを作る立場と、サービス基盤としてのKubernetesを動かす立場の両方があって、インフラエンジニアの立場では、後者の辛身が混じってくるので、辛い話が漏れ聞こえてくるのだろうと思いました。

@tcshさん        『続 運用自動化、不都合な真実 〜 なぜコスト削減目的で運用自動化してはいけないのか』


工数削減ではなく、サービス提供価値の増大(生産性向上)を目指しましょう、というお話。

OPEX (運用維持費)の削減は、 コスト=キャッシュアウトの削減→コストカット = 人件費カット となりやすい

人件費カットの結果

- 業務のやり方を変えずにやると、できることが減り続ける
- 見かけ上コストは下がっているが、担当者の努力で維持されているだけ
- ブラックボックス化

コスト削減は数値のマジック

削減を繰り返すと、最後には売るものがなくなる
廃業するつもりならありでしょう

やるなら費用対効果の改善を目指しましょう

品質、デリバリー(時間)をあげるように
改善のための一時的なコスト増は受け入れましょう


@_keihinoさん        『マインドフルネスのススメ』        10分 


ストレスにマインドフルネス

調身
調息
調心

スピリチュアルな方には行かないようにしている

ノート:
マインドフルネスはよく聞くようになりましたが、ストレス緩和のためには、効果があるのですね。

@Alice_Youさん        『OPNsenseをUTMに入れて使う』        10分 

NXG150
シャンクなら1000-3000円
中はNEXcom DNA1110 (Atom 64bit)

SEIL x86, VyOS など 動く

BIOS はシリアル画面に出る
USBキーボードを認識する

インストールした OPNsense の起動と画面を見せてのデモ

ノート:
自宅の、SophosUTM Home Editionを動かしている機器を、そろそろリプレイスを考えないといけないので、これはちょっといいかなと思いましたが、メモリが2GBということなので、そこが厳しいかな。

@goto_ipv6さん        『「DNS浸透いうな」と言うけれど…』

どこに浸透するの?

アプリケーション?
アプリケーションにキャッシュするの?
独自に名前解決するの?

OracleJVMなどはそうだけど。


ウエブブラウザ?
ブラウザのキャッシュ?

OS?
リゾルバライブラリにはキャッシュはない
nscd
ローカルDNSキャッシュ

フルリゾルバ?

キャッシュに浸透?
要求されないと、問い合わせが起こらない
ネガティヴキャッシュがあるので、レコードがなかったことは覚えているかもしれない

権威サーバ?
そのドメインに関する情報のみを持っている
更新作業により即時反映される

ルートサーバ?
NSレコードのみ保持


まとめ
「浸透」する先は存在しません

ノート:
むかし、i-mode などで、携帯キャリアで IP 網から、携帯電話網に中継するプロキシサーバがあって、DNSレコードのTTLを無視して独自にキャッシュのタイマーを持っていて、なかなか更新されなくていつまでも旧サーバを参照しにくるというのがありました。

DNSのしくみを知っていれば、レコードを書いたら自動で伝播するようなことなはいので、「浸透」なんてことはいわないけれど、仕組みがよくわからない人たちからすると、
まあ「浸透」と言ういう人たちの気持ちはわからなくもないです。



2018年4月25日水曜日

Jabra Elite 65t

Siri/Google Nowなどの音声アシスタント機能に対応したJabra Elite 65t の発売日がついに発表になった。

Alexaの対応は2018年5月末とあるが、予定のなので遅れる可能性はある。

5月14日より発売で、価格は23,130円

Amazonでの販売は、すでに国内正規品の表記になっていて、価格は税込み24980円。
現在はチタンブラックのみ。

$169.99にShipping+$10.01+税金などを考えると、国内の販売価格はまあ適正。

 

2018年4月23日月曜日

LOUPEDECK Lightroom専用のコントローラ

ちょっと気になる LOUPEDECK 「Adobe Lightroom用コントローラ, 編集項目ごとの専用ダイヤルで直感操作」

2018年1月21日日曜日

Go言語の本

オライリージャパンの「Go言語によるWebアプリケーション開発」は、原著「Go Programming Blueprints」は O’Reilly Media, Inc. の出版ではなく、Packt Publishing の出版だった。いまは Second Edition が出ている。


O’Reilly Media, Inc. から出版されている本はこの2冊。

「Introducing Go: Build Reliable, Scalable Programs」
「Concurrency in Go: Tools and Techniques for Developers」
「The Go Programming Language」 は Addison-Wesley から出ている。 邦訳「プログラミング言語Go」は 丸善出版から。
Addison-Wesley からはほかに「The Go Programming Language Phrasebook」が出ている。 これの邦訳「プログラミング言語Goフレーズブック」がピアソン桐原から出ていたが、再版はされていない。 そのほか「Go in 24 Hours, Sams Teach Yourself: Next Generation Systems Programming with Golang」というのも出ている。 Go in 24 Hours は、短期間でGo言語を学ぶにはよい。