Corona@はてな

人生,黒歴史

Google Cloud Associate Cloud Engineerに合格した(2020/6)

しました.6月中旬頃です.

GCPが何なのか勉強するために受験したので,実務では使わない.

実はAWS SAAの資格も持ってるけど,実務では使っていない.

一体何をやっているんだ俺は...

勉強方法・期間

コロナの影響で5月のGWが吹っ飛んだので,そのあたりから開始.

5月

  • GCPの教科書を読む

www.amazon.co.jp

  • QwiklabsのGoogle Cloud Essentialsをやる

www.qwiklabs.com

  • Courseraをやる

ja.coursera.org

  • 模擬試験を受験する

5月中旬までに上記をやった.

5月末に受験しようとしてたけど,忙しくなって諦めたり, ゼノブレイドDEを始めてしまったので終わった.

6月

受験そろそろしないと...となったので勉強を再開.

ゼノブレイドDEを1週間封印し,下記を実施.

  • Coursera・模擬試験をもう一回やる
  • udemyで下記を受講する

www.udemy.com

感想

ゼノブレイドは10年前にしていたら,多分人生変わっていた気がする.

やっておけばよかったと思う一方,この歳でこれだけ熱中できるゲーム・シリーズに出会えたことに感謝したい.

あと,個人的にはメリアちゃんがめっちゃ好きで,今回のリメイクでは彼女が主役のシナリオが追加されているのも最高だった.

皆もゼノブレイドDEを買ってメリアちゃんを好きになってほしいし,GCP試験にも合格してほしい.

www.nintendo.co.jp

2も当然のように面白いので一緒に買ってほしい.

www.nintendo.co.jp

Mackerelで自宅のインターネット状況を監視する(Ciscoルータ編)

Ciscoルータ編しかありません.YamahaルータとかJuniperルータとかくれ.

目標

  • 自宅のWANのパケロスとかをMackerelで確認できるようにする
  • 自宅〜Google Public DNS(8.8.8.8)へのRTTをMackerelで確認できるようにする

背景

上記に対してあんまりいい回答ができなかったので悔しくなったから.

環境

お金がないのでありものを使う.

  • Raspberry Pi 1 B+(Debian的なやつを入れている)
  • Cisco C841M(1万で買えた.皆はFortiGateとか買ったほうが良いと思う)

作業

パケロス確認

Mackerelはプラグインを使うとSNMPとかの情報が取れる.

なので,取り合えすプラグインを入れる.

使ったのはmackerel-plugin-snmp

github.com

気をつけるポイントとして,Raspberry Piの場合,aptでシャッと導入ができないのでソースからうまいことしないとだめな一方, マシンパワーが低いのでコンパイルにめっちゃ時間がかかる.

なので,適当な環境でGoバイナリをクロスコンパイルして入れてあげるほうが良い.

  • 適当なPC(Mac)
$ git clone https://github.com/mackerelio/mackerel-agent-plugins.git
$ cd mackerel-agent-plugins/mackerel-plugin-snmp
$ env GOOS=linux GOARCH=arm GOARM=6 go build
$ scp ./mackerel-plugin-snmp pi@[raspberrypiのIP]:/home/pi/

RTT確認

これもプラグインを使う.

使ったのはmackerel-plugin-pinging

github.com

これもクロスコンパイルして送ってあげる.

$ git clone https://github.com/kazeburo/mackerel-plugin-pinging.git
$ cd mackerel-plugin-pinging
$ env GOOS=linux GOARCH=arm GOARM=6 go build
$ scp ./mackerel-plugin-pinging pi@[raspberrypiのIP]:/home/pi/

これでPlugin導入は完了.

mkrのインストール

次にMackerelへの設定をする.

調べるとagentが無いホストについてはmkrコマンドでホスト登録をするらしい.

なので,mkrコマンドをインストールする.

github.com

これもクロスコンパイルして送る.クロスコンパイル最高.こういう事ができる後輩がほしい.

$ git clone https://github.com/mackerelio/mkr.git
$ cd mkr
$ env GOOS=linux GOARCH=arm GOARM=6 go build
$ scp ./mkr pi@[raspberrypiのIP]:/home/pi/

バイナリが送れたら,Raspberry Pi側にSSHする.

今更だけどRaspberry PiからSNMPコマンドやPingコマンドを発行して,それをMackerelにメトリクスとして送る感じです.

