地元の図書館に自著を寄贈した話

お疲れ様です。

地元の図書館に自著を寄贈した結果、無事受領されたのでレポとして残しておきます。

 

インフラ女子の日常

インフラ女子の日常

Amazon

 

 

なぜ寄贈しようと思ったの?

今回の本を出す動機のひとつに、「学生や若手の皆さんに、インフラエンジニアというキャリアパスがあることを知って欲しい」というのがありました。

著者として、本を買ってもらえることが何より嬉しいのですが(印税も入りますし!)、購入以外でもっと手に取る機会が増えたら良いと思い、地元の図書館へ寄贈することにしました。

あとは、図書館に自分の本が入ってるって、なんかかっこよいからです。かっこよくない?

 

寄贈を受け付けているか調べる

過去にこのツイートを見たことがあり、寄贈に関しては事前に確認して持ち込むようにしました。

ずいの on Twitter: "これは「税金で買った本」という図書館漫画2巻収録の、寄贈図書に関する仕事がつらすぎて錯乱する人が出てくる話です。作画は系山冏(@keiyama_k)先生です(1/5)#税金で買った本… "

今回は富山県立図書館と富山市立図書館に寄贈すると決めていたので、それぞれの図書館のホームページに寄贈に関する記載がないか確認しました。

寄贈に関してどのような書籍や資料を受け付けているか、どのような手続きを踏むかについて記載されていました。

https://www.library.toyama.toyama.jp/file/pdf/unei/kisou.pdf

富山県に関する資料の寄贈について

これを確認したうえでお問い合わせフォームから連絡し、後日担当の方と電話で連絡を取ることができました。

 

寄贈の流れ

図書館に直接持ち込む形で寄贈しました。手続きもとてもスムーズで良かったです。後日お礼状が届きました。著者が直接持ち込むのは珍しいのかしら?

寄贈が受領された理由については具体的には分からないのですが、おそらく以下の理由だと思います。

  • 地元出身の著者
  • 鮮度が高い書籍(ほぼ発売と同時の寄贈)

 

蔵書検索にヒットするまでは断られないかドキドキだったのですが、とても良い経験になりました。

 

さいごに

