ぽよメモ

レガシーシステム考古学専攻

新入生に捧ぐPCの選び方 -Office・アクセサリ編-

poyo.hatenablog.jp

上記記事の続きみたいなものです.

Officeソフトウェアについて

一口に「Office」と言いますがだいたいの場合これは「Microsoft Office」を指しています.Microsoft社がリリースしているOfficeソフトウェアで,よく聞くWordやExcelPowerPointなどを含んでいます.たまに引っかけのように「Kingsoft Office」というKingsoft社のOfficeを搭載して「Office搭載PCです!」と言っているPCもあります.注意しましょう.

Officeってそもそも何?

これは主に文書作成(Word),表計算等の数値処理(Excel),プレゼンテーション(PowerPoint)用のソフトウェアの総称です.いくつかのバージョンが存在します.

Microsoft以外にも無料のLibreOfficeなどがあり,単なるレポート作成程度であれば高価なMicrosoft Officeを購入しなくても問題ありません.

Officeって必要?

これは賛否両論あると思いますが,「あった方が良い」です.代替手段はいくつもありますが,普及率という点で他を大きく圧倒します.数人での共同作業などには必須と言えるでしょう.

ただし,これは購入時に必ず買わなければいけないという意味ではありません.後からでもインストールできますし,すぐ必要ということもおそらくないです.
また,大学のPCに入学後割り当てられる自分のアカウントでログインすることでOfficeを使うことも出来ます.

買い方が色々あってよく分からない…

大きく分けて3種類の買い方があります.(~~はHome&BusinessとかProfessionalとかに適宜読み替えてください)

  • Microsoft Office ~~ Premium
    • ずっと最新版を使える.
    • 一台でのみ使える.
    • PCを買い換えても次のPCに入れ替えたりは出来ない.
    • PC付属の場合だいたいこれ
  • Microsoft Office 2016 ~~
    • 2016なら2016,2013なら2013をずっと使える.
    • 2台のPCにインストールできる.
    • PCを買い換えても入れ直せる
    • for Macと書かれたMac用もある
    • 新しいOfficeが出てもアップグレードできない
    • ちょっと高い
  • Microsoft Office 365 Solo
    • ずっと最新版を使える
    • Windows一台,Macに一台インストールできる
    • PCを買い換えても入れ直せる
    • 月単位,または年単位で契約して使う.

1つ目のPremiumに関しては最初にPCに付属している場合を除いて購入できない形態になっています.後の二つは家電量販店や大学生協,またネット通販でも買うことが出来ます.2つめに関してはAcademicパッケージがあるので学生はそれを買った方がお得です.

最初から付けておく方が安くなる場合も,後から購入した方が安くなる場合もあります.特に二台にインストールしたいとか,MacWindowsも持っているという人はよく考えてどのタイプで購入するか決めましょう.

MacにOfficeはないの?

MacにはデフォルトでiWorkと呼ばれるソフトウェアたちがインストールされています.これにはPagesやNumbers,Keynote(それぞれWord,ExcelPowerPointみたいなソフト)が含まれています.互換性があるとAppleは言っていますが,Mac向けのMicrosoft Officeを使うことをオススメします.
生協や家電量販店でMicrosoft Office 2016 for Macのアカデミック版が発売されています.他には上記で述べたOffice 365 SoloであればMac一台,Windows一台にそれぞれMac版,Windows版のOfficeをインストールできます.

アクセサリについて

スマートフォンのケースやフィルムのように,ノートPCにも様々なアクセサリがあります.個人的には保護フィルムは必要ない*1と思っているのでここでは触れませんが,必要な人は必要に応じて購入してください.

VGAアダプター

f:id:pudding_info:20170224021609p:plain:w300

大学でプレゼンテーションなどをするとき大抵プロジェクターでスクリーンに投影するのですが,接続端子がいわゆるD-subやVGAと呼ばれるものになります.最近の薄型モバイルノートパソコンでは搭載されないことが多いため,買っておくと良いかと思います.

家電量販店にPCを持って行ってこれで使えるVGAアダプターを出してくれと言えば売ってくれます.

ケース(またはカバー)

本体に傷が入るのが嫌という人は買うべきだと思います.MacBook等を除いて本体に取り付けるハードカバーなどはあまり種類がないので,スリーブ状のケースに入れた上で鞄に入れる,または別でカバンを持つことになりますが,どちらも携帯性が損なわれるので個人的には余り好きではないです*2

壊れるときはケースに入れていても壊れるので,入れておけば絶対安全というわけではないです.

USBアダプタ