あと,Raspberry Piにはmackerel-agentは導入済みです.あしからず.

バイナリファイルの移動

バイナリファイルを雑に送っていたので移動させる.

ここからRaspberry Pi側での操作です.

$ sudo mv ~/mackerel-plugin-snmp /usr/local/bin
$ sudo mv ~/mackerel-plugin-pinging /usr/local/bin
$ sudo mv ~/mkr /usr/local/bin

ホストの登録

今回のメトリクスを登録するようのホストを登録する.

これは,別に違うマシンからしてもいいと思う.

$ mkr create --customIdentifier home-router home-router

mackerel-agentの設定

続いてmakerel-agentの設定を変更する.

設定ファイルは/etc/mackerel-agentにある.

プラグインとかの設定を適当にする.

$ cd /etc/mackerel-agent
$ sudo nano mackerel-agent.conf
  • mackerel-agent.conf
apikey = "APIキー"

[plugin.metrics.internet-rtt]
command = "/usr/local/bin/mackerel-plugin-pinging --key-prefix='googledns' --host='8.8.8.8'"
custom_identifier = "home-router"

[plugin.metrics.snmp-router-interfaces]
command = "/usr/local/bin/mackerel-plugin-snmp -name='interfaces.wan' -host='<ルータのIPアドレス>' -community='<community名>' '1.3.6.1.2.1.31.1.1.1.6.1:ifHCInOctets:1:0' '1.3.6.1.2.1.31.1.1.1.10.1:ifHCOutOctets:1:0' '1.3.6.1.2.1.2.2.1.14.1:ifInErrors:1:0' '1.3.6.1.2.1.2.2.1.20.1:ifOutErrors:1:0' '1.3.6.1.2.1.2.2.1.13.1:ifInDiscards:1:0' '1.3.6.1.2.1.2.2.1.19.1:ifOutDiscards:1:0'"
custom_identifier = "home-router"

OIDは適当に調べる.面倒くさがりなので標準MIBとかは下記Qiitaとかをよく見る.

qiita.com

あと,mackerel-plugin-snmpではCounterの値は問題なく取れるけど,それ以外,例えばGaugeの値がうまく取れなかったりした.

SNMP get failed: Unable to decode packet: Unable to decode value: No such instance

面倒くさがりなので深くは追ってない.snmpwalkだとうまく取れているので,多分gosnmpでなんかなってるんだと思う.

mackerel-agent再起動

設定反映のためにmackerel-agentを再起動する.

reload的なコマンドもあるかもしれないが,自宅なのでこれで良い.

$ sudo systemctl restart mackerel-agent

確認

Mackerelのサイトにアクセスして,ホストが追加されていることと,5分くらいしてメトリクスが入っているのを確認する.

うまくいくとこんな感じになる.

f:id:Mekapiku:20200702203214p:plain
Mackerel画面

終わり.

感想

  • Mackerelは導入コストが低いので良い
  • snmpとかはPrometheusのexporterの方が出来が良い
  • 山に行きたい

Prometheus関連資料

いろいろな会社の事例

たくさんのノードを管理する場合の課題感

dev.classmethod.jp

labs.gree.jp

www.slideshare.net

ログ関連

15日以上ログを持っておきたい場合

github.com

prometheus.io

www.infoq.com

可視化関係(Grafana)

qiita.com

OpenMediaVault 5 (beta) をインストールした

追記(2019/05/12)

なんかそもそもOpenMediaVaultの導入がうまく行ってないっぽい?

Vagrantで試したら,下記不具合はありませんでした.

背景

OpenMediaVault 4で自宅NASを運用していたのですが,色々あって設定が吹っ飛びました.

公式サイトを見ると,OpenMediaVault 5がbetaになっており,これもなにかの機会ということで試してみました.

所感

  • Pluginが現状少ない(Docker-GUIVirtualBoxが使えないのは痛い)
  • UIいじってるだけで変なエラーが出ることがある(直接xmlファイル書き換えるとうまくいく)
  • TimeMachineがNetatalkなしで使えるのは便利

導入

今回はOpenMediaVaultをUSBメモリにインストールして利用しています.

USBメモリについては8GBと32GBのものを準備し,それぞれインストールメディア,インストール先としています.

Debian 10 RC1 + OpenMediaVault 5.0.1です.

問題

パーティション設定時にエラーが出る

解決策

