2021年9月14日火曜日

TOEIC 単語メモ

 よく出る英単語/熟語のメモです。

No.単語意味備考(類語等)
1complimentary無料の
2representative担当者
3respectivelyそれぞれのeach
4available利用可能、購入可能
5approve承認する、賛成する
6inform知らせる、影響を与えるinfluence
7candidate候補者
8application応募(書類)、申請
9annual年次、年間の
10submit提出するturn in, hand in
11enclose同封する
12hire雇う
13allow許す、可能にする
14exhibition展示会
15benefit福利厚生
16participate参加するattend, take part in
17inquire問合せる
18brochureパンフレット
19distribute配布する
20warehouse倉庫
21avoid避ける
22temporary一時的な
23efficient効率的な
24opening求人広告
25travel expense旅行経費
26improve改善する
27expanding拡大する
28launch開始する
29meet demand需要を満たすmeet the needs
30complaint苦情"claim"は申し立て
31be familiar withよく知っている
32alternative代わりの
33decade10年間
34obtain得るget, acquire
35deposit頭金
36proof証拠evidence
37recognize認める、気づく
38represent代表を務める
39complicated複雑な
40afford~する余裕がないcan't afford : お金がない
41locate見つけるfind
42postpone延期put off
43prove分かる
44promissing applicant有望な候補者
45least likely最もしそうにない
46sign up for申し込むregister, enroll in
47ensure確実化する
48prior approval事前承認
49be eligible資格があるbe entitled
50revise修正するmodify
51inventory在庫
52be valid有効な
53certificate資格、証明書
54appropriate適切な
55prior to〜の前
56itinerary旅程(表)
57expire期限切れ
58payroll給与
59competitive競争する
60questionnaireアンケートsurvey
61promptly迅速に
62venue開催地
63acquire得るobtain
64subscription定期購読
65utility公共(電気、ガス)
66implement実行するcarry out
67investigate調査するlook into
68modify修正するrevise
69prescription処方箋
70eliminate取り除く
71evidence証拠proof
72reveal明らかにする
73beforehand事前にin advance
74capable能力がある、有能な
75disappointing期待はずれの
76understaffed人手不足の

ちなみに、表の入れ方は以下を参考にしました。

GOOGLE BLOGGERの設定:簡単に表を作成(横スクロール)【無料】

2021年8月31日火曜日

無線LANの調子が悪くなったらルーターを再起動しよう&予防のために再起動の定期スケジュールを設定しよう

タイトルで結論出てます。

テレワークが増え、おうちでWi-Fiを利用する時間も増えてきたため、我が家のWi-Fi環境を強化しました。