みんなも自著を書いたらレッツ寄贈(´ ゚ω゚`)

出産しました

お疲れ様です。

Twitterでも既にご報告した通り、3月14日に男児を出産しました。

 

沢山のお祝いメッセージ、ウィッシュリストから贈り物をいただきました。子供部屋が段ボールで埋まっています。本当にありがとうございました。重ねて感謝申し上げます。

 

この記事を要約すると、「陣痛死ぬほど痛かったわ( ˙-˙ )」「でも息子は可愛いわ」「AlexaとNature Remo便利だわ」という内容です。技術の話はあんまりというかほぼ出てきません。

 

おしるし〜陣痛〜出産まで

3月13日の朝におしるしがありました。昼過ぎから腹痛を感じ始め、午後2時ぐらいに子宮がギューッと閉まるのを感じ、陣痛が始まったと分かりました。

夏目葉太(なつよ)@4/12書籍発売 on Twitter: "陣痛なう!"

この段階ではそこまで痛くないです。水曜どうでしょうを見て笑う程度には余裕でした。

夕方から段々痛みが増すものの10分間隔のままでした。間隔は短くならないものの、そのうち痛みに耐えられなくなったので病院に電話、入院が決まったのが20時でした。この時点で子宮口は5センチでした。

その後陣痛に耐え続け、0時過ぎに3000g超の男の子が産まれました。立ち会いはNGでしたが、手術にならない限りは電話していいと言われていたので産まれた直後に夫にLINE電話をして、赤子が出てきた瞬間を共有することができました。

 

陣痛って痛いの?

北斗晶が人生で感じた痛み第2位」とか、「トラックでひかれた時の痛み」とか、調べると沢山出てきますが、自分の場合は「大きなローラーに下半身を思いっきり挟まれる痛み」「めちゃくちゃデカい💩がある痛み」でした。赤子を外に出すために子宮が収縮しているので当たり前といえば当たり前なのですが、その状態になってもいきめない(子宮口が全開になるまではいきんではいけないという指示)が1番辛かったです。全開になってからは思いっきりいきめるので気分的には楽でした。会陰切開ありましたが麻酔もあったせいか全然痛くなかったです。産んだ後部屋に戻る時、トイレを介助してもらい、車椅子で運んでもらって「至れり尽くせりだな〜〜〜」と思っていたのですが、どうやら1L以上の出血多量だったそうです。出産は命懸けなんだなと改めて感じました。その後はご飯も美味しく食べて、貧血も出ませんでした。

 

産んだ後

ご飯も美味しい産院で母子同室でした。とてもいい産院だったのですが、私自身がお世話習うのに必死なのと、夜にめちゃくちゃ赤子が騒ぐのでこっちがパニックになったりしました。立ち会いもお見舞いも感染症の都合でNGなので「はやく家に帰りてえ〜〜〜〜」と思っていたのを覚えてます。退院時の会陰切開の抜糸が思ったより痛くてびっくりした…

 

家に帰ってから

今日で息子は生後10日を迎えました。ふっくらとしてきて可愛いです。夜はなかなか寝付かないのが悩みですが、基本的に腹が減った時以外は泣かないので、「赤ちゃん上手いね〜」と言いながら育てています。寝入ると自分のうんこでもおしっこでもコーヒーグラインダーの音でも緊急地震速報でも起きないです。あととにかくミルクも母乳もよく飲みます。これは大物の予感。(親バカ)

夜は手足をバタバタしたり寝言をフガフガ言ったりして、最初は気が気でなくて、横で全く寝られませんでしたが、親も少しずつ慣れてきて、昨日は生まれてから初めて夜間帯に3時間ぶっ続けでお互い寝ることが出来ました。

 

おうちIoTで子育て

赤子の記録はぴよログで管理しています。Amazon Echoと連携できるので、手を離せないときに地味に助かります。「アレクサ、ぴよログで うんちを記録」とか「アレクサ、ぴよログで最後のミルクはいつ?」とかが出来ます。たまに失敗しますが…。

Nature Remoには本当に助けられています。赤子を抱いていると手がふさがってしまうので、声だけでエアコンやテレビを操作できるのは大きいです。

Nature RemoのAPIからZabbixで気温と湿度をグラフ化しているので(過去記事参照)、昨晩は寒くなかったかな?などの振り返りができるのも良いです。

赤子のベッドにベビーモニター+センサーを置いて、死角となるキッチンや水周りからでも確認しながら家事やミルク作りができるのも良きです。

ハイチェアに乗せているときはカメラがないので、今後はおうちサーバ内に家庭内jitsiを建てて死角を無くしたいなーとか妄想しています。

 

さいごに

3人家族となったなつよ家を、今後もよろしくお願いいたします。他にも色々お知らせがあるのですが、とりあえず今日はここまで。😆

Nature Remoから温度・湿度を取得しZabbixでグラフ化する

おつかれさまです。 家庭内ESXiを構築したらやりたかったことのひとつ、「Nature Remoから温度湿度を取得してグラフ化する」をやったのでメモがてら残しておきます。
「子育て中声で家電操作できると便利そうだな」と思い買いました。というのは建前で、おもちゃが欲しかっただけです。

Nature Remo

公式でドキュメントがあります。日本語があってありがたい!
developer.nature.global

https://home.nature.global/ から入手したBearerトークンを利用します。
利用時には、Nature Remo購入時に利用登録したメールアドレスとパスワードでログインできます。
今回用に新しくAccess tokenを作成するとBearerトークンが表示されるのでメモしておきます。
後から参照できないようなので必ずメモ!!!

気温と湿度を取得する

公式ドキュメントから案内されているAPIの仕様を見てみます。
温度・湿度は/1/devicesから取得できるようです。
SwaggerでOAuth2の認証認可を通すとSwagger上でテストできるような気がしますが、使い方が分からず…💦
swagger.nature.global

しょうがないので手元のPCのWSLからcurlで取得できるかテストしてみます。
xxxTOKENxxxは各自で取得したものに置き換えてくださいね。

$ curl -sX GET "https://api.nature.global/1/devices" -H "Authorization: Bearer xxxTOKENxxx" | jq .[].newest_events.te.val
17.8
$ curl -sX GET "https://api.nature.global/1/devices" -H "Authorization: Bearer xxxTOKENxxx" | jq .[].newest_events.hu.val
46

後の工程でcurlの出力結果をそのまま利用したいので、-sオプションを付けています。
手元のiPhoneのNature Remoのアプリで今の温度と湿度を確認し、同じ値が取得できていたのでOKとします。

Zabbix

今回はZabbixエージェントのUserParameterを使って、Zabbixに飛ばします。
Zabbixに任意のメトリクスを飛ばす方法はいくつかありますが、Zabbixエージェントを使用できる場合は、UserParameterを使うと 簡単で便利だと思います。詳しくは以下のドキュメントを参照してください。 www.zabbix.com

Zabbixにアイテムを登録する

事前準備としてアイテムを登録しておきます。※今回は6.0を使用しています。Zabbixの構築は割愛します。
f:id:okisan2:20220301135354p:plain f:id:okisan2:20220301135412p:plain ホストインターフェースがlocalhostになっているのは、Zabbix Serverが動いているサーバのエージェントをそのまま利用するからです。
Zabbixエージェントが入っていて、インターネットに向かってcurlをたたける環境ならどのサーバでも問題ないです。

zabbix_agentd.confにUserParameterの設定を追加する

以下の2行を追加します。
UserParameter=アイテムキー,コマンド の順で記載します。
コマンド部分はテストで使用したcurlコマンドと全く同じです。

UserParameter=home.temp,curl -sX GET "https://api.nature.global/1/devices" -H "Authorization: Bearer xxxTOKENxxx" | jq .[].newest_events.te.val
UserParameter=home.hum,curl -sX GET "https://api.nature.global/1/devices" -H "Authorization: Bearer xxxTOKENxxx" | jq .[].newest_events.hu.val

confを書き換えたのでzabbix-agentをリスタートしておきます。必要ないかも?

# systemctl restart zabbix-agent
# systemctl status zabbix-agent

Zabbixのフロントエンドから値の取得をテストしてみて、取得できればOKです。
設定 > ホスト > アイテム > テスト
f:id:okisan2:20220301140525p:plain グラフを作ればこんなふうに。良い感じです。
f:id:okisan2:20220301140909p:plain

今後

Zabbixはバックエンド(厳密にはZabbixの後ろにさらにpostgresqlがいるのですが…)として利用して、
監視のフロントエンドはGrafanaで構築したいなと思っているのですがGrafanaの画面作りに苦戦中です。できたらまたブログにします。

家庭内での名前解決のためにUnboundを建てる

おつかれさまです。 先日、家庭内にVMware VSphere Hypervisor 7.0(ESXi)の環境を作った関係で、家庭内で名前解決できる環境が欲しくなったので、Unboundを建てることにしました。

natsuyo.net

Unboundを選んだ理由

Unbound自体はDNSキャッシュサーバ(リゾルバ)ですが、local-zoneという機能を使うと簡易的な内部DNSコンテンツサーバ (権威サーバ)としての機能を持たせることができます。将来的に広告ブロックなどの機能を持ったDNSキャッシュサーバにしたいという 思いもあり、Unboundを選びました。

Unboundのインストール

ESXiのVMとして構築します。ハードウェア構成は以下の通りです。 他にもいろんな機能を持たせたいので気持ち多めになっていますが、Unboundを動かすだけならもう少しコンパクトな環境で動くと思います。 (公式で推奨ハードウェア構成を検索したのですが見つけられず…)

f:id:okisan2:20220301095004p:plain

OSは自分が使い慣れているDebianを選びましたが、ほかのディストリビューションでも問題ないです。

$ uname -a
Linux dns-ntp-sv 5.10.0-11-amd64 #1 SMP Debian 5.10.92-1 (2022-01-18) x86_64 GNU/Linux
# apt-get update
# apt-get install unbound

/etc/unboundの下に設定ファイルを置く場所があるので、Unbound.confを編集します。 ※どなたかの設定ファイルを参考に設定したのですが参考元をメモしておくのを忘れました…。思い出したら掲載します。 bbb~の部分はマスクしています。forword-zoneを書かないと、インターネット上のほかの名前解決ができないはずなので 家庭内にあるルータ(こいつ自身はISPから降ってくるDNSキャッシュサーバにforwordしているだけ)とGoogle Public DNSに 向けておきました。この辺は好みなのでISPDNSキャッシュサーバに直接向けても問題ないと思います。

# cat unbound.conf
server:
        verbosity: 0                    #No Log
        interface: ::1                  #IPv6
        interface: ::0                  #IPv6
        interface:127.0.0.1             #IPv4
        interface: 0.0.0.0              #IPv4

        access-control: 0.0.0.0/0 refuse
        access-control: ::0/0 refuse
        access-control: 127.0.0.0/8 allow
        access-control: ::1 allow
        access-control: bbb.bbb.bbb.bbb/24 allow             # your IPv4 LAN
###     access-control: 2001:xxxx:xxxx:xxxx::/64 allow    # your IPv6 LAN

        #INCLUDE FILES
        include: /etc/unbound/unbound.conf.d/local.zone

forward-zone:
        name: "."
        forward-addr: 8.8.8.8                # Google public DNS
        forward-addr: bbb.bbb.bbb.bbb           # House DNS forworder

コンテンツサーバとしての記述はlocal.zoneというファイルに記載します。 IPアドレスはマスクしています。

# cat local.zone
local-data: "esxi.nty.lab. IN A bbb.bbb.bbb.xxx"
local-data: "ntp.nty.lab. IN A bbb.bbb.bbb.yyy"
local-data: "zabbix.nty.lab. IN A bbb.bbb.bbb.zzz"

設定確認&リロード

# unbound-checkconf unbound.conf
# systemctl reload unbound

他のPCのDNSをUnboundのIPアドレスに向けて、local-dataに記載した名前で名前解決できればOKです。

VMware vSphere Hypervisor 7.0 (ESXi)をintelNUCにインストールした

お疲れ様です。

ずっとやりたいと思っていた、VMware VSphere Hypervisor 7.0(ESXi)の環境構築がやっとできたので、それのメモです。

 

どうして(環境が)欲しいのか

存在自体はずっと知っていて、ほしいとは思っていたのですが、自分の体調や金銭的に踏ん切りがつかず、思い立って6年経ってやっと実現しました。

natsuyo.net

今やりたいことは以下の通りです。

  • Kubernetes The Hard WayをVMでやってみる
  • ↑で作ったKubernetes環境で、いろいろサーバを建ててみる(直近ではNature Remoからデータを取得して表示するGrafana建てるのをやりたい)
  • MongoDBの勉強のためにMongoDBのReplicaSetを組んでみる

 

ハードウェア構成

  • NUC11PAHi7(インテル NUC 第 11 世代 Core プロセッサー・ファミリー搭載 NUC キット)
  • crucial 32GB DDR4 2666 MT/s (PC4-21300) CL19 DR x8 Unbuffered SODIMM 260pin|CT32G4SFD8266 ×2
  • crucial P5 CT1000P5SSD8JP

 

”ESXiの母艦としてintel NUCを選ぶ人が多いしとりあえずintelNUCの一番新しいやつにしよう。メモリはとりあえず64GB積んでSSDはM.2の1TB積んどけば動きそうな気がする・・・。”

構成の根拠は以下のような感じです。自作経験が全然ないので、本当に適当です。とりあえずcrucialにしとけば大丈夫だろうぐらいのアレ。価格は合計で10万超えるか超えないかぐらいだったと思います。

 

この記事も参考にさせていただきました。ありがとうございます。

zenn.dev

tekunabe.hatenablog.jp

 

ハードウェアで躓いたポイント

intelNUCがcrucialのメモリを認識せず、「マジで?!?!crucialなのに?!?!?(なぜかcrucialに全面的な信頼を置いている)」と焦りましたが、フォロワーさんにアドバイスをいただき無事認識させることができました。買ったメモリの周波数は2666だったんですが、どうやらintelNUC側が2666で認識できなかったことが原因のようです。そこで、すでに持っていたシリコンパワー製のメモリ(周波数2400)と今回買ったメモリを一緒に挿してみて、強制的に周波数を低くするという技を教えてもらい、試したところ、無事認識するようになりました。そのあとにBIOSアップデートも実施したのですが、今のところ無事に認識されています。@Hanabi36610 さんマジでありがとう!

 

VMware VSphere Hypervisor 7.0(ESXi)のインストール手順

今回重い腰を上げるきっかけとなったのが、ソフトウェアデザインの連載でした。

こちらはその記事のサンプルスクリプトや参照情報となります。今回はこちらを参考に構築させていただきました。手順がかなり詳細に記されており、これがなかったらインストールまで至らなかったと思います。本当にありがとうございました。

 

github.com

実施した手順はほぼほぼこちらの通りなので、記事には詳細には書きません。つまづいたポイントだけ挙げていきます。

  • ESXiのインストーラが毎回違うエラーでコケる→USBにisoを書き込むときに、UnetbootinからRufusにしたら解決。理由はわからん
  • VMwareのサイトで、VMware VSphere Hypervisor 7.0ではなくVMware VSphere 7.0で登録をしていたため、無償ライセンスキーが出てこず焦る(これはただのバカ)

これからどうするか

ソフトウェアデザインの「おうちクラウド」の連載では、Nested ESXiの構成(ESXiの上にESXi)にしてvCenterを入れてクラスタを作ってみる手順まで書かれていますが、いまのところ、我が家ではHyper-VVirtualboxでやっていたことの延長として使えればいいので、intelNUCにVMware VSphere Hypervisor 7.0(ESXi)をインストールしたシンプルな構成でいろいろ遊んでみようと思います。まもなく臨月に入るので、環境構築のレベルを上げすぎると構ってあげられなくなりそう、というのも理由としてあります。

近い未来で故障して泣いてるかもしれませんが、ハイパーバイザー用のベアボーンを買って動かしてみるのが初めての経験なので、あたたかく見守ってくれるとうれしいです。

クラスタ組むことになったらVMUGのライセンスがオススメ!とフォロワーさんから教えてもらったので、出産後にクラスタ組みたくなったらやってみたいです。

 

おわりに

出産前にここまでいけてよかったです。出産したらマジで動かさずに終わっちゃいそうだったので。💦

2021年を振り返って

おはこんばんにちは。

晦日に、今年1年を振り返ってみます。

 

1月

前年から体調を崩していたため休職しての2021年スタートとなりましたが、リングフィットアドベンチャーをしたり、無線ルーターの更新をしたりしていたようです。

リングフィットアドベンチャーを始めて1年が経った - infragirl’s blog

家の無線ルーターを更新しました(WRC-1167GHBK2 → RT-AX3000) - infragirl’s blog

 

2月

この月から仕事に復帰しました。休職前と違う案件に入りました。復帰後なので時短で…と話していた気もしますが、インフラ中心の案件が楽しかったのか、結果的に最初からほぼフルタイム勤務していた気がします。😅

今までダウンせずに働けているので肌にあっていたみたいです。

Kubernetesの公式チュートリアルをやった - infragirl’s blog

 

あと何故か以下のエントリが割とバズりました。

ITエンジニアとしての勉強をやめた話 - infragirl’s blog

はてブコメントはトイレの落書きだと思ってるので、400超えになってドキドキしましたが、批判的な意見はほぼなく、「無理はしない方がいい」という感じだったのが驚きでした。

あとは久しぶりに技術的な投稿ができて楽しかったのを覚えてます。

Kubernetes The Hard Wayをやった - infragirl’s blog

 

あとは推し活(?)はじめました。

趣味として福山雅治ファンクラブに入った話 - infragirl’s blog

 

3月

「それがぼくには楽しかったから 全世界を巻き込んだリナックス革命の真実 」を読んだ - infragirl’s blog図書館で借りた本が面白かったみたいです。

あとは飛ばしましたがはてブロをProにしてGoogleAdSenseの広告設置したりしました。え?現時点での収益?缶コーヒー買えるぐらいかな……

 

4月

【Live2D】ドラゴン娘モデルを作りました【Animaze+Facerig】 - infragirl’s blog

ずっと作りたかったVを作りました。楽しかったです。(´⌒ω⌒`)フヒヒ

 