OpenMediaVaultのイメージから導入せずに,Debian 10のイメージからインストールするとうまくいきます. (これは私のハード固有の問題かもしれませんが)

Debian 10導入後,ここのサイトにあるコマンドを入れこむと良いです.

Samba

問題1

The property 'nullpasswords' does not exist in the model 'conf.service.smb'." というエラーが出てSambaを有効にできませんでした.

解決方法

OpenMediaVaultの設定用xmlを直接編集しました.参考

設定側にlocalmasterの項目を追加すれば解決するかとも考えましたが,同様のエラーとなりました.

/etc/openmediavault/config.xml

    <smb>
      <enable>0</enable> // 0→1に変更
      <workgroup>WORKGROUP</workgroup>
      <serverstring>%h server</serverstring>
      <loglevel>0</loglevel>
      <usesendfile>1</use

問題2

共有フォルダでTimeMachineが有効になりませんでした.

解決方法

共有フォルダのオプションに下記設定を追加すると有効になりました.参考

vfs objects = catia fruit streams_xattr
fruit:time machine = yes

OMV

導入は以下のコマンドで可能です.

wget -O - http://omv-extras.org/install | bash

もしくはここからdebファイルがダウンロードできます.

その他

また気づいたことを追記していきます.

PakcetTracerの導入(Mac)

PacketTracerをMac(Mojave)に導入した.

動機としてはCCNPの勉強のためだったのだが,route-mapdistribute-listなどのコマンドがサポートされていないので全然使えなかった.

やり方

  1. PacketTracerをCiscoのサイトからダウンロード(要アカウント作成)

Learn the Basics With Introduction to Packet Tracer Course | Networking Academy

  1. EasyWineをインストール

matome.naver.jp

  1. PacketTracerのインストール用exeをEasyWineで開き,インストールする

  2. yippee!!

感想

ネットワークはなかなか成果が目に見えないので,こういう可視化された勉強環境は非常に嬉しい.

(Helloパケットがルータ間でやり取りされているのを眺めるだけでも楽しい)

CiscoルータからGoogleDomainsのDDNS機能を使う

悩んだ末に無理やり解決した...

日本語の情報があまりなかったのでメモ.

目標

Ciscoルータ(今回はC841M)からGoogleDomainsのDDNS機能を使う.

問題

CiscoルータではDDNS更新を行う場合,下記コマンドで設定を行う.

更新用のAPIHTTPSで提供されている場合,更新に失敗する(下記の<URL>の部分)

# conf t
#(config) ip ddns update method <WORD>
#(DDNS-update-method) http
#(DDNS-HTTP) add <URL>
#(DDNS-HTTP) exit
#(DDNS-update-method) interval maximum 0 0 30 0

解決方法

案1. ルートCA証明書を手動でインストールする(正統解)

そもそも更新に失敗するのは証明書がインストールされていないため.

下記方法でCiscoルータに証明書をインストールする.

参考 Ciscoルータでの設定例 - KDNS.JP Beta

案2. IFTTTなどで無理やりAPIhttps->http化

IFTTTではWebhooksのAPIhttps/httpどちらでも利用可能.

また,URLパラメータも利用可能.そこでIFTTT側で以下のように設定.

IF THIS(Ciscoルータ側) http://maker.ifttt.com/trigger/{event}/with/key/{key}/?value1=<h>&value2=<a>

THEN THAT https://<Username>:<Password>@domains.google.com/nic/update?hostname={{Value1}}&myip={{Value2}}

結果

2の解決方法で対応.疲れた.

モダンな登山環境構築のススメ

この記事はRCC OBOG Advent Calendarの4日目です.

昨日はいちご無双さんのスーツケース一つで引っ越しして困ったこととかです.


だいぶ前にRCCにいました@Mekapikuです.

普段はネットワーク関係のお仕事をしています.

気がつけば,後輩の多くも立派な老害社会人になっていました.

月日が経つのは早いですね...


さて,社会人になると体が資本ということで,健康のために運動をしている方が多いかと思います.

特に登山は10万円程度から始められる活動的な趣味であり,しかも生涯楽しめるため,健康面・コスパ共にとして非常に優秀です.

私も3年程前から趣味として登山を始めており,今年は槍ヶ岳の登頂も果たしました.


これは昨今の登山用具の発達に加え,スマートフォンの普及に伴う登山支援サービスの進歩により実現できた成果だと考えています.

