アレコレ・ティプス

これ便利だな〜と思ったことなど

pm2 の ログ が 心配 ( logrotate を使う )

nodejs を pm2 でサービス・デーモン化した際に、 ログの肥大化が心配。
 
そんな時は、pm2-logrotate が手っ取り早い と思った。
 
自分なりに簡易的な検証はできたので、しばらく使って行くべく、ここに示す。
 
 
 
 

 
 
< 前提条件 >  検証してみていい感じだった環境
CentOS Linux release 7.5.1804 (Core)
• nodejs v8.12.0
• pm2 3.2.1 
• root権限 で pm2 、 nodejs を 起動して問題ない環境 ( Firewall と HAproxy をフロントに立たせて ACL させるなど )
 
 

 
 
< ひとこと結論 >
 
・ pm2 ログの肥大化が怖いなら、この2つを設定すべし。
    pm2-logrotate の 最大ログサイズ と、retain 数( ローテーションさせるログファイル数 ) である。
 
 

 
 
< 導入 >    pm2-logrotate ツールをインストール
 
○ 一応 pm2 の 全てのデーモン・ サービス を停止  しておく。
# pm2 stop all
 
○ インストール
# pm2 install pm2-logrotate
 
○ 起動する。例 root ユーザーで起動する場合。
 
# pm2 logrotate -u root
 
○ 1つのログの最大サイズを決める。
例: 10KB 
# pm2 set pm2-logrotate:max_size 10K
 
○ logの容量が 気になる人は、retain の設定もする。
 
# pm2 set pm2-logrotate:retain 7
 
こうすると 10K のlog 7つ でグルグル回すようになる。
総容量は、10K x 7 となる。
 
ローテートすると 古いログは消される。
 
( / 起動ユーザー /.pm2/logs/pm2-logrotate-out.log )
 
-> retain の数と 最大ログサイズ(単体)を 正確に指定できていれば、
   容量オーバーとなる心配がない。
 
目的のサービスを起動する。
(例)
# pm2 start node-red
 
そうすると、 ここに設定ファイルができて、
/etc/logrotate.d/pm2-(ユーザー名)
 
ここで  ログがローテーション管理されている ファイル パスも記載されている。
 