5月

ブログ記事がないので何をしたのか思い出せないのですが、AirPods Proが値引きしてたので買ったり、顔診断(顔のパーツから似合う服や髪型等を教えてくれるサービス)に行ったりしていたようです。

AirPodsはない生活が考えられないのでいい買い物でした。

 

6月

30歳になりました。

前から気になっていた近所のイタリアンに行ったのですが、6000円コースなのに12000円コースと錯覚する内容でびっくりしました。次はいつ行けるかな…

あとは気が狂ってRX-8にハンコを押したりしました。納車は7月末。

 

7月

GCPのACEを取りました。∠(゚Д゚)/イェーイ。

安定期に入ってからだと思ってたけど7月だったのね。

後半から身体に違和感を覚えます。妊娠していました。RX-8の納車の時は既に妊娠が分かっていて、ちょっと吐き気もあったのですが、気合いで隣県まで取りに行きました。

今だから言えるんですが、RX-8を買った時は「しばらく子供も出来そうにないし。今子供できたら名前は瑛人やな」と言っていました。💦夫は「どうみてもフラグだった」と言います。

 

8月

悪阻で死んでいたため、グレープフルーツジュース蒟蒻畑とお茶漬けで生きてました。有給も足りなくて、仕事も休むのに踏ん切りつかず。今思えば欠勤扱いでも休んでよかったと思います。