そこで,今回はこれまでの経験から,最近の登山に関するサービスについて紹介します. 皆さんの登山,そして健康促進の一助となれば幸いです.

f:id:Mekapiku:20170813095311j:plain

注意

とはいえ,スマートフォンの信頼性は紙よりも低いので,

必ずバックアップとして紙の地図とコンパスは準備しておきましょう.

また,基本的な登山装備については下記文献を参考にして下さい.

テント山行まで幅広くサポートされていて分かりやすい文献です.

入門&ガイド テント山行


そもそも登山とは?

山に登ることですが,もう少し砕くと

  • 登頂に向けた計画を立てる
  • 山行が計画通りであるか逐次進捗を確認する
  • 進捗の遅れや,天候変化等の問題に対して適切な対応を行う

といった風に業務プロジェクトと同様のステップを踏みます.

そう,登山は一つのプロジェクトなのです.

そして進捗悪化は最悪の場合は死につながります.

登山を舐めるな.


一方,計画や進捗確認に問題がなければ,普段は見られない美しい風景やそれをおかずにしながら最高のご飯を頂くことができます.

登山に関するサービスというのは,正しい計画や進捗管理を強力に支援してくれる,

いわば,登山におけるプロジェクト管理ツールなのです.

f:id:Mekapiku:20170813162320j:plain

登山に関するおすすめサービス

主に普段使っているのは2つです.

ヤマレコ

www.yamareco.com

ヤマレコは登山計画の作成と共有に使っています.

似たサービスはいくつかありますが,

計画作成に山と高原地図が無料で使えるのが大きな優位点です.

ヤマプラ - 「山と高原地図」で登山のプランを作ろう! - ヤマレコ


どこに何があるか?どこまでに何分掛かるか?等がひと目でわかり,

目標地点を選択するだけでコースタイムやコース難度もわかるので

初心者でも無理なく山行計画を立てることができます.

また,他の人の計画を引用することも可能です.

私の場合,山行スピードは1.0倍で,1時間毎に10分の休憩,

お昼休憩は60分として計画しています.


計画作成後には,それをWebから登山届が出せる山ピコ等へ投稿することができます.

また計画の印刷することで,配布用やバックアップ用として紙媒体を持ち歩くことができます.

その他,後述の山と高原地図で使えるGPXファイルも出力可能です.

山と高原地図

mapple-on.jp

こちらは山行中の現在地把握,並びに進捗管理に使っています.

iPhoneAndroidのアプリがリリースされており,

山と高原地図のデジタル版購入の他,GPSを使ったロギングが可能です.

また,GPXファイルをインポートすることで,地図上に計画経路を表示することができます.

似たようなサービスとしてYAMAP等がありますが,

地図についてはやはり山と高原地図がわかりやすく,おすすめです.

(YAMAPはAndroid Wearで地図表示ができたりして凄い)


今後の登山環境について

計画や進捗管理については,かなり便利な状況となりましたが,

課題として,登山者側からの緊急発信ができない事が残っています.

地理的な特性上,山中ではLTEはおろか3Gも入らず,衛星電話しか使えないというケースが多いのです.

怪我をして動けない場合,現状では数日以上経過し,捜索願が出されるまで異常に気づかれないという可能性もあります.

現在,LoRaWANなど安価な広域通信サービスによる実証実験が進んでおり,将来的には有名な山ではより安全な登山が楽しめるようになるでしょう.

k-tai.watch.impress.co.jp


最後に

山に行きたくなる画像です.

山に行っても人生観は変わらないけど,地上では食えない最高の料理が食えるぞ.

f:id:Mekapiku:20160813093806j:plain

f:id:Mekapiku:20160813155931j:plain

f:id:Mekapiku:20160814050739j:plain

f:id:Mekapiku:20160814091826j:plain

f:id:Mekapiku:20160814091829j:plain

f:id:Mekapiku:20160814135748j:plain

f:id:Mekapiku:20170717060131j:plain

f:id:Mekapiku:20170716141509j:plain

f:id:Mekapiku:20170812094517j:plain

f:id:Mekapiku:20170812122416j:plain

f:id:Mekapiku:20170813162321j:plain

f:id:Mekapiku:20170815102002j:plain

f:id:Mekapiku:20170815103226j:plain

明日は@PG_nokkiiです.よろしくおねがいします.