やったこと↓
  • 802.11acで宅内の通信速度を高速化
    →対応するWi-Fiルータを購入しました(買ったもの:TP-LINK Archer C6

  • メッシュWi-Fiで家中どこでも快適に繋がるように
    →中継機を購入しました(買ったもの:TP-Link RE300
おかげで、家中どこでも接続できるし、遅くなるケースも少なくなりました。

ただ、突然にインターネットに繋がらない現象がたまーに発生してました。
Wi-Fiルータのログも見たのですが、原因はわからず。。。

結局、マニュアル等を見て、「繋がらない場合は再起動しましょう」とのことだったので、再起動してみると直りました。何でも困ったら再起動ですね!

ということで、再起動も定期的に実行することで、繋がらないトラブルの抑止にもなると思い、設定してみています。
Wi-Fiルーターの設定画面から設定できるものが多いと思います。
参考までにウチのWi-Fiルーターの設定画面を貼っておきます。





2020年5月20日水曜日

Nintendo Switchとリングフィット アドベンチャーを定価で購入した方法(2020年5月)

今日、AmazonからNintendo Switchが届きました。
また、先日リングフィット アドベンチャーもAmazonから届きました。

入手困難な中、探し始めて約1ヶ月・・・どうにか定価で購入できましたので、どうやって購入できたかまとめます。



先に結論から言うと、まず事前に以下2つを準備し、

・商品ページを開いておく+自動再読み込みで商品ページを自動更新
・Twitterの入荷お知らせアカウントのフォロー+通知ON

通知が来たら、商品ページから即購入です。3分間くらいが勝負です。
気づけなかったら諦めて、次の入荷を待ちましょう。
(そもそも夏には落ち着くとのことですので、気長に待てる人は待つのもあり)

以下、詳細な流れをご紹介します。

Twitterで入荷通知→即購入

Twitterで入荷を通知するアカウントをフォロー、通知の設定をしておきます。
通知が届いたら即購入します。

最初からフォローしていたのはこちらのアカウント

しかし、5月7日のAmazon入荷時は確保できず。。。
通知が遅いかもしれないと思い、他のアカウントもフォロー+通知設定。

結果的には、5/11の入荷通知では、一番早かったのはこちらのアカウントでした。

次はこちら

そしてここの順番でした。

Amazonでの購入方法

Amazonで購入する場合のポイントを説明します。

何度も試す

これが大事です。
一度エラーが表示されたり、商品がなくなりました、と表示されても、
何度も繰り返すことで買えました。
おそらく小出しに在庫数を更新しているのでないかなと思います。
諦めずに何度も挑戦してみてください。

「カートに戻す」から購入

これで買えた気がします。
Twitterでもよく聞く話で、普通に商品ページから追加するよりも確度が高いのかもしれません。

出品者一覧からカート追加、購入

入荷しても、普通に表示されないことが多かったです。
その場合、出品者一覧から販売者:Amazonを選択してカート追加すればいけます。

Amazonアプリからも試す

PCからアクセスしてエラーが表示されて待ってしまう場合、スマホのアプリからも購入トライしてください。

おまけ、以下やったけど意味なし

AmazonのKeepaで監視

Chromeアドオンで、Amazonの掲載商品についての過去の価格がグラフで表示されるので、
今が買い時なのか判断できます。
また、価格が○○円以下になったら通知する機能もあり、これを活用しようとしました。

アドオンの紹介サイトはこちら

詳細な使い方はこちらにあります

ただ、この通知の検知がタイムラグがあったため、Switchのような即時売り切れてしまうものは不向きでした。大体5〜10分くらい遅れて通知される感じです。

楽天ブックスやイトーヨーカドー等ののオンラインストアもチェック

Amazon以外にも入荷するオンラインストアはたくさんあるので、色々チェックしておくこととしました。
ただ、Amazonに比べ入荷数が少ないせいか、即完売となるような気がします。なので、人力で買うのはかなり厳しい気がします。
また、在庫が残っていたとしても、Amazonと比較し購入までの操作数が多いため、入力している間に完売となってしまう感じです。

ヨドバシカメラ、ビックカメラ、イオン、ジョーシン等の抽選申し込み

抽選申し込みもありますが、かなり倍率高いので、気長に待つしかない。。。(ヨドバシカメラで出てたのは100倍とか?)
ただ、なかなか時間が取れない人は抽選しているところを探すしかないかと思います。


最後に、悩んだのは個人(転売屋)からの購入
一応、ヤフオクで相場を見ながら買うか迷ってました。
今は、大体中古なら40,000円、新品で42,000〜44,000円くらいな感じでした(新型モデル)
40,000円下回ったら買おうかなーとは悩んでました。
あと、メルカリは怪しいから見ない。
Twitterで時々見かける「譲ります」系も怪しいらしい。

あと、Amazonでも安く出品しているところがありますが、こちらも購入NGです。
一度リングフィット アドベンチャーを10,000円で購入しましたが、結局商品も届かず、マーケットプレイス保証で返金してもらいました。
個人情報が抜かれるだけらしいので要注意。

以上、ひさびさの投稿でした。

2020年3月31日火曜日

シムシティ(2013) がmacOS Catalina(10.15)で動作しない

日本語の記事がなかったのでまとめ。

我が家のMacでSIMCITYを久々に起動しようとしたところ、起動できなくなってました。

この画面で固まってしまう。。。

思い当たるのは最近macOSを、Mojave(10.14)から最新版のCatalina(10.15)にバージョンをしたこと。

シムシティの製品ページを見ると、動作OSのバージョンがMojave(10.14)までであることが発覚。。。


確かに、Catalina(10.15)からは32bitのアプリケーションが動作しなくなくなるため、見事にはまってしまった感じでした。

じゃあ、Catalina(10.15)にバージョン後は遊べないのか調べてみましたが、
一応、サポートのページに記載ありました。


アップデート予定として以下が記載されてました。
  • Civilization V (Mac Steam) *Updated Nov. 14, 2019*
  • Command & Conquer: Generals
  • SimCity 4: Deluxe Edition (Mac Steam) *App Store version updated Feb. 19, 2020
  • SimCity: Complete Edition (App Store) *Updated Dec. 2019*
  • The Sims 2: Super Collection (App Store) *Updated Jan. 13, 2020*

この「SimCity: Complete Edition」なら移行できたのでしょうが、持っているのは通常版。。。
あきらめて買い直すしかなさそうです。(そこまでしてやるかは微妙ですが。。。)

2016年10月17日月曜日

Logstash+Elasticsearch+Kibinaで自宅への不正アクセス状況を可視化してみる

Elasticが流行り始めて久しいですが、自分も使ってみたい。
と言っても、よくあるようなsyslogの監視とかTwitterの解析とかつまらないので
あまり他にやっていないものを読み込ませようと思いました。

と言うことで、勉強にもなるかと思い、サイバー攻撃関連のデータを可視化してみようと思います。
自宅にFWとかProxyとかあれば、それぞれのログを突っ込んでみたいけど、そんな大層なことはやっていないので、外と繋がっている普通の無線LANルータにあるアクセスログを取り込もうと思います。
ちなみに、無線LANルータのログの取り出し方は別にまとめます。一気に書くと内容が多くなりすぎちゃうので。。


事前準備

Elasticで公開されている手順どおりにインストールを進めていく。

まずは必須なパッケージである、JavaとApacheをインストール

# yum install java

# yum install httpd

ちなみに、Web画面でApacheを使うので、 Firewallのポート空けるのを忘れずに。

Logstash,Elasticsearch,Kibanaのインストール

yumでインストールするため、リポジトリを追加する。
以下2ファイルを作成。

# cat /etc/yum.repos.d/Elastic.repo 
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

# cat /etc/yum.repos.d/Logstash.repo 
[logstash-2.3]
name=Logstash repository for 2.3.x packages
baseurl=https://packages.elastic.co/logstash/2.3/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

まずは、ElasticsearchとLogstashパッケージをインストールする。
# yum install elasticsearch
# yum install logstash


Kibanaはインストール不要のため、yumは使わず、Webページから圧縮ファイルをダウンロードしてくる。
# curl -O https://download.elastic.co/kibana/kibana/kibana-4.5.4-linux-x64.tar.gz
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100 31.7M  100 31.7M    0     0  1013k      0  0:00:32  0:00:32 --:--:-- 2611k

解凍し、公開Webのフォルダに格納する。
# tar -zvxf kibana-4.5.4-linux-x64.tar.gz
# mv kibana-4.5.4-linux-x64 /var/www/html/
# mv /var/www/html/kibana-4.5.4-linux-x64 /var/www/html/kibana

セットアップ

まずは、Elasticsearchの設定をする。設定ファイルは以下。
# vi /etc/elasticsearch/elasticsearch.yml 

以下の2箇所を修正、追記。
普通は0.0.0.0で公開されるので設定不要なのだが、VMなど接続するIPアドレスが変わる場合は、きちんと接続可能なIPアドレスを明記する必要あり。
# network.host: 192.168.0.1network.host: ***.***.***.***

# enable cross-origin resource sharing
http.cors.enabled: true

次にKibanaの設定。設定ファイルは以下。
# vi /var/www/html/kibana/config/kibana.yml 

こちらもIPアドレスを記載。
server.host: "192.168.56.101"
elasticsearch.url: "http://192.168.56.101:9200"

最後にLogstashの設定。
ElasticsearchとKibanaはただ連携する設定しかしていないけど、
Logstashは対象のログファイルの読み込み設定とフォーマット、
Elasticsearchと連携する設定を行う。

以下ファイルを作成。
# vi /etc/logstash/conf.d/Security.conf

中身はこんな感じです。
input {
  file{
    path="/var/log/PR500MI/rSecurity.log"
    start_position = "beginning"
  }
}

filter {
  grok{
    match={
      "message" = "%{DATA:logdate} SRC=%{IP:srcip}/%{NUMBER:srcport} DST=%{IP:dstip}/%{NUMBER:dstport} %{WORD:protocol} %{DATA:action}\[%{DATA:actiondetail}\]"
    }
  }
  date {
    match = ["logdate", "YYYY/MM/dd HH:mm:ss"]
    locale = "en"
  }
  geoip {
    source = ["srcip"]
  }
}

output { elasticsearch {
    hosts = [  "192.168.56.101:9200" ]
  }
} 

解説を入れておくと、
input{ file{ pathで指定するのが読み込む対象のファイル(今回は別で取り込んでいる無線LANルータのアクセスログ)
start_position〜の記載は、ファイルの読み込みを先頭から行うように指定。
(デフォルトだと末尾から読み込む?らしいので)

また、
filter{ grok{ matchは、読み込むログのフォーマットを指定する。
フォーマットは以下にまとまっている。
https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns

また、フォーマットをチェックするために、以下のサイトを活用した。
http://grokdebug.herokuapp.com/

ここまででとりあえずはセットアップ完了。

起動

実際に起動してみる。
順番は、Logstash -> Elasticsearch -> Kibanaの順(なはず)

Logstashの起動
# service logstash start

設定ファイルの誤りでログの読み込みに失敗している、などの情報はログに残る。
 /var/log/logstash配下に出てるので確認する。

次にElasticsearchの起動
# service elasticsearch start
こちらも同様にログをチェックして、エラーが出ていないか確認する。
こちらは/var/log/elasticsearch配下です。

最後のKibanaの起動
# /var/www/html/kibana/bin/kibana

Kibanaでログデータを確認

長かった準備はここまででKibanaでログデータが参照できるか確認してみる。
KibanaのURL(http://***.***.***.***:5601/)へアクセスする。
こんな画面が出てくるはず。


書いてある通り、ここではIndexを指定する。
Kibanaでは分析するログデータのIndexとなる列を指定することで、柔軟な分析が可能となる。

本来、ここのページではログデータ内のカラムを参照し、Indexとなる列を選択させる画面である。
こんな風に選択する画面が出てくるのが正しいはず。

じゃあ、今回は何故違ったかと言うと、ログデータが正しく読み込めていないためだった。
色々ログファイルを見てみると、Elasticsearchのエラーログに以下のエラーが出ていた。(一部いじっています)
[2016-09-23 23:40:03,346][DEBUG][action.bulk              ] [Cobalt Man] [logstash-2016.09.23][4] failed to execute bulk item (index) index {[logstash-2016.09.23][logs][AVdXfSraUEBq1amZMjWs], source[{"message":"/09/23 13:56:48 SRC=119.93.79.167/35125 DST=***.***.***.***/23 TCP 廃棄[パケットフィルタ]","@version":"1","@timestamp":"2016-09-23T14:40:02.635Z","path":"/var/log/PR500MI/Security.log","host":"centos.localdomain","logdate":"/09/23 13:56:48","srcip":"119.93.79.167","srcport":"35125","dstip":"***.***.***.***","dstport":"23","protocol":"TCP","action":"廃棄","actiondetail":"パケットフィルタ","tags":["_dateparsefailure"],"geoip":{"ip":"119.93.79.167","country_code2":"PH","country_code3":"PHL","country_name":"Philippines","continent_code":"AS","region_name":"53","city_name":"Muntinlupa","latitude":14.390299999999996,"longitude":121.04750000000001,"timezone":"Asia/Manila","real_region_name":"Rizal","location":[121.04750000000001,14.390299999999996]}}]}
MapperParsingException[failed to parse [logdate]]; nested: IllegalArgumentException[Invalid format: "/09/23 13:56:48"];
 at org.elasticsearch.index.mapper.FieldMapper.parse(FieldMapper.java:329)
 at org.elasticsearch.index.mapper.DocumentParser.parseObjectOrField(DocumentParser.java:309)
 at org.elasticsearch.index.mapper.DocumentParser.parseValue(DocumentParser.java:436)
 at org.elasticsearch.index.mapper.DocumentParser.parseObject(DocumentParser.java:262)
 at org.elasticsearch.index.mapper.DocumentParser.parseDocument(DocumentParser.java:122)
 at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:309)
 at org.elasticsearch.index.shard.IndexShard.prepareCreate(IndexShard.java:529)
 at org.elasticsearch.index.shard.IndexShard.prepareCreateOnPrimary(IndexShard.java:506)
 at org.elasticsearch.action.index.TransportIndexAction.prepareIndexOperationOnPrimary(TransportIndexAction.java:215)
 at org.elasticsearch.action.index.TransportIndexAction.executeIndexRequestOnPrimary(TransportIndexAction.java:224)
 at org.elasticsearch.action.bulk.TransportShardBulkAction.shardIndexOperation(TransportShardBulkAction.java:327)
 at org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:120)
 at org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:68)
 at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryPhase.doRun(TransportReplicationAction.java:639)
 at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
 at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:279)
 at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:271)
 at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:75)
 at org.elasticsearch.transport.TransportService$4.doRun(TransportService.java:376)
 at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Invalid format: "/09/23 13:56:48"
 at org.joda.time.format.DateTimeParserBucket.doParseMillis(DateTimeParserBucket.java:187)
 at org.joda.time.format.DateTimeFormatter.parseMillis(DateTimeFormatter.java:826)
 at org.elasticsearch.index.mapper.core.DateFieldMapper$DateFieldType.parseStringValue(DateFieldMapper.java:362)
 at org.elasticsearch.index.mapper.core.DateFieldMapper.innerParseCreateField(DateFieldMapper.java:528)
 at org.elasticsearch.index.mapper.core.NumberFieldMapper.parseCreateField(NumberFieldMapper.java:241)
 at org.elasticsearch.index.mapper.FieldMapper.parse(FieldMapper.java:321)
 ... 22 more

"[Invalid format: "/09/23 13:56:48"]"なんてのを見ると分かるけど、無線LANルータのログファイルのデータが正しく読み込めていないことが原因で、パースエラーが起こっている様子だった。
ログファイルには、ちゃんと"2016/09/23 13:56:48 ..."と記載されていたが、なぜかElasticsearchで読み込まれるときには"/09/23 13:56:48"となってしまっていました。。

まとめ

実は、この原因が解決せず、Elasticは諦めました。誰か原因わかれば教えてください。
次回、同じことをSplunkで行った結果をまとめます。