BIT VALLEYにパネルセッションで登壇させてもらえたのはすごくいい経験だったなー。

 

9月

悪阻で死んでいました(2ヶ月目)

月末に無事安定期に入ってほっとしました。

ブログ記事がないと何してたか全然分からんですね。つわりの間出来なかった執筆と、Vtuberモデリングのお仕事を受けたのでデザインとモデリング頑張ってた気がします。

 

10月

安定期に突入。飯がうまいと油断してたら3キロ太りました。ぐぬぬ

Twitterと会社で妊娠を公表したところ、沢山おめでとうを言って貰えて嬉しかったのを覚えてます。

 

11月

ねんがんのおうちクラウド設備を手に入れたぞ!!!!

夏目葉太(なつよ)( ゚д゚)書籍化ガンガレ on Twitter: "やったーおうちクラウド機器届いたよー(メモリとSSDはこれからだよー)… "

作ってたVが無事お披露目されたり。

「よぉ人類 ふりかえりのTIPSと悩みを共有しようぜ!」~フリカエリ星人襲来 - YouTube

落書きして遊んでたり。

夏目葉太(なつよ)( ゚д゚)書籍化ガンガレ on Twitter: "各社クラウドを擬人化してみたくてAzureさん描いてみた… "

色々やってたみたいですね。あとぼちぼち赤ちゃん周りの買い物をしたりしていた気がします。