f:id:pudding_info:20170224022853p:plain:w300

最近ではMacBookに代表されるように,USB Type-Cと呼ばれる新しいUSB端子しか搭載していない機種が増えてきました.これらには従来のUSBメモリを挿して使うことが出来ないので,必要に応じて変換アダプタを買う必要が出てきます.

まとめ

  • Officeは買えるなら買っておこう.無理してまで今すぐ買う必要は無い.
  • VGAアダプターはほぼ必須.
  • USB Type-Cしかないノートパソコンでは変換アダプタを持っておくと便利

こっちの記事もついでにどうぞ.

poyo.hatenablog.jp

*1:大きさがスマートフォンの数倍あるため,ホコリや気泡を入れずに貼ることが難しく,またそれほど頻繁に触れる部位ではないので必要性は低いと考えています.ただし,タブレットスタイルにして使用するPCなどには購入後すぐに貼ることでディスプレイ表面のコーティングを皮脂などから保護できるのでは無いかと思います.

*2:前までは持っていたのですが面倒だったので使わなくなってしまいました.

新入生に捧ぐPCの選び方 -選び方の基準編-

新入生の皆様,ご入学おめでとうございます.pudding_infoです.

一応PCを売ったりするバイトをしていたりもします.

多くの場合,大学入学時には「レポートとかに使うだろうから」とPCを買ってもらう,又は買うのでは無いかと思います.ただこれまでPCなんて欠片も触れてこなかったのに,いきなりどれがいいかといわれても見た目程度でしか選べない!という人も多いのでは無いでしょうか.今回はそういった方々を対象にこの記事を書いています.参考にしていただければ幸いです.

PCを選ぶ前に

お願いだから部屋でホコリを被っているだけにしてあげないでください.

購入時に気にすべきこと

気分を切り替えて選び方の基準を書いていきます.

大学生が使うために必要な最低限の要素は,多くの場合は以下の2つになるかと思います.

  • 持ち運べること
  • 動作が遅くないこと

持ち運べない,動作が遅い,これらは結果としてノートパソコンを使わなくなっていく要因になります.せっかく買うのですから,どんどん活用していきたいですよね.

持ち運べるかどうか

まず「持ち運べる」という条件から考えていきましょう.
PCの大きさは主に「インチ」で,重さは「kg(またはg)」で表すのが一般的です.分かりづらいのがインチで,これはPCの画面の対角線の長さです.

f:id:pudding_info:20170123001019j:plain

よく売られているサイズとしては15.6インチ,13.3インチ,11~12インチが上げられます.
まず最初に言っておきますが,15.6インチを買うのは辞めましょう.理由は以下の通りです.

15.6インチをオススメしない理由

大きい

画面サイズが大きくなれば本体サイズが大きくなるのは当然ですが,15.6インチのノートパソコンではおおよそ横幅37cm×奥行き26cm前後が主流です.A4のレポート用紙が29.7cm × 21cmなので,カバンに入るかどうかというサイズになります.

重い

15.6インチのノートパソコンでは2.4kg前後が主流です.

これをカバンに入れて持ち運ぶのはかなり大変であると言わざるを得ません.ちなみに有名な辞書である『広辞苑』は重さが約2.5kgあるとされています*1.つまり15.6インチのノートPCを持ち運ぶのは,広辞苑を持ち運ぶのと変わらないと言うことです.

バッテリーの持ちが悪い

15.6インチのノートパソコンについては持ち運びを考慮されていないせいか,6時間前後が主流となっています.作業内容に寄りますが実際には公称値より短くなることも多く,なかなか電源を用意しづらい持ち運び環境では,できるだけ駆動時間は長い方が望ましいと言えるでしょう.
測定基準について明記されていない場合も多いので明確には言えませんが,おおよその指標にはなるかと思います.

13.3インチ以下がオススメ

これに比べ,13.3インチのノートパソコンは大きくても横幅32cm程度,重さも1.3kg前後が主流となり,バッテリーの持ちもものに寄りますが,だいたい二倍くらいになります.12インチ以下ともなればさらに小さく軽くなります.

カバンやリュックサック等に入れて持ち運ぶことが難しくないサイズ・重さであることは非常に重要です.

最近では1kgを切る超軽量なものも少なくなく,授業や実験,研究等ノートPCを持ち運ぶ機会が年に一回でもあるならば13.3インチ以下を選択するべきでしょう.

動作が遅くないかどうか

PCの動作の速さを決める要因は主に3つです.

  1. CPU
  2. メモリ
  3. 記憶装置(SSDとかHDDとか)

CPUについて

