AWS re:Invent keynote DAY1
2015/10/7 8:30〜10:30(現地時刻) に行われた keynote 中に発表されたプロダクトをお伝えします。 Amazon QuickSight Amazon発の高速で使いやすく、コスト効果の高い BI ツール。 ビッグデータや IoT と言った言葉が飛び交う中、UI/UX 部分に関しては個々で開発が必要でした。 これを使ってデータがあればすぐにでも BI を構築できてしまう代物。 データ解析には新たに「SPICE」という名のエンジンを開発。 また、SPICE からのデータエクスポートはDomo, Qlik, Tableau, Tibco等にも対応予定とのこと。 Amazon Kinesis Firehose すでにプロダクト化されている Kinesis の派生版。今まで Kinesis にてストリームされたデータについて EC2 や S3 ひいては Redshift で利用する際、ユーザーが個々にアプリケーションを開発する必要がありました。 Kinesis Firehose を利用すればストリームデータを直接、簡単に S3 や Redshift にロードすることが可能になります。 QuickSight といい、Kinesis Firehose といい、ユーザーサイドの開発を必要とせず、やりたいことをすぐに実現できるようになります。 AWS Snowball 今回の製品発表の中で一番驚きを隠せないのがこれだ。 今までオンプレミスからクラウドへ移行したい、と思うユーザーにとって最大の障壁の一つであるデータ移行。 このデータ移行を安全に迅速に行えるようになるプロダクトが Snowball だ。 アプライアンス製品として提供され、配送の際発生するヒューマンエラーを排除する、とのことなので、物流としての Amazon のナレッジも生かされていると思われる。 1アプライアンス 50TB で提供され、複数個使用することで 100TB, 200TB と利用することが可能。 今までかかっていたデータ移行のための回線費用などの削減する。...マークダウン記法のおさらい
DEVLAB改め、IsaBとして本格的に公式ブログ化して、今後記事書く人が増えてくるはずなので、本ブログ用にMarkdown記法の雛形、かつ表示スタイルの確認用のウェルカムドキュメント的にこの投稿を書き起こしたのですが、一般公開しても特に問題ないTIPSでもあるので、そのまま記事として公開しておきます。 そもそもマークダウン記法って何?──という人も多いかもしれないので、 Markdown(マークダウン)は、文書を記述するための軽量マークアップ言語のひとつである。もとはプレーンテキスト形式で手軽に書いた文書からHTMLを生成するために開発された。現在ではHTMLのほかパワーポイント形式やLATEX形式のファイルへ変換するソフトウェア(コンバータ)も開発されている。各コンバータの開発者によって多様な拡張が施されるため、各種の方言が存在する。 上記はWikipediaからの引用です。 まぁ、簡単に言うと、HTML知らなくてもルールに沿った書式でテキスト文章を書くことで、リッチなスタイリングがされたHTML文書に変換できてしまう記述方法と云うものです。基礎的な書式だけでも覚えておくと色んな書式に変換できるので、様々なシーンで利用できるお得な言語スキルです。 ──と云うわけで、さっそく基礎的な書式を紹介していきます。 1. 見出しブロック まずは見出しブロックの書き方から。 原則的にブロック要素の場合は、前後に改行が必要になります。 # 見出しH1 ## 見出しH2 ### 見出しH3 #### 見出しH4 ##### 見出しH5 ###### 見出しH6 これがどのように見えるかというと、 見出しH1 見出しH2 見出しH3 見出しH4 見出しH5 見出しH6 ↑こうなります。 H1、H2のみ、別の記法があって、 見出しH1 =============== 見出しH2 --------------- ↑こんなのも使えます。 見出し直後の行の=や-の数は1個以上であればOKです。 これを利用すると、markdownがスタイリングされていないテキスト状態でも文章が見やすくなります。 あと見出しにハッシュを使い、ページ内リンクを実現することができます(Markdown Extraの拡張機能です。このサイトでは利用可)。 その場合、見出しの後に {#hash} を付けます。 ### ハッシュ付見出し {#hash} ハッシュ付見出し ハッシュ付見出しへのページ内リンクの記法は、後述のリンクの項目を参照してください。 2. 引用ブロック ブロック要素なので、前後に改行が必要です。...まゆこのましんラーニング♡#01
株式会社ISAO入社1年目のまゆこです。 ITソリューション事業部(通称ISD)という部署で事務の仕事をしております。 最近やっとデスクワークに慣れてきました(^^)/ ISDってどんな仕事をしているかというと、アプリやらインフラやらを開発していて・・・ 正直よくわかりません(/_;)頭から煙が出そうです。__ [写真まゆこ] そんな私に最近上司が 「おい!まゆこ、お前マシンラーニングやれよ!」と言ってきました。 [写真上司] まゆこ「マシンラーニングって何ですか?」 上司「よくしらねーけど、最近流行ってるらしーから、誰かやっとかねーとダメっしょw」 まゆこ「・・・」(そんなこと言われましても(’_’)) そこで、同じ部署のGO☆さんに協力をお願いしました。 まゆこ「GO☆さーん!!( ;∀;)」 [写真GO☆] GO☆さんはうちのエンジニアで、きっとなんでも知っているはずです。 Youtube公開中! GO☆さん「まゆちゃん、このサイトを参考にするといいよ」 http://www.apps-gcp.com/predictionapi-introduction-1/ まゆこ「へ~、意外とカンタンなんですね!これなら私にもできるかも!!!」 [写真まゆこ&GO☆] とゆうわけで、まゆこはマシンラーニングに挑戦しまーす♡ ※本記事は、『株式会社ISAO ITソリューション事業部』監修のもとに製作しております。...まゆこのましんラーニング♡#05
こんにちは!まゆこです! 最近急に寒くなりましたね(´・・`) 夏が終わるのが寂しいです…(´・・`) 先日Googleの方から私宛にTシャツいただきました!! ありがとうございます!! 個人的にこのグレーの色味がお気に入りです(^^)/ さて、本題に入ります。 前回「prediction.trainedmodels.predict」で予想データをカンマ区切りで横に並べて入力するか?縦に並べて入力するか?という疑問が湧きましたので、検証してみます。 入力(横に並べる) { "input": { "csvInstance": [ "M,175,165,france" ] } } 結果 "outputValue": "73.833076" 入力(縦に並べる) { "input": { "csvInstance": [ "M" "175" "165" "france" ] } } 結果 "outputValue": "175.622411" 予想結果を見ると縦に並べた方が正しいのですが、Googleのドキュメントを見るとカンマ区切りで横に並べてるんですよね… どうやって、検証しましょう???(’_') GO☆「サンプルプログラムを見つけて、Prediction APIをコールする際の記述を見ればわかると思うよ」 まゆこ「プログラム?なんですか?それ」 GO☆「今までは、APIs Explorerというコンソールからデータを送ってたけど、 プログラムから直接Prediction APIをコールして、データを送ることもできるんだよ」 まゆこ「何がちがうんですか?」 GO☆「やってることは同じだけど、プログラムを組むとより複雑なことができるし、APIの仕様も分かってくるよ」 まゆこ「ふーん…」 GO☆さんがこんなサンプルプログラムを探してくれました。 (そのまま転記したのではなく、内容は少し変えています)...まゆこのましんラーニング♡#04
こんにちは、ITソリューション事業部のまゆこです。 先週は夏休みを利用して、友達と沖縄に行ってきました! やっぱり沖縄の海はきれいでした!! ホントいやされます(´-ω-`) (まわりはカップルばっかでしたけど・・・) GO☆「まゆちゃんおかえりんこ! 沖縄でもブログチェックしてた?」 まゆこ「もちろん! ほらGO☆さん、この写真見てくださいよ(^^)/」 GO☆「フーテンの?」 まゆこ「寅さんじゃないです」(似てますけど(`3´)) まゆこ「ブログはちゃんと沖縄でチェックしてましたよ!それにググって新しい例題見つけたんです!」 ↓ここにいろんな例題が書いてあります。 https://cloud.google.com/prediction/docs/developer-guide 前回、GO☆さんは体重から身長を予想をしてましたが、 このページの「Structuring the Training Data」という例題も身長予測をしています。 ただ、分析するデータの種類(列)が複数ありますね。 そういえば、言語当ても、身長当ても、分析するデータの種類(列)は一つだけでした。 言語当ては「文章」のみ、身長当ては「体重」のみです。 ところがこの身長当ては、 「性別」「父親の身長」「母親の身長」「国籍」といった4種類のデータ(属性とします)を分析させてます。 なるほど、 身長は男女によって異なるし、遺伝もするし、国籍によっても異なります。 つまり相関関係があるってことですね。これは予測しやすいです! 投入するファイルフォーマットは以下のとおりです。 [身長(答え)],[性別],[父親の身長],[母親の身長],[国籍] Excelを使って2万件作成しました。 国籍別、性別による身長のレンジを定義し、ランダム関数を使って多少ばらつきが出るようにつくりました。 つまり、[身長(答え)]と、[性別][父親の身長][母親の身長][国籍]の4属性に相関関係を持たせています。 それでは、予測してみます。 今回もRegression models(回帰モデル)なので、分析結果までは前回とだいたい同じです。 さて、早速予測してみましょう。 前回までは1属性しか入れませんでしたが、4属性を入れる場合ってどうするんでしょう? ↓このページの下の方にサンプルがあります。「Run a prediction against your model.」で検索するとそこにとびます。 https://cloud.google.com/prediction/docs/reference/v1.4/reference { "input":{ "csvInstance":["M", 1.59, 1.51,"France"] } } なるほど、カンマで区切って並べればいいみたいですね。 「prediction....まゆこのましんラーニング♡#03
こんにちは。ITソリューション事業部のまゆこです。 うそです。エクストリームエンジニアのGO☆です。 ★☆ ↓GO☆のYoutube公開中 ★☆ 最近上司から「その髪型おもしろいから絶対切るな、切ったらクビ」とパワハラを受けています。ちりちり さて、今回は夏休み中のまゆちゃんに代わって僕が書きます。 前回は言語当てをしましたが、今回は身長当ての予想をしてみます。 何が違うのでしょうか? その前に、Categorical models(カテゴリモデル)とRegression models(回帰モデル)について説明します。 僕は統計学の専門家ではないので、「Prediction API」に最低限必要なことだけを書きます。ちりちり 1.Categorical models(カテゴリモデル) 予想結果が、特定の選択肢(投入したデータの1列目の値)の中から導き出されます。 つまり、”O” or ”X”とか、”良い” or ”普通” or ”悪い”といった予想結果を導きたいときに使います。 前回の言語当ては、このモデルでした。 分析データの1列目(つまり答え)が文字列だと、自動的にこのモデルになります。 2.Regression models(回帰モデル) 予想結果が、数値で導き出されます。 回帰分析をして予想値を出しているから回帰モデルなんでしょうね。ちりちり 今回の身長当ては、このモデルです。 分析データの1列目(つまり答え)が数値だと、自動的にこのモデルになります。 但し、1件でも1列目にnullとか文字列が入っているとカテゴリモデルになるので注意が必要です。 そんなわけで、今回はRegression models(回帰モデル)で予想します。 それでは実践してみましょう! 体重を入力すると身長を予想してくれるモデルなので、下記のようなファイルをつくります。 [身長],[体重] Excelを使って2万件作成しました。 体重はランダムに生成して、身長はその体重をもとに、多少ばらつきが出るようにつくりました。 つまり身長と体重に相関関係を持たせています。ちりちり 次に「Prediction API」です。 1.「prediction.trainedmodels.insert」でデータ投入、「prediction.trainedmodels.get」で完了を確認します。 2万件ありますが、2列しかないので5分程度で完了しました。 完了のレスポンスに"modelType": “regression"と返ってきたら、回帰モデルです。 ちなみに、“modelType”: “classification"と返ってきたら、カテゴリモデルです。 2.「prediction.trainedmodels.analyze」で分析結果を見ます。...まゆこのましんラーニング♡#02
こんにちは!ITソリューション事業部のまゆこです。 早くも二回目です。 そもそもマシンラーニングって何でしょう? ググってみましたが、うーん、イマイチ分かんないです>< まゆこ「GO☆さん教えて下さーい( ;∀;)」 GO☆「む〜ん、つまり我々が無意識に行っているパターン認識をだねぇ〜・・・」 まゆこ「はい?分かんないので、自分で調べます( ;∀;)」 ふむふむ、私が参考にするサイトを見ると・・・ http://www.apps-gcp.com/predictionapi-introduction-1/ このサイトでは、3カ国で書かれた文章を分析させて、コンピューターに言語当てをさせる実験をしています。 スゴイ!なんか未来を予想する、夢のようなツールなんですね!とにかく実践してみましょう。 1.まず、解析させるデータを用意します。 情報はできるだけ多い方がいいみたいなんですが、今回のサンプルデータは400件程度です。 ↓サンプルデータです。 https://cloud.google.com/prediction/docs/language_id.txt これは英語、フランス語、スペイン語が書かれた文章データで、 [言語名],[各言語で書かれた文章] といったレイアウトでできています。 ファイル作成で気をつけることをまとめると・・・ ・最初の列には”答え”を書く。サンプルでいうと、”英語”とか”フランス語”とか”スペイン語”です。 ・次の列からは”答え”を導くための情報を書く。複数列あってもいいみたいです。 ・列はカンマで区切る。 ・ヘッダは不要。 以上です。 2.次に、ファイルをGoogleストレージにアップします。 ここからGoogle Developers Consoleというサイトで作業をします。 https://console.developers.google.com/ まゆこ「なんですかこれ?」 GO☆「Google環境で開発する際に使う開発者向けのツールだよ。まぁ使ってみないとわかんないと思うよ!」 会社用のアカウントでログインし、プロジェクトを作成して、「Prediction API」と「Google Cloud Storage」をオンにしました。 そしてバケットを作成してアップロードします。 何をしているかよく分からないまま進んでいますが・・・ 無事アップロードできました。アップロードはあっという間でした。 3.そして、解析開始です。 ここから「Prediction API」を使用します。 「Prediction API」がブラウザから使えるサイトに行きます。 https://developers.google.com/apis-explorer/?&_ga=1.100999174.668741449.1412325898#p/prediction/v1.6/ これは「APIs Explorer」と言って、ブラウザ上でGoogleの各種APIを簡単に試すことができます。 GO☆「ここに並んでいるのがPrediction APIで、これを使って解析するんだよ。とにかく使ってみよう!」...まゆこのましんラーニング♡#01
株式会社ISAO入社1年目のまゆこです。 ITソリューション事業部(通称ISD)という部署で事務の仕事をしております。 最近やっとデスクワークに慣れてきました(^^)/ ISDってどんな仕事をしているかというと、アプリやらインフラやらを開発していて・・・ 正直よくわかりません(/_;)頭から煙が出そうです。 そんな私に最近上司が 「おい!まゆこ、お前マシンラーニングやれよ!」と言ってきました。 まゆこ「マシンラーニングって何ですか?」 上司「よくしらねーけど、最近流行ってるらしーから、誰かやっとかねーとダメっしょw」 まゆこ「・・・」(そんなこと言われましても(‘o’)) そこで、同じ部署のGO☆さんに協力をお願いしました。 まゆこ「GO☆さーん!!( ;∀;)」 ☆★↑↑GO☆さんのYoutube公開中!☆★ GO☆さんはうちのエンジニアで、きっとなんでも知っているはずです。 GO☆さん「まゆちゃん、このサイトを参考にするといいよ」 http://www.apps-gcp.com/predictionapi-introduction-1/ まゆこ「へ~、意外とカンタンなんですね!これなら私にもできるかも!!!」 とゆうわけで、まゆこはマシンラーニングに挑戦しまーす♡ ※本記事は、『株式会社ISAO ITソリューション事業部』監修のもとに製作しております。...スマートウォッチとMBassを連携したアプリの未来は明るい
スマートウォッチアプリについて スマートフォンほどではないですが、世界的にスマートウォッチの普及率は急激に上がりつつあります。Apple Watchを例にすると1年間、3,600万台が売れたそうです。 http://japan.cnet.com/news/business/35064877/ また、AppleとGoogleの中心としてスマートウォッチアプリ開発のプラットフォームが用意されていますのでアプリも簡単に作れます。わざわざスマートフォンをポケットから出さなくてもスマートウォッチでユーザーの要求を満たす時代はすぐ近くまで来ています。 ということでスマートウォッチ(Apple Watch)とMBass(Parse)連携したアプリを作ってみることにしました。 Parseについてはこちら アプリを作ってみよう スマートウォッチから打刻をするアプリをいかに簡単につくれるのか紹介したいと思います。IOS開発経験者を対象に説明しますが、初心者でもすぐ理解できるレベルですのでぜひ最後までよんでみてください。 開発環境 Xcode 6.4 IOS 8.4 Swift プロジェクト作成 IOS用の新しいプロジェクト(Single View Application)を作成する。 Xcode > File > New > Targetを選択 WatchKit App を追加 画面仕様 Check Inボタンをクリックした時に画面1のインタフェースが呼ばれるようになっています。WatchKit Extentionフォルダ配下にCheckInControllerファイルを作成し、画面1に紐付けます。 ※Check Outも同様 CheckInControllerを実装 WatchKitフレームワークをインポート。 WKInterfaceControllerクラスを継承します。 CheckInControllerが呼ばれた時に最初に実行されるwillActivateメソッドを実装します。 現在の時刻を取得。 ここがポイント! 処理内容を親アプリ(IPhone)に伝えます。 import WatchKit // <1> import Foundation class CheckInController: WKInterfaceController { // <2> @IBOutlet weak var message: WKInterfaceLabel!...Apple Watchの使用感レビュー
Apple Watchを約1ヶ月間使ってみました。 これまでのウェアラブルデバイス使用歴はライフログ系 (UP by Jawbone) なので、 全く違ったデバイスという印象で触れることになりました。 (UP by Jawboneは充電時以外、常時身に付けていたせいか、故障してしまいました…) 既に色々情報が出回っていますが、あえて書きます! デバイス概要 小さい割に多機能です。(その分、バッテリーとトレードオフになりますよね…) Apple Watchには以下の機能が搭載されています。 タッチディスプレイ スワイプ ドラッグ タップ 強めにタップ 感圧タッチ(Force touch)による操作はどうにも慣れませんでした。 デジタルクラウン/ホームボタン 回すとスクロール/押すと選択。デジタルクラウン(時計でいうところの竜頭)という古いようで新しいインターフェースで、ユーザに新たな体験を与えるあたりはAppleらしさでしょうか。 サイドボタン 友達の表示/非表示 スピーカー マイク 心拍計センサー あまり期待していませんでしたが、自身の血圧範囲内の値が計測されいました。 加速度センサー 活動量の計測など。時計を見るときの腕をひねる動作でディスプレイが点灯する仕様に感動しました。 画面構成 基本的な画面構成は主に4種類 (+各アプリ画面) ↓ざっくりな構成 [2] ↕ [1]↔[3] ↕ [4] [1] 文字盤 基本的には腕時計なので。 文字盤はプリインストールのものからしか選択できません。文字盤表示時に"強めにタップ"すると変更できます。 (最初、気付かなくてアタフタしました。) 文字盤の種類によっては天気やタイマーを追加表示できます。 [2] ホーム画面 iPhoneアプリの内、Apple Watch対応のアプリがインストールされます。 iPhoneアプリ (iOS8以上) にプリインストールされている「Apple Watch」アプリから設定変更可能です。 [3] 友達の表示 最大12人まで登録できる(らしいです)。iOS8から利用できる「Appスイッチャーに連絡先を表示」機能を利用している方には便利かもしれません。 (利用していないので、推測です…) [4] グランス (Gance) ウィジェット(OS X で言うところのダッシュボード)のような感じで、アプリを起動しなくても情報が見れます。 標準機能とプリインストールアプリ 電話 iPhoneへの着信をApple Watchで通話可能だが、Apple Watch内蔵スピーカーで相手の声が聞こえて焦りました。 欧米スタイルである「Bluetoothヘッドセットでの通話」に抵抗がなければ、便利に使えそうです。 アクティビティ 円を使ったグラフィカルな見せ方が特徴的です。 1時間、座りっぱなしなど動きが少ないと、毎時50分頃に、立って運動することを促してくれます。 基本、座って仕事をする場合、いい気分転換の目安になります。 ミュージック ずばりリモコンアプリです。 再生・停止・曲送り・音量の調整はイヤホン付属のリモコンのほうが直接的で使いやすいです。 楽曲変更もできるのですが、曲数が多いと小さい画面で探すのも大変で…結局iPhone使ってました。 カメラ iPhoneカメラのサブディスプレイ&シャッター。 片手にiPhone、もう片手にApple Watchでプレビュー確認するなら需要ありそうです。 スクリーンキャプチャ ホームボタンとサイドボタンの同時押しで撮れます。 タイマー ポモロードタイマーとしての使えば捗ります。 サードパーティ製アプリ サードパーティ製のアプリはApple Watch対応のiPhoneアプリをiPhone側にインストールすることで使用できます。 いろいろ使ってみたが、まだまだ荒削り感じです。一部抜粋してご紹介します。...AngularUI Calendar (FullCalendar) dayClick not work expectedly on iOS
bowerで入れた angularUI Calendar 1.0.0, FullCalendar 2.1.1での話です。 Angular WEBアプリでカレンダーを使いたいというニーズを完璧なまでに満たす AngularUI Calendar http://angular-ui.github.io/ui-calendar/ ですが、月(month)表示から日セルクリックで日(agendaDay)表示に切り替えようとしてdayClickを使用した場合、なぜかiPhoneではうまく動作しません。 正確にいえば、タップではなく一秒ほど長押しするか、軽く日セルをドラッグしようとするとdayClickが呼ばれます。 なんでどぅあぁぁぁーーーー! と3日ほど頭を悩ませた結果、なんとか対処できたのでおすそ分けします。 ちなみにAngularUI CalendarはFullCalendarのラッパーなので、FullCalendarで同じような問題に悩んでいる方にも効くはず….です。 原因 dragイベントの扱いの違いに起因しています。 dayClickはclickイベントで呼ばれていません。dragの終了を検知して呼ばれています。 iOS上のSafari(というかwebkit?)以外では、タップして指を離した瞬間に drag開始、drag終了のイベントが発生するのですが、iOSではdragするか、しばしタップし続けないとdrag終了イベントが発生しないためのようです。 どうにもならんのでタップイベントでdayClickを呼ぶようFullCalendar.jsを修正しました。 4038行目付近 coordMap: null, // a GridCoordMap that converts pixel values to datetimes cellDuration: null, // a cell's duration. subclasses must assign this ASAP isTouch : false, // separate touch and scroll....mysql5.6レプリケーションでold_passwordが拒否される
こんにちは。小宮です。 同僚の湯尾さんから教えてもらった情報を貼っておきます。 【mysql5.6レプリケーション仕様が変わった話】 某環境で mysql5.5でフルdumpしたSQLを5.6に流し込む作業を行い、その後差分データを5.5→5.6にレプリケーションしようとしたところ レプリケーションが出来なかったという症状がありました。 その後、mysql5.6の設定見直しのためstop slaveしてmysqlをrestartしレプリケーション貼り直しと試みましたが 今度は5.6環境同士でもレプリケーションが貼れなくなりました。 原因はmysql5.6からsecure_authの仕様が変更されたためクライアント([mysql]以下の記述)設定で skip-secure-auth が設定されていても レプリケーションIOの時点でold_password(16桁パスワード)が拒否されるためレプリケーション自体開始できないとのことです。 ステータス(show slave status\G)では下記の様になります。 ------------------------------- ・・・ Slave_IO_Running: Connecting Slave_SQL_Running: Yes ・・・ Last_IO_Errno: 2049 Last_IO_Error: error connecting to master 'repl@172.17.xx.xx:3306' - retry-time: 60 retries: 1 Last_SQL_Errno: 0 Last_SQL_Error: ・・・ ------------------------------- 解決策として、お客様の許可を得て、mysql5.5、5.6環境の両方に新たにセキュアなレプリケーション用アカウントを作成して、それでレプリケーション貼りました。 セキュア(old_passwordではない)なパスの作り方は下記の通り。 ------------------------------- set session old_passwords = 0; GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *....zabbixのグラフで日本語が文字化けを直す
おはようございます。インフラ宮下です。 zabbixのグラフ設定は標準では日本語が表示されません。 ※アイテム名に日本語を使っている場合です。 動作環境はこんな感じです。 OS:CentOS release 6.5 (Final) バージョン:zabbix-server-2.2.3 「監視データ」→「グラフ」で作成したグラフを見てみると下記のように日本語の部分が□になってしまいます。 これはアイテムに日本語を使っていて画像変換時にフォントがないのが原因です。 まずはフォントがおかれている場所を確認します。 # ls /usr/share/zabbix/fonts/ graphfont.ttf 次にOSに搭載されているフォントを確認します。 $ ls /usr/share/fonts/ dejavu ipa-gothic ipa-mincho ipa-pgothic ipa-pmincho vlgothic IPAを使います。ただシンボリックリンクを張るだけでOKです。 特にzabbix-serverの再起動も必要ないです。 # ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf /usr/share/zabbix/fonts/ipagp.ttf # vi /usr/share/zabbix/include/defines.inc.php (変更箇所) 7 39c39 < define('ZBX_GRAPH_FONT_NAME', 'ipagp'); // font file name --- > define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name 86c86 < define('ZBX_FONT_NAME', 'ipagp'); --- > define('ZBX_FONT_NAME', 'graphfont'); このようにグラフもきちんと日本語表示されました。...Chef-Soloから卒業、chefのlocalmodeをつかってみた
こんにちは。小宮です。 事の経緯 お急ぎの場合は飛ばして大丈夫です。 Chef-Soloがdeprecated(非推奨)とかで開発元からchef-zero(localmode)をつかうよう周知されたのが半年くらい前でしょうか。 当時はどうしたらええんやと色々比較してみたりしたあげく時が経ってとうとう検証することに。 数年で入れ替わるのではなく長く続くことが前提だとコストをかけても技術的負債を残したくない事情があるケースもあるようで。 個人的には正直コストをかけて移行するかどうかは微妙なところで、soloがすぐ無くなるみたいな話ではない気がしてます。 世の中的にはcookpadさんからitamaeとか出てたりAnsibleが流行ったりなど。 Ansibleはnot_ifに相当する機能を持たせようとするとドライランできなくなるみたいなのが致命的らしいと聞いたけど、 そもそもYAMLに書きなおすコストがあり得ないので試してないです。 itamaeも気になってたんですがroleとenvironmentをattributeになおす手間がありそうでした。 roleもenvironment数もそれなりの規模で配列attributeを優先順位で意図的にdeepmergeしたり初期化するようなことをしてるし その修正はだいぶヘビーな気が。あとdata_bags機能がないのも超困る。他に移行するにはchefの沼にだいぶつかりこんでいたようです。。 あとChef-Serverはコミュニティ版はHA機能がNGだときいたりしました。 現実的にはlocalmodeだろうということでそんな感じでいつもどおり右往左往で検証してみましたので備忘録です。 chefって情報は結構あるんだけどモヒカンの人(技術レベルの高すぎる人)ばっかりなため初心者がどこで惑うか想像つかないのか肝心なところが分かりづらくて 結局念入りにヘルプを眺めたりググりまくって試しまくるなどというのが多いような。。 使い方も多くてそれぞれの環境が違って色々まざると発狂ちょっとこんがらがりやすいかもしれません。 後日、分かりやすい素敵なチャートをみかけたので追記しておきます。 あなたに合ったChefはどれ? 〜 おすすめ構成確認チャート #getchef - クリエーションライン株式会社 普及と発展には分かりやすさというのはとても重要かなと思います。こんな感じのやってみた記事が多少それに寄与するといいなーと思います。 参考情報 まあ色々みてみたんで参考情報からご紹介いたしましょう。パターン分けておきます。 Chef-Zeroの仕組みとか機能とかの話は別途ググっていただくと分かりやすいと思うんですが、、 インメモリChef-Serverとローカルモードの違いがありまして、私がやりたいのはローカルモードのほうです。 インメモリChef-Serverとして使う場合は Chef-Zeroを起動してcookbookとroleとenvironmentとdata_bagsのデータなんかをknifeコマンドで登録しておく必要があるようです。 インメモリなので、Chef-Zeroを停止すると登録したデータは消えます。 なので手間を考えるとChef-Serverへの移行を見据えて1次的にとかchef-shellでとれる情報をみたい時に使うという用途になるのかなーと思いました。 ブラウザからアクセスすると登録したjson情報などが見えるのはまあ便利と言えば便利かもしれないけどgitでみればいいやんというレベルだったかなあ。 ローカルモードとして使う場合は、コマンド実行時だけChef-Zeroが内部的に起動してレシピ適用終わったら落ちるようで、 knife.rbに書いといたChef-Repoのパスを勝手に見てくれて余計な手間はなさそうでした。 ・Chef-ZeroをインメモリChef-Serverとして動かしたいタイプ Amazon Linuxで簡易Chef Server(chef-zero)を動かしてみた | Developers.IO CentOSにchef-zeroのインストール - clavierの日記 chef-zero を構築して knife-xenserver と連携してみた一部始終 - ようへいの日々精進 XP Ruby - knife zero bootstrap で リモートに chef がインストールできない - Qiita 軽量簡易Chef Server「chef-zero」を使ってみよう #opschef_ja « CREATIONLINE, INC....