年内に終わらせる予定だった原稿が終わりませんってヒーこら言っていた気がします。

 

12月

Developer Boostに登壇する実績を解除したり。

デブスト2021【A-10】インフラエンジニアって結局何やってんの?―オンプレミスからクラウドへのConnecting the Dots #devboostA #devboost https://togetter.com/li/1814880

今は大急ぎで振り返り記事を書いてます。

 

2021年を振り帰って

妊娠で生活ががらりと変わったので、そのイメージしかなかったのですが、結構色々やっていましたね。

来年は…来年こそは…脱稿(いやこれは本当しないとやばい)と、3月からは産休&育休に奮闘する1年になりそうです。

インフラエンジニア業はしばらくお休みですね。

至らない点も多かった1年ですが、おかげで完走できました。ありがとうございました。

今後も暖かく見守って下さると幸いです。

 

 

 

 

 

 

New Relic Syntheticsで外形監視を試す

おはこんばんにちは。なつよです。

New RelicのAdvent Calender、12/23の記事です。

qiita.com

 

現在執筆中のインフラ女子の日常で監修をしてくださっている、九龍真乙(@qryuu)さんから献本をいただきました。ありがとうございます。

 

監視設定や設計の経験はあるものの、オンプレミスのZabbixやMRTGが中心で、実はSaaSの監視サービスは利用したことがありません。最近だとGCPのCloud Monitoringぐらいですね。読み進めていくうちに”外形監視”について思うところがあり、今回はそれにフォーカスした記事を書いてみることにしました。

 