メインの処理を担う「頭脳」です.こいつの計算が速ければ,PCの動作も速くなります.CeleronとかPentiumとかCore i7とか色々ありますが,まずこれらの一般的な力関係を示しておきます*2

Core i7 > Core i5 > Core i3 ≧ Core mシリーズ > Pentium > Celeron > Atomとか

まず,下の三つを採用したノートパソコンはとても安いです.数万円単位で値段が違います.その上でこれらを選択するのはよっぽどお金が無く,すぐに必要という場合のみにしてください.理由は単純で「遅いから」です.
どういったことをするかに関わらず,数年使っていけば徐々にPCの動作は重くなっていきます.最初からある程度余裕を持ったCPUを選んだ方が良いと思います.

よって,Core ○○シリーズを採用したノートPCにすべきでしょう.

逆に,ノートPCにおいてCore i7を選ぶメリットはあまりありません.少なくとも13.3インチ以下に限定したとき,目に見えるほどの変化が出ることはまず無いでしょう*3.価格差を考えればCore i5から無理してスペックアップするべき箇所ではないと感じます.

というわけで,Core mシリーズまたはCore i3, i5搭載のものにしましょう.

また多くの場合,周波数というよくGHzで表される値が併記されてありますが,基本的にこの値は大きければ大きいほど性能が高いと思ってください.

メモリについて

メモリはよく「作業机」に例えられます.いくら速いCPUを搭載しても,狭い机では存分に力を発揮することはできません.
一般的なラインナップは以下です.

  • 2GB:とても安いPC.少しアプリを起動するといっぱいになるためとても不便.スマートフォン以下.
  • 4GB:普通のPC.店頭では最もよく見かけるが,正直最低ライン.
  • 8GB:おすすめ.普通の人は困らない程度.

個人的には8GBを推奨したいところです.

記憶装置について

「500GB」とか「1TB」とか書いてあることが多いです.実際にデータを置いておく場所になります.
大きく分けて三種類の記憶装置があります.

  • HDD:安くて大容量.最低500GB~.たくさんのデータをため込むことができるが,その反面速度は遅い.
  • eMMC:値段の安いPCによく搭載される.容量はとても少なく32GBか64GB.USBメモリに毛が生えたようなもの.
  • SSD:高くて容量は少なめ.最近は容量も1TBくらいまで選択の余地があるが,値段の上がり方が半端じゃなくなるので256GBくらいが現実的.

HDDやeMMCのノートパソコンを買うのは辞めましょう

これまでHDDはその安価さからこれまで長らく重宝されてきましたが,遅い上に壊れやすいため,全くおすすめしません.PCの動作が重いなと思ったら,だいたいの原因はこいつです.

eMMCを搭載したPCはだいたいとても安く,小型です.容量が非常に少ないため,メインPCとして使っていくには厳しいと言わざるを得ません.

SSDは他の二つと比べて圧倒的に速いです.メモリを4GBから8GBにするか,HDDをSSDに変えるかの二択に迫られたら迷わずSSDを選ぶべきというくらい変わります.起動も,動作も,HDDとは比べものになりません.絶対にSSD搭載のノートPCを選びましょう
また128GBはメインとして使うには足りないことが多いため,最低でも256GB以上が推奨です.

価格差はどこから来るの?

おそらく以上の条件を満たすPCを選び出しても,ほとんど変わらないスペックで比較的安価なものから,おそろしく高いものまで色々あるでしょう.これらの値段の差がどこから生まれるのかについて,個人的な見解を書いておきます*4

  1. 頑丈さ
    例えばLet'sNoteはここに相当なお金をかけています.踏んでも壊れにくい,落としても壊れにくいというのは凄いことです.
  2. 軽さ・小ささ・薄さ
    ただ削るだけでは簡単に壊れてしまいます.これらの要素とPCとしての使い勝手・性能のバランスを追求した結果値段が上昇します.
  3. ディスプレイの綺麗さ
    AppleRetinaディスプレイIGZO液晶のように高解像度で美しいディスプレイを搭載している場合があります.
  4. ブランド
    PCの世界にもブランド料は絶対にあると思います.とはいえAppleVAIOMicrosoftなど有名ブランドでも,その値段に見合った性能を大抵は保有しています.一番怪しいのは国産を謳うノートPCのブランド料です.
  5. スペックに現れないパーツごとの差
    例えば同じSSD,同じCore i5でもその性能に大きな開きがある場合があります.

全てに気を配ってPCを買うというのは大変な労力です.基本的にお金は積めるだけ積むのが良いです.自ずと良い物が手に入ります.

