ryouma-nagareのブログ

IT関連をメインに書いていきます。

OSC 2016 Spring/Tokyoに行ってきました

www.ospn.jp

【運用をプログラマブルに!JobSchedulerを活用したOperations as Codeの世界】

資料アップされました。

http://www.slideshare.net/ikedai/osc2016-tokyo-sprintjobscheduleroperations-as-code

●JobSchedulerの特徴

  • Windowsでも動く
  • エージェントが入れられない場合はSSHで操作可能
  • 冗長化・負荷分散機能を自分自身が持っている
  • APIが豊富
  • 悪いところ
  • GUIでジョブ定義はできず、JOEというエディタで書く。XMLでの取り込みは可能

●JOB定義

クラスタリング構成

  • 各Engineで同じ内容が共有できていればOk
  • NFSで共有したりS3からSyncするとか
  • DBにハートビート情報を送付

●負荷分散

  • 自分自身で動く最大プロセス数を定義しておくと、Active機でジョブあふれ→Standby機で残りのジョブを実行ということができる。

API

  • 内部API
  • ジョブの中でJobSchedulerに対する操作が可能
  • WebAPI
  • 外部ツールからJobSchedulerに対する操作が可能
  • Zabbixの監視結果をもとに、あるジョブを実行する、みたいな動作
  • curlでリクエストボディにXML形式のコマンド名を与えればよい

XMLは面倒なので↓を開発中

https://github.com/ike-dai/go-jobscheduler

●HyclopsJobMonitoting

  • ジョブの失敗状況をZabbixに連携
  • ジョブの実行処理時間をZabbixに連携
  • ジョブ実行時にZabbixのトリガー条件式を動的変更
  • ジョブ実行に伴う負荷に関する閾値(CPU、ディスク負荷など)を上げることが可能

簡単に試すためにDockerイメージを公開しています。 docker pull ikedai/jobscheduler

紙1枚ですが、インストールマニュアルもらってきました。

JobSchedulerには興味があったので、自分サーバのバックアップスクリプトをJobScheduler管理にしようかと思います。

【ログ収集基盤ソフトウェア Fluentd 超入門】

●Fluentdとは

  • ログの転送と集約
  • ログの加工
  • タイムスタンプの形式統一など
  • フィルタリング機能
  • 取捨が可能
  • バッファリング
  • 転送先に障害があった場合に復旧後に送ることが可能
  • 他ツールと連携してログの可視化

●いろいろ

  • サーバ/エージェントの区別はない。プログラムは同じで設定が違うだけ。
  • td-agentはTreasureData社が提供するFluentdのパッケージ
  • 最新はtd-agent2
  • Windowsは安定版がリリースされていない。
  • 現状はnxlogからfluentdに転送する必要がある。

●Fluentdの設定とプラグイン Fluentdの設定は利用したいプラグインの設定

  • Input
  • sourceタグ
  • Filter
  • filterタグ
  • Output
  • matchタグ
  • バッファ
  • Outputプラグインの継承

プラグインの検索

http://www.fluentd.org/plugins

  • 開発者が日本人なので、日本語の情報がWEB上に豊富
  • ruby gemでインストール

●ルーティングとタグ ルーティング

  • 1つのログレコードをどんな処理をして、どのように最終目的地に届けるか

タグ

  • ログレコードの識別子
  • 例:access.httpd.hostA

  • chunkサイズとQueue内のchunk数は設定可能 タグ名でルーティングの制御を行うことができるが、利用が難しいこともあり、ルーティングを制御するためのラベルがtd-agent2 で利用できるようになった。

  • fulentd 0.10の時に開発されたプラグインで、メンテナンスされていない場合はラベルが利用できない。

●ログの構造化

  • fluentdでは時刻の統一のほか、JSON化ができる

●バッファリング

  • 書き出せないとQueueが減らないので、あふれた場合にはInputが破棄される

●ログの可視化ツール

  • Elasticsearch+kibana
  • Zabbix
  • GrowthForecast

あとは事例の紹介。未だにgnuplot使ってる事例が…

Fluentdも使ったことはありますが、logstashの方が好み。

【関数型Linux: NixOSの仕組みと特徴の紹介】

VineLinux7はまだDVDもできていないようなのでこちらへ。

http://www.meetup.com/ja-JP/Tokyo-NixOS-Meetup/

のオーガナイザーであるサニエ エリック氏のお話

資料は後ほど↓にアップされるそうな。

https://github.com/Tokyo-NixOS/presentations

資料もnixコマンドで作ってる!

●パッケージマネージャとは?

  • パッケージ操作にはリスクがあるので、一般のパッケージマネージャはルート権限が必要
  • 依存管理は難しい。そのため最近はコンテナでの配信が増えている。

●Nix:関数型パッケージマネージャ

  • POSIX準拠
  • よくできたマニュアルがある。

●Nix:特徴

  • パッケージを複数バージョン扱える
  • 一般ユーザがインストールできる
  • 依存関係完結の保証
  • ビルド再現性の保証
  • nix-shell

●Nix:遅延評価純粋関数型パッケージマネージャー

  • 関数型
  • パッケージは関数であり、依存は引数
  • インストールされたパッケージのファイルは変更されない
    • 安全性につながる
  • 純粋
  • 関数の結果は引数のみで決まる 再現性につながる

●Nix:仕組み

  • Nix言語はパッケージ用のドメイン固有言語
  • NixはNix言語のコンパイラ
  • パッケージはNixストアにインストールされる
  • パッケージは導出ハッシュで特定されたディレクトリにインストールされる
  • パッケージは他のパッケージファイルを変更できない
  • Nixストアは読み込み専用ファイルシステムでマウントされる

●システムパッケージ以外の管理

  • アプリケーションパッケージも対応
  • Ruby,PythonPIPなど
  • Haskellのサポートが特に進んでいる

関数型パッケージマネージャということで、デモのプロンプトシェルが”λ”なんだろうか。 いずれにしてもかっこいい。

オープンソースのプロジェクト管理「Redmine」を使ったヘルプデスクシステムでサポート業務を効率化】

資料アップされました。

http://www.slideshare.net/g_maeda/redmine-58804869

以前にredmine.tokyo勉強会で聞いたお話だが、これからの案件へのアイデアと復習をかねてもう一度。

https://my.redmine.jp/farend-support/

のお話。

●利用実績

  • 問い合わせ:5~6件/日、Max20件ぐらい
  • 平均2往復/件程度のやりとり
  • 表示フィールドを減らすことで、メールフォームに近い画面にしている。
  • 非表示にできない項目は「フィールドに対する権限」を「読み取り専用」にすることでお客様には見えないように。

後で公開する資料には付録に設定があります、という他

http://hosting.redmine.jp/

で同じサービスもできますよ!との宣伝。 8000円/月ですが、プラグイン入れられないのはつらいかも。

●質疑応答から。

Redmineの設定変更のみであり、コアには一切手を入れていない。 新規チケットでガイダンスを表示するプラグインのみ追加。

残念ながら今日は「COBOLか!」のノリつっこみは無し。

懇親会など

あえてFirefoxOSの袋をもらった。 f:id:ryouma-nagare:20160302182853p:plain

懇親会開始 f:id:ryouma-nagare:20160302182858p:plain

生ハムを切り分ける宮原さん f:id:ryouma-nagare:20160302182900p:plain