外形監視とは

外形監視は”ユーザ目線でサービスにアクセスし、正常にサービスが使用できるかモニタリングすること”です。webサービスに対して行う印象がありますが、ユーザーがアクセスしてくるサービスはどんな形であれ外形監視が必要だと思っています。

 

外形監視に対するメトリクスとしてはメモリ使用率やCPU使用率、IOPSが挙げられますが、これを内形監視とはあまり言わないですね。10年以上前からのモニタリングでよく使ってきたSNMPで取得可能な従来のメトリクス、でしょうか。

顧客がシステムを使用できない原因は、サービスのインフラに関わる部分だけではありません。良くあるのがSSL証明書期限切れ、アクセス過多による高負荷(CPU使用率やメモリ使用率が上がるもののサーバダウンそのものはしていないケース)、サービスに到達するまでのネットワークの障害等です。外部向けのwebサービスだと「サービスが落ちているので使えない!」webサービス以外(ex.電話)の手段で運営に伝えてくれるような親切な人はなかなかいないですよね。気づかないうちに顧客の機会損失につながってしまうでしょう。

ちなみに社内システムなら情シス部門にガンガン電話がかかってくるのですが(筆者経験済み)、こちらもできればそうなる前に検出したいものです。

 

ちなみに私はこの外形監視を怠ったがゆえに、イントラ内のプロキシサーバで痛い思いをしたことがあります。これはインフラ女子の描きおろし回で詳しく描いているので、発売されたらぜひ買ってほしいです。(宣伝)