そんなに高いPC必要なの?

そもそも本当に性能が必要な場合,ノートパソコンでは全く足りません.いわゆるクリエイターなど,本当に高性能を必要とする人にとって持ち運びするノートパソコンでは絶対的に性能が足りません.

少し高価なモバイルノートパソコン程度の性能は,まともにPCを使う上で必須のものであると言っても過言ではないと考えています.*5

まとめ

上記の条件を軽く整理すると,

  • 軽い(1.3kg以下)
  • 小さい(13.3インチ以下)
  • バッテリー持ちが良い(最低でも8時間以上)
  • Core m以上のCPUを搭載
  • メモリは8GB
  • SSD搭載(できれば256GB以上)
  • 変にケチらない

といった感じでしょうか.これに当てはまるモノを買えばだいたいオッケーです!

続編としてOffice&アクセサリ編,個人的オススメ機種編も書きます.書きました.

poyo.hatenablog.jp

poyo.hatenablog.jp

*1:第六版では3kgを超えているという情報もありました

*2:digitalista51.com

*3:2017/1/23現在,13.3インチ以下のノートPCでクアッドコアCore i7を搭載した機種は価格.comで調べた結果価格.com - 東芝 dynabook R73 R73/38M 2014年秋冬モデル 価格比較しかありませんでした.ほとんどのノートPCのCore i7Core i5と同じデュアルコアです.

*4:これは個人的見解であり,必ずしもそれが真実であるとは限りません.また他の要素もあるという方もいらっしゃるでしょう.