/ 起動ユーザーのホームディレクトリ /.pm2/logs/*.log
 
 

 
 
○ pm2 dashboard コマンドで、2つのサービスが起動していることを確認
 
< Node-RED のデーモン化と、ログローテーション >
 
 
 

 
 補足 :
・" 起動ユーザー " とは、pm2 を 起動させたユーザー
 
修正 : 2018/10/8
・前提条件の一部修正
 

 

QNAP の FileStation を HTTP API で使う ことはじめ

• 目的 •
 
QNAP の FileStaion へ HTTP API 経由でアクセスする。
「QNAP File Station」の画像検索結果
 
• QNAP とは •
 
「QNAP」の画像検索結果
本筋とは異なるのでざっくりと、、
 
お家や会社でクラウド的な機能を実現する高機能なNAS(ストレージ)です。
 
Fog Computing なマシン。 Fog とは 霧。 
 
クラウドの機能を手元に持ってきて使いやすくしたもの。
 
クラウドの機能を使って実現したいけど、機密情報が、、個人情報が、、データ容量代が高い、、 そういった場合の救世主。
 
ブラウザ上のGUIボタン操作で、ぽちぽちと、、VM できる。Docker も使える。VPNも使える。リモートワークに便利。Node-RED サーバーをQNAP上にたてて、VPNで繋がりあって圧倒的なスピードでの共同開発など、いつもお世話になってます。
「QNAP File Station」の画像検索結果
 
• 前提条件 •
 
( QNAP QTS File Station API v4.1 )
 
まず、QNAP (サーバー側) で API アクセスを許可する設定をしなくてOKか?
 
デフォルト設定では API アクセス許可している模様。
ただし、セキュリティID - sid を取得 しなければ HTTP API で FileStation へアクセスできない。
 
 

 
 
○ アクセストークンを取得するには?
 
1. GUI で QTS へログインしているユーザーで API アクセス権限がある設定ならば、そのユーザーで セキュリティID - sid を取得できる。取得するには、まず、そのユーザーのパスワードをエンコードし、その文字列を取得する。
 
javaScript 動作環境なら、簡単にエンコードできる。( 例: nodejs )
 
 
2. エンコードしたパスワードを使って、 QNAP HTTP API ヘ sid 要求する。
 
http://IPアドレス:8080/cgi-bin/filemanager/wfm2Login.cgi?user=ログインしたいユーザー名&pwd=エンコードしたパスワード文字列
 
成功すれば、"authPassed": 1 を含む以下、リターンがくる。
 
{
"status": 1,
"sid": "ここに目的となるsid文字列がくる",
"servername": "TVS-682など 型番 ",
"username": " ログインユーザー名 ",
"admingroup": *,
"supportACL": 1,
"enableACL": 0,
"dateFormat": 1,
"timeFormat": 24,
"genericModel": 0,
"2sv_type": 0,
"need_2sv": 0,
"send_mail_status": 0,
"authSid": "ここに目的となるsid文字列がくる",
"lost_phone": 0,
"emergency_try_count": *****,
"emergency_try_limit": 5,
"security_question_no": *,
"security_question_text": "***",
"cuid": "********************************",
"authPassed": 1,
"version": "5.1.0",
"build": "20180830"
}
 
 

 
以上より、QNAP FileStation の HTTP API 利用が開始できる。
 
( QNAP Virtualization Station 内の VM からは 取得できなかった。仮想のゲストから仮想ホストの重要なデータにアクセスできないようになっている可能性あり。 )
 

 
お試しに ・・・
 
「QNAP File Station」の画像検索結果
 
以下 GETリクエスト で QNAP の Multimedia フォルダ  のリストを取得できた。
• Get Folder List メソッド •
 
GET http://IPアドレス:8080/cgi-bin/filemanager/utilRequest.cgi?func=get_tree&sid=先ほど取得したsid&node=Multimedia
 
 
[
  {
"id": "Multimedia/@Recently-Snapshot",
"cls": "7",
"text": "@Recently-Snapshot",
"no_setup": 0,
"draggable": 1,
"iconCls": "folder",
"max_item_limit": ***,
"real_total": 2
},
  {
"id": "Multimedia/@Recycle",
"cls": "7",
"text": "@Recycle",
"no_setup": 0,
"draggable": 1,
"iconCls": "folder",
"max_item_limit": ***,
"real_total": 2
}
],
 
 
 

 

Chrony で 自動 強制 時刻 同期 設定  for 仮想OS VM ( CentOS7 )

chrony の一部設定において 日本語 サイト では 以下対策の情報が とてもヒットしづらかったので 書き起こします。

 

https://chrony.tuxfamily.org 

f:id:asuki_y:20180908120247p:plain

 

自身は 仮想OS を扱いますが、その仮想OS は、夜中の間、仮想サスペンド状態 になります。
 
そして、朝 特定の時間になると、 サスペンド から復帰した時に、時刻が 夜中のまま盛大に毎回ずれるという仕様です。( QNAP Virtulization Station の VM - CentOS7 上で )
 
そのとき、どうやって chrony の設定ファイルを使って 毎朝 強制時刻同期させるか? というテーマです。

 

f:id:asuki_y:20180421214033p:plain

 


 

[ 結論 ]

 
/etc/chrony.conf  の makestep 指定において、最後の引数を -1 に する。
 
例) 10秒以上 ずれてたら 毎回 stepモードで 強制的に時間を設定する。
 
makestep 10 -1

 


 
通常 makestep は、このような設定などが 例としてあげられています。
リアルマシン向け にも妥当な設定かと思います。

 


 
makestep 3 
 
1秒以上の 時刻ズレ があったら、3回まで ntpサーバーに同期する " 設定です。

 


 

 

しかし、 回数 無制限 の指定はどうするのか、わからなかった。
 
アシタリスク * を使ってもNGだったし🤔むむむ
 
「 回数指定を -1  にするんだよ 」
 
あ、なるほどね。。

 


 
こちら を参照しました。
 
参考1  
" 3.3. Is chronyd allowed to step the system clock?  "  の段落
 
参考2
" makestep "  の 段落
 (マイナス値を使うと、制限を無効にできます)。

Node-RED  グローバル変数

フロー外 変数を共有する。
フローを またいで変数を共有する。
フローを 横断する変数の設定。
 
いろんな言い方があるかと思いますが、
ともかく、
 
Node-Redグローバル変数 を使う。
 
 
 
1、変数の設定書き出し側のフロー内に以下内容んの function ノードを設置。
var text = " グローバル変数を設定するよ";
 
global.set("global_temp",26);
msg.payload = text;
return msg;
 
例えばこんな感じで、 timeStamp でもtrue でもいいので、
とりあえず ボタンを押して イベント発火して グローバル変数の " Set " を 行って テストをすると 使い方を 体感しやすいかと思います。
 
 
2、読み側 の フロー内に 以下内容の function ノードを設置。
 
var temp = global.get("global_temp");
msg.payload = "グローバル変数を、読み出すよ : " + temp;
return msg;
 
 
以上です。
 

iPhone iOS11 の AirDrop " すべての人 " からの通信を許可するには

 最近 弟からの相談で、昔の iPhone に入っていたデータを、 新しい iPhone に入れたい けど windowsiTunes が微妙な動きをしていてできない。 といったことだったので、 古いiPhone から 新しいiPhone へ 直接画像データを転送する方法 をアドバイスした。 どうもそれで解決しそうだ。
 
その時 AirDrop の設定変更は iOS11 で どのようにやるのか 気になったので、まとめてみた。
 
< iOS11 における AirDrop の設定変更 >
 
 メインのアプリを選択する画面 を開く。
 
下から、メニューを出す。
 
 

 
この 一番左上の部分を長押しする。( iPhone SE でした )
 
するとこのような画面に。

 
ここで AirDrop を選択する。
 
" すべての人 " を選べば、 他の iPhone から Bluetooth - AirDrop経由での画像送信を 受け付けやすくなります。
 
 
 

iPhone を simロック解除 して MNP 作業完了できた記録

GWは 朝4:30 に起きたり、GoogleMapを駆使したりして 苦戦しながら 都会の渋滞を抜けて、大自然の空気に触れてきました。
 
 写真は 5/3 軽井沢 雲場池 にある CAFE R's POND にて、景色撮影に夢中になっていたら、、

f:id:asuki_y:20180515163225p:plain

 
5/4 長野の戸隠 で 雪に降られてびっくりした。 
 
さて今回は、手持ちの iPhone SE の SIM ロック を解除して、電話番号ポータビリティー制度 MNP で電話番号を持ち運び、LINE アカウントの引き継ぎまで うまくいったので、備忘録として 大切そうなポイントと  大まかな流れ、 フロー を記録しておこうと思います。
 
 
 

iPhoneのバックアップをとっておく

iTunes を使う。
 

Sim ロック解除 申請

事前に 契約していたキャリアのアカウントで Sim ロック解除 申請処理を済ませておく
 
マイソフトバ○ク など
 

iPhoneを探す」 機能を必ず オフ にする

( アクティベーションロック を解除 )
 
 

LINEアカウント 引き継ぎ を オン にしておく

( 自分の場合は 個人的なセキュリティ〜ポリシー上 LINEに電話番号を渡さずにFacebookアカウントで利用していたので、LINEに必要な作業はなかったのかも。)
 
LINE の設定画面から アカウント引き継ぎ 設定 にいけます。

 

MNP 申請

 
これまで使用していたキャリアで MNP 申請
( ここで電話番号が法人アカウントだとBIGLOBE側でNGになる💦BIGLOBE側では、個人アカウントのみMNPに対応している? )
 
今回は、BIGLOBE のsimを使うため、一旦 MNP申請の前に 法人アカウントから 個人アカウントにする必要があった。法人アカウントから 個人アカウントに切り替えは、1日かかるので、切り替え申請の翌日から MNP申請ができた。
 

電源オフ

iPhone 電源OFF 
 

Sim入れ替え

BIGLOBEの店頭 で sim入れ替え作業 を店員さんにやってもらえた。
 

電源オン

 iPhone 電源ON
 
 

プロビジョニングプロファイルのインストール

 
まず、店舗で wifi 回線 などを借りて iPhoneから インターネットに接続。
 
指定の アドレスにアクセスして、新しいsim、BIGLOBE用の プロビジョニングプロファイルのインストール。
 
これの設定がうまくいと、 iPhone 単体で インターネットができたり、電話できるようになる。
 
うまくいかない場合は、sim Lock が解除されているか、アクティベーションロックが解除されているか、よく確認しよう。
 
だめなら、とっておいたバックアップを  使ってなんとかやる方法がある と思う。
 
自分は、今回は、すんなりいけたので、 バックアップファイルは使わずにすみました。
( でも 念のため一応 バックアップ はしておこう。)

動作確認 

電話、インターネット通信、LINE アカウントの動作確認
 
 
以上。
 
家族割引も手伝って 電話と通信データで、月額 2000円くらいになった(゚o゚)
 
 

早く寝たい時に使うサプリを選んでみたが、、

〜 いつもより早く寝たい時に使うサプリの選定をしてみた 〜

 

今年も、週一で 6:00からの早朝テニスが始まった!
( 冬の間は、暗くてボールが見えないので、どれだけこの時を待ち続けていたことか! )
 
そのために、今回は、その前夜だけは早寝したいという要求仕様になります。
 
良さげなサプリはないか? いろいろと考えてみました。
 

f:id:asuki_y:20180421214033p:plain

 

 

目次

 

 

GABA

 

この前 ツイッター100円均一で 売ってる

 

って話題になったから気になったので、買おうと思った。

 

-> どこも売り切れてるやん。。

 

仕方ない。他の方法で探す。

 

 


グリシン を使う。

 

ん〜 これとか?

 

 

 

グリシンは、コンビニの弁当とかおにぎりにも入っていて、ご飯も相まって結構眠くなりますよね。防腐効果もあるみたいですね。( 個人的には、亜硝酸ナトリウム とかよりましかな )

 

ただ、こういったものは人工的に作ったものがほとんどとのことで、
なるべく自然な食品から取りたい。


コラーゲンペプチド


この中にも グリシン の成分が含まれているとのことでした。

 

http://www.sciencecomlabo.jp/healthy_food/collagen.html


なので、吸収率の高い コラーゲンペプチド の入った 青汁とか そういった類のものや、原料 および 生産地 ( 〇〇県〇〇産 とか) が書いてあるものも結構ありだなと考えました。

 


でも、最近 ごぼう の代わりに ごぼうの粉末アンチエイジング 用途で、折を見て愛用していて思ったのですが、粉末は コスパはいいけど、管理 が難しい。 主に 湿気対策 


なので、カプセル錠で 飲めるタイプがいいなと思った。

 

 
これはイイ!


と思って、一応 原材料名 を確認。


ひとつ 気になったのは、、


グリセリン脂肪酸エステル

 


乳化剤 として、懸念される人もいるようで、気持ちもわかりますが、これを使わないことで油の酸化 が進みやすくなり、そっちの方の発ガン性物質の方が、影響が大きいかも。ということも考慮された上での トレードオフ を検討された方がより実質的な結論になるかもしれません。


自分は、欲張りなので、どっちもないのがいいなと思い、また深掘りしてみると、発芽玄米を食べることで、自然にグリシンがとれそうということがわかった。


そういえば、体感として、ご飯たべたら眠くなるし、それを逆手に使おうと考えた。

 

自分の慢性病を次々に直していく、原因を明らかにしていく尊敬する漢方先生がいらして、その先生曰く、

 

「 ご飯を食べて眠くなる。 これは農耕民族の 自然な からだの作用  」

 

とのことです。( 詳細は一旦今回は省きます )

 


ところが、面白い記事を発見した。

 

検索ワード

 

" 発芽玄米  眠くなる "

 

 

アブシジン酸 という毒

 

https://tetetenoblog.com/540.html

発芽玄米を食べて眠くなる原因には、ご飯の消化吸収の際の農耕民族本来の自然な作用だけでなく、玄米の「 アブシジン酸 」 という毒が原因で眠くなるとのこと。

 

まじか!(゚O゚)

 

これは 妊娠中の方など要注意ですが、個人的には、こういった少量の毒をむしろ待望していた😎

 

別にドMではない。

 


サプリ の危険な使い方

 

そもそも 個人的な考えでは、サプリは使い方次第では、より深い毒である。

そのサプリを飲み続けなければ いけなくなる という体を作るのに適している。


いわゆる サプリ中毒者 を " 大量生産 "して、儲けている企業が多いという考えなので、

 

「 xxxx (サプリ) を毎日飲むと体にいいですよ 」

 

という宣伝をしている企業は、基本的に信用していない。

仮に毎日それを飲み続けていった結果、だんたん効かなくなっていきませんか?

消費量は増えていきませんか?

 

そういう体になることで、本当にあなたの心と体を大切にしてくれているのでしょうか。

 

 

大切なのは 自己防衛?

 

自分は 古来より伝わる哲学や、人間の原始時代での営み はどうだったのか ということに思いを巡らせて考えてみることを大切にしています。

 

自分にとっての究極的な" 自然体 "とは何か、いつも趣深いです。

そしてとても深く、すっきりと腑に落ちるものは、時に清々しいものです。

 

 

古来より伝わる哲学 と 少量の毒 と 漢方

 


逆に毒は、古来よりの仏法哲学の言葉を引用すると、 " 変毒為薬 " とある。
竜樹の『大智度論』にあるように、毒を変えて薬と為す 。と

 

そう考えると アオカビ から発見された ペニシリン って 面白いです。

 

また、漢方医学 ( 中医学 )では、少量の毒のある生薬をうまくつかって、慢性的な病を治癒していくものがあるように、1週間に1回くらいは、サプリよりも、少しくらいの毒を取り入れる形の方が、自分の漢方スタイルに合っているので、これで決めた。


自分が本来もっている免疫などの作用の方を正常に働かせて、少量の毒をあえて取り入れて、体内における薬の作用に変えていく

 

また逆に、体が従来もっている機能やはたらきを、甘やかしすぎない程度にバランス・タイミングに気をつけて、必要な時、ここぞという時に、サプリ を有効につかう。

 

これが私の基本とする からだ および 健康 作りです。

 


結論 はシンプル

 


これからは、早く寝たい日は 発芽玄米 を ご飯に混ぜて炊いて食べよう。

( 他の日は、普通のご飯でいい )

 

 

 

 

 

 

あ、ついでに GABA も入ってるやん(゚O゚) 

 

 

毎日 同じものばかりよりも、日々いろんなものをバランス良く食べて、健やかに快適なライフを(´ω`)