え?いつ発売かって?ほんとすみませんはやく描きます。

New Relic Syntheticsで外形監視をやってみる

New Relicでは外形監視に特化したサービスがあるということで、今回はそれを触ってみました。GCPWordpressを入れたVMを建てて、インターネット上からアクセスできるようにし、それを監視してみることにします。

f:id:okisan2:20211218210303p:plain

今回使用するプラットフォームであるNew Relic Oneは英語ですが、いただいた書籍の解説がとても親切なので、セットアップで悩むことは少なかったです。日本のサポート拠点もありますし、いざというときは手厚いサポートを受けられそうですね!

newrelic.com

ちょっと遊ぶぐらいならクレジットカード登録を求められないのも個人的にうれしいポイントです。がっつり本番用途で使うなら、どの時点から求められるのかは気になりました。

New Relic Syntheticsで使用できるモニター(監視のための設定)は、書籍では全部で5つ記載がありますが、最新のドキュメントを見ると全部で7つあると書かれていますね。

docs.newrelic.com

(話が少しそれますが、日本語ドキュメントが充実している点も良いですね。)

今回は証明書チェック、Pingモニター、シンプルブラウザモニターを試してみます!

 

pingモニターを設定してみる

f:id:okisan2:20211218211700p:plain

Pingモニターはwebサービスがオンラインかどうか、定期的に確認してくれます。Pingという名前ですがICMPではなくHTTPのリクエストを飛ばしてチェックしているようです。設定項目はこれだけです。すごくシンプルですね。「Verify SSL」にチェックを入れると証明書チェーンの有効性を検証してくれます。ちょっとややこしいですが「証明書チェックモニター」とは別機能のようです。(あくまでもPingモニター内で使える設定の一部)