*5:これは個人的な見解で(ry

Prometheus + cAdvisor + GrafanaでDockerコンテナごとのリソースを可視化する

背景

コンテナ数も増え,それに依存したサービスも増える中,サーバのapt upgrade後にPT3が行方不明になってこのすばの録画が死んだこともあり,いずれこれは把握できる範囲を超えるなと思ったため,監視ツールを何か導入する必要があると考えました.

いくつか候補は挙がったのですが,最終的にZabbixを選ぶか,Prometheusを選ぶかで悩んでGrafanaが最初からサポートしているという理由でPrometheusを選択しました.

今回はPrometheusでcAdvisorから情報を取得,Grafanaで可視化するまでを行います.Alertmanagerなどの導入はちゃんとできたらまた記事にします.

使うもの

Prometheus

prometheus.io

Prometheusはサーバ側から監視先を叩きに行くPull型の監視ツールです.詳しいことはQiitaの先人におまかせします.

qiita.com

exporterと呼ばれるエンドポイントを建てて情報を収集します.今回はホストの情報を収集するためにnode-exporterを使用します.

cAdvisor

cAdvisorはDockerホスト上のコンテナの監視ツールとしてGoogleが開発しているものです.Googleさまさまです.
単体で監視を行いますが,メモリ上に直近60秒の情報を保持するのみで保存しないため,InfluxDBとよく組み合わせられています*1.このcAdvisorは実はPrometheusに対応しており,デフォルトでhttp://cAdvisorへのアドレス:8080/metricsで各種のメトリクスを取得できます.

github.com

一つのDockerホストに一つずつcAdvisorが起動していれば後はまとめて叩いて回ってデータを集計するだけでいいというわけですね(うちにはホスト一つしか無いですが

Grafana

かっこいいダッシュボードを作るアプリケーションです(ざっくり

grafana.org

テンプレートが多数公開されており,それらをカスタマイズするだけで十分な機能を得られます.

環境

  • Ubuntu Server 16.04 LTS
  • Docker version 1.13.1
  • Docker compose version 1.8.0

設定

今回は全てDockerコンテナとして建てます.
ディレクトリ構造は以下の様にします.

.
├── docker-compose.yml
├── grafana
└── prometheus
    └── prometheus.yml

外側からアクセスするGrafanaと(一応)Prometheusには静的なIPを振っておきます*2.cAdvisorは直接触らないので,Dockerのネットワーク内に閉じ込めておきます.
以下の様なネットワークを作っておきます.

$ docker network create -d bridge -o "com.docker.network.bridge.name"="monitor_nw" monitor_nw

また,下記の過去記事で作成したmacvlanドライバのdmz_nwを使用します.

poyo.hatenablog.jp

Prometheusの設定

がつがつdocker-compose.ymlを書いていきます.

version: "2"
services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
    expose:
      - "9090"
    networks:
      default:
        aliases:
          - prometheus
      dmz_nw:
        ipv4_address: xxx.xxx.xx.y
    restart: always
networks:
  default:
    external:
      name: monitor_nw
  dmz_nw:
    external:
      name: dmz_nw

macvlanでIPアドレスを割り振っているのでホストのポートとのマッピングはしていません.

設定ファイルであるprometheus.ymlはとりあえず最低限のことを書いておきます.
prometheus自身のメトリクスを取得する設定,後述のnode-exporterとcAdvisorから情報を取得する設定です.15秒間隔で情報を取りに行くようにしています.

global:
  scrape_interval: 15s
  external_labels:
    monitor: "monitor"

scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["prometheus:9090"]
  - job_name: "node"
    static_configs:
      - targets: ["ホストのアドレス:9100"]
        labels:
          group: "docker-host"
  - job_name: "docker"
    static_configs:
      - targets: ["cadvisor:8080"]
        labels:
          group: "docker-container"

localhostを指定するとうまく動かないので,わざわざホストのアドレスも直打ちしています.
詳しい設定は公式ドキュメントを参照してください.

node-exporterの設定

node-exporterはホストの様々な情報を取得するexporterです.そのため,ホストのルートディレクトリをマウントする必要があります..また,hostネットワークを使用する必要があるため,ホストのポートとのマッピングを行いアクセスできるようにしています.

# 省略
  node-exporter:
    image: prom/node-exporter
    container_name: node-exporter
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    ports:
      - "9100:9100"
    network_mode: host
    restart: always
# 省略

cAdvisorの設定

権限を多く要求する怖いコンテナです.外側から直接アクセスできないようにDockerネットワークに封じ込めます.

# 省略
  cadvisor:
    image: google/cadvisor:latest
    container_name: cadvisor
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker:/var/lib/docker:ro
    expose:
      - "8080"
    privileged: true
    networks:
      default:
        aliases:
          - cadvisor
    restart: always
# 省略

特にprivileged: trueが怖いのですが,僕の環境ではこれをオンにしないと動きませんでした*3

Grafanaの設定

最後にフロントエンドのGrafanaをセットアップします.今回はわざとしていませんが,過去記事のnginxとdocker-genを組み合わせたシステムでサブドメインを割り当てることも出来ると思います.
また,普通に起動するとusernameがadmin,パスワードもadminの状態になっており,サインアップも勝手に出来るようになっているので環境変数でそのあたりを制御します.

# 省略
  grafana:
    image: grafana/grafana
    container_name: grafana
    volumes:
      - ./grafana:/var/lib/grafana
    networks:
      default:
        aliases:
          - grafana
      dmz_nw:
        ipv4_address: xxx.xxx.xx.z
    restart: always
    environment:
      GF_SECURITY_ADMIN_USER: hoge
      GF_SECURITY_ADMIN_PASSWORD: fuga
      GF_USERS_ALLOW_SIGN_UP: "false"
      GF_USERS_ALLOW_ORG_CREATE: "false"
# 省略

GF_SECURITY_ADMIN_USERGF_SECURITY_ADMIN_PASSWORDがそれぞれ初期管理ユーザのユーザ名とパスワードになります.
GF_USERS_ALLOW_SIGN_UPはサインアップの無効化で,トップページからサインアップの項目が消えます.GF_USERS_ALLOW_ORG_CREATEは管理権限のあるユーザ以外のorgnizationの作成を無効にします.

起動

$ docker-compose up -d

この状態でまずprometheusに割り当てたアドレスxxx.xxx.xx.y:9090にアクセスして表示されるかを確認します.

次に,Grafanaに割り当てたxxx.xxx.xx.z:3000を開いて設定したユーザ名とパスワードでログインします.DataSourceを追加するときソースの種類をPrometheusで選択するとhttp://localhost:9090がサジェストされますがこれは使いません.prometheusで名前解決できるようになっているので,http://prometheus:9090/を指定します.

Grafanaのテンプレートは以下のものを使用しました.

grafana.net

何もいじっていない状態で以下の様になりました.loadの値が取れていませんが,まぁおいおい自分でいじくっていきたいと思います.

f:id:pudding_info:20170301005602p:plain

まとめ

思ったより簡単に値を取るところまではできました.後はGrafanaからクエリを叩いて表示していくだけです.難しそう.

また今回はAlertmanagerを含めていません.ここまではcAdvisor + InfluxDBでもできることになってしまうので,次はアラートの設定もしていこうと思います.

*1:この場合アラートなどの機能は無いので,今回はPrometheusのエンドポイントとしてのみ使用します

*2:取得できるメトリクスを見たいのと,クエリを簡単に確かめたいため.

*3:もしかしてたまたま?他の人の例では見ないので,もしかしたら勘違いかもしれないです.