設定後、実際に確認できる内容がこちらです。簡単な設定だけで、かなり細かく見てくれるのがすごいですね。

checks failedとなっているのは、https://shark.natsuyo.net/の証明書のCNが「example.com」になっている(WordPressのデフォルト?)ため、CNと実際のドメイン名が一致しないためです。

f:id:okisan2:20211218212208p:plain

個人的に良ポイントだったのが、書籍で「このコマンドの結果を一致するよ(以下opensslコマンド)」が書いてあったことですね。証明書のエラーといっても色々あるので、何を確認しているのか記載されているのが良かったです。

 

証明書モニターを試してみる

次に証明書モニターを試してみます。

f:id:okisan2:20211218213102p:plain

期限切れを何日前に通知してほしいか設定できるのが良ポイントですね。

Let's Encryptをお使いなら、証明書の期限切れなんて起こすわけねえだろwと思うかもしれませんが、意外とこれが…ほんとうによくあるんですよ…(遠い目)

ソフトバンク障害の原因が、エリクソンの証明書の期限切れだったというニュースもありましたね!

www.itmedia.co.jp

 

証明書のCNとドメイン名が異なる状態ですが、こちらのモニターでは「Everything's A-OK!」となっています。pingモニターの「verify SSL」と組み合わせて使うのが良さそうですね。

f:id:okisan2:20211218213634p:plain

シンプルブラウザモニターを使ってみる

最後にシンプルブラウザモニターを使ってみます。

こちらの設定も非常にシンプルですね。

f:id:okisan2:20211218214356p:plain

こちらにも「Verify SSL」がありますね。Pingモニターとの違いが不明ですが、とりあえずチェックをいれてみます。

うーん、どうやらシンプルブラウザモニターとPingモニターの「Verify SSL」は同じ機能っぽいですね。これはどちらか片方で良いかも。

f:id:okisan2:20211218214612p:plain

 

 

ちょっとわかりにくいですが、右側にグラフの点が打たれています。ページの読み込みにどのぐらい時間がかかっているかを数値にしてくれるようです。

これで読み込み時間を何ms以下にするか?というような目標設定も具体的にできますし、いつの時間帯に時間がかかっているかを見極めることもできそうです。

筆者が経験のあるイントラのプロキシサーバだと、昼休みに読み込み時間が大幅に増えた…ということもありました。

f:id:okisan2:20211218214920p:plain

 

 

どれにどのぐらい時間がかかったかもグラフ化してくれます。今回はシンプルな構成なので、あまり面白くない表になってしまいましたが、webサービスボトルネックを見つける手掛かりになりそうですね。

f:id:okisan2:20211218215127p:plain

 

今回は使用しませんでしたが、APMと組み合わせるとより強力になりそうです。

newrelic.com

 

さいごに

少し触っただけですが、New Relic One面白かったです。

書籍を読んだ感想としては、いろいろな種類のモニタリングを一元管理してやんぜ!という気概を感じました。

仕事で触る機会があればなー。ほしいなー。

明日はいよいよクリスマスイブですね。@takamin55 さん、よろしくお願いします!