アイコンがフラットデザインになってる。
複数行をペーストした時に、意図してない処理も実行されてとんでも無いことになった経験があるだろうか?
複数行をペーストしようとすると警告が出るようになった。
Suppress this message permanently
にチェックを入れることで、次回から聞かれなくなる。
Edit > Paste Special > Warn before Multi-Line Paste
で変更することができる。
また、上記はペーストの中身を見ることができないが、 Cmd + Option + V
で中身を確認することができ、編集してペーストすることもできる。
ちなみに既存バージョンの場合、 @harasou 氏謹製のmay-i-pasteを使う事で同等の機能を使うことができる。
タブのテーマと位置を変更することができるようになった。テーマは2種類
Light
Dark
位置はTop
,Bottom
,Left
の3種類。
それぞれ、 Preferences... > Appearance
の [Tabs]
で設定できる。
Cmd
を押下しながら、文字を選択すると、ブラウザを開いて検索してくれたり、ディレクトリであれば、Finderで該当ディレクトリを開いてくれたり何かと便利。
しかし、選択する際にハイライトされていないので、この機能を知らない人も意外に多い。
今回選択をするとハイライトされるようになったので、ぜひ使ってみると良い。
今後の運用の参考にして欲しい。
1位はダントツで root
。 rootユーザーでログインできたらクラッカーはやりたい放題。2位以降もよく使いそうなパスワードと、ミドルウェアをインストールすると作られるアカウントがランクいんしている。
1位はpassword
。 2位以降も開発環境などで一時的に使いそうなパスワードがランキングしている。本番では絶対に設定してはいけないパスワードたち。
1位は、US
(アメリカ) ! 2位はCN
(中国)と続いた。
今後も統計を取っていくのでお楽しみに。
]]>今後の運用の参考にして欲しい。
]]>strace
を利用して原因調査をしたことがあったので、使い方をまとめる。
これから処理を実行するとき
strace 実行処理
strace perl hoge.pl
既に起動しているプロセスに対して実行するとき
strace -p [pid]
strace -p 111
オプション | 説明 |
---|---|
-p | 指定したプロセスにアタッチし、トレースする。 |
-f | 子プロセスについてもアタッチし、トレースする。 |
-T | システムコールに費やした時間を表示する。 |
-tt | それぞれの処理をマイクロ秒まで表示する。 |
ex1.)
1 | # /usr/bin/strace -fT -p 690 |
1 | # /usr/bin/strace -f -p 690 -tt |
strace
を利用して原因調査をしたことがあったので、使い方をまとめる。
これから処理を実行するとき
strace 実行処理
strace perl hoge.pl
既に起動しているプロセスに対して実行するとき
strace -p [pid]
strace -p 111
リアルタイムに盗聴出来ている。
使いところによっては便利。
]]>Let’s Encryptのソースをgitリポジトリからcloneしてくる。
1 | # cd /usr/local/ |
Let’s Encrypt の依存するパッケージを自動でインストールする。
1 | # cd letsencrypt |
証明書を作成するために、ドメインへのアクセスがあるのでアクセスできるようにしておく。
h2oのでのアクセスログは以下のようなログだった。
1 | 192.168.0.1 - - [10/Feb/2016:10:04:11 +0900] "GET /.well-known/acme-challenge/4cHoLYVoyqHvhKcW7zMz08ixIUfxT3cO5uQc6wx-cYk HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)" |
証明書発行のコマンドは以下。
1 | # ./letsencrypt-auto certonly \ |
なんらかの原因でアクセスできない場合は以下のようなエラーになる。
1 | # ./letsencrypt-auto certonly --webroot -w /var/www/html/example.com/ -d example.com -m hoge@example.com --agree-tos |
ちなみに今回は、firewallで弾かれていたので、80/443ポートを解放してあげた。
1 | # firewall-cmd --permanent --add-port 80/tcp |
再度実行で、証明書が作成された。
1 | # ./letsencrypt-auto certonly --webroot -w /var/www/html/example.com/ -d example.com -m hoge@example.com --agree-tos |
証明書の実態は/etc/letsencrypt/archive/[ドメイン]
配下にでき、 /etc/letsencrypt/live/[ドメイン]
がsymlinkとなっている。設定する際は、/etc/letsencrypt/live/[ドメイン]
を利用すると良い。
/etc/h2o/h2o.conf
にSSL証明書の設定をする。
1 | http2-casper: ON |
h2oがうまく起動しない場合、 systemctl status h2o.service
で確認する。以下は、keyファイル名を間違っていて起動できなかった時のログ(h2oのログには出なかった)。
1 | # systemctl status h2o.service |
該当箇所を修正後、無事にh2oが起動した。
1 | # systemctl status h2o.service |
firefoxで、httpsでアクセスしてみると、SSLにてアクセスできていることが確認出来た。
イナヅママークが青くなっていれば、http/2 でアクセスしている。
(※ firefoxのアドオン HTTP/2 and SPDY indicator をインストールする事で利用可能となる)
なお、アクセスログでも確認ができる。
1 | 192.168.0.1 - - [11/Feb/2016:12:40:14 +0900] "GET / HTTP/2" 200 493 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:40.0) Gecko/20100101 Firefox/40.0" |
SSL証明書は以下の通り。
Qualys SSL Report にてSSL評価チェック。
まずまずではないだろうか。
Let’s Encryptの証明書有効期間が90日と短いため、自動で更新されるように以下、登録する。
1 | 00 05 01 * * /usr/local/letsencrypt-auto certonly --webroot -w /var/www/html/example.com -d example.com -m hoge@example.com --renew-by-default && /bin/systemctl reload h2o |
また、コンパイルにはmakeが必要なので、 cmake
をインストールしておく。
1 | # yum install cmake |
そもそもh2oとは?と疑問になる方は作者のKazuhoさんの記事なぜ今、新しいHTTPサーバが必要なのかをご覧ください。
h2o-rpmをcloneする
1 | # git clone https://github.com/tatsushid/h2o-rpm.git |
rpmbuild をする。すると必要ファイルがデフォルトだとホームディレクトリに作成される。
1 | # cd h2o-rpm/rpmbuild/SPECS/ |
なお、rpmbuildコマンドがない場合は以下実行。
1 | # yum -y install rpm-build |
執筆時点で、h2oの最新安定版は1.7.0だが、specファイルを少し触りたいので一つ前のバージョンを使用する。
こちらのtarballファイルを/root/rpmbuil/SOUCES
配下に配置する。
1 | # wget https://github.com/h2o/h2o/archive/v1.6.3.tar.gz |
デフォルトだと、v1.7.0をビルドしようとするので、specファイルの
Version:
を 1.6.3
にする。
1 | # diff -ur h2o.spec_old h2o.spec |
h2o-rpm
の SOURCESにはあらかじめ必要なconfや起動ファイルがあるのでこれを丸ごと、先ほど作った /root/rpmbuild/SOURCES/
にコピーする。
1 | # ls -l ../SOURCES/ |
再度、rpmbuildをする。
1 | # rpmbuild -ba h2o.spec |
問題なければ、以下RPMファイルが作成できる。
1 | # ls -l /root/rpmbuild/RPMS/x86_64/ |
あとはrpmコマンドでアップデートするだけ。
1 | # rpm -Uvh /root/rpmbuild/RPMS/x86_64/h2o-1.6.3-1.el7.centos.x86_64.rpm |
すでに起動している場合は、 daemonのリロードが必要なので、以下コマンドを実行。
1 | # systemctl daemon-reload |
また、コンパイルにはmakeが必要なので、 cmake
をインストールしておく。
1 | # yum install cmake |
そもそもh2oとは?と疑問になる方は作者のKazuhoさんの記事なぜ今、新しいHTTPサーバが必要なのかをご覧ください。
]]>perl -M'モジュール名' -e 'print $モジュール名::VERSION'
実行例
1 | # perl -M'Test::More' -e 'print $Test::More::VERSION' |
perl -M'モジュール名' -e 'print $モジュール名::VERSION'
実行例
AWSのIAM Management Console にアクセスし、S3にアクセスするためのユーザーを作成するため、新規ユーザーの作成。
ユーザー名を入力して、作成する。
アクセスキーIDと、シークレットアクセスキーが表示されるので、メモしておく。(csvでダウンロードもできる) メモを忘れると、再度ユーザーを作り直したりする必要があるので、メモを忘れないようにする事。
IAMのトップページに戻り、作成したユーザーを選択する。
[アクセス許可] タブを選択し、[ポリシーのアタッチ] を選択する。
ポリシータイプで AmazonS3ReadOnlyAccess
を検索し、チェックを入れ、ポリシーを作成する。
以下の通り、設定が入っていればweb画面での操作はOK.
pythonが入っていれば、pip
コマンドでawscli
をインストールする。
1 | # pip install awscli |
awscli
が無事インストールされると、awsコマンドが使えるようになる。aws configure
でawsにアクセスするための初期設定をする。
先ほど、メモしたアクセスキーとシークレットアクセスキーを入力。
1 | # aws configure |
aws s3 ls s3://[bucket_name]
: S3の中身を閲覧し、アクセスできる事を確認する。
1 | # aws s3 ls s3://hogemoge |
aws s3 sync s3://[bucket_name] backup/
でS3にあるデータを全て取得できる。
1 | # aws s3 sync s3://[bucket_name] backup/ |
取得できた事を確認できれば、作業完了。
]]>商品到着後、パッケージにもダンボールで装飾(かわいい…)
そして、装着してみる…
ピカッ!!!!!
かわいすぎる!!!
]]>商品到着後、パッケージにもダンボールで装飾(かわいい…)
macでパスワードを作りたい場合、pwgen
を使う。
インストールは Homebrew
を導入していればbrew install
するだけ。
brew install pwgen
1 | # brew install pwgen |
pwgen
を実行するだけで、8桁のパスワードをたくさん出してくれるが、オプションを渡すことでさらに複雑なパスワードや逆に簡単なパスワードを生成することができる。
Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ]
OPTION | Content |
---|---|
-c –capitalize | パスワードに最低1文字は大文字を含める(デフォルト) |
-A –no-capitalize | パスワードに大文字を含めない |
-n –numerals | パスワードに最低1文字は数字を含める(デフォルト) |
-0 –no-numerals | パスワードに数字を含めない |
-y –symbols | パスワードに最低1文字は特殊文字を含める |
-s –secure | 完全にランダムなパスワードを生成する。 |
-B –ambiguous | パスワードに曖昧な文字は含めない(0とO等) |
-h –help | 使い方を表示する |
-H –sha1=path/to/file[#seed] | ランダムなパスワードをファイルのsha1ハッシュを使用する |
-C | 列にパスワードを表示する(デフォルト) |
-1 | 列にパスワードを表示しない(1行1パスワード) |
-v –no-vowels | 偶然の不快な言葉を避けるために母音を使用しない |
パスワードの文字数を指定する。
パスワードの生成数を指定する。
試しに使ってみよう。
1 | # pwgen -0 10 5 |
macでパスワードを作りたい場合、pwgen
を使う。
インストールは Homebrew
を導入していればbrew install
するだけ。
brew install pwgen
1 | # brew install pwgen |
まず事前に中身のあるファイルを用意する。
全て見知らぬコマンドを利用しているが今回はこの説明は割愛する。
1 | # seq -w 1 10 >sample1.txt |
主にファイルの内容を表示するために利用する。
1 | # cat sample1.txt |
先頭10行を表示する。-n number
のオプションを指定することで、指定行数表示する。
1 | # head -n5 sample1.txt |
末尾10行を表示する。-n number
のオプションを指定することで、指定行数表示する。
1 | # tail -n5 sample1.txt |
検索文字列に一致する行を検索して出力する。正規表現も利用可能。
例: sample1.txt
の中から1
という文字が入っている行を表示する。
1 | # grep 1 sample1.txt |
複数の処理の入出力をつなぐための仕組み。
例: sample1.txt
の中から先頭5行の中から1
という文字が入っている行を表示する。
1 | # head -n5 sample1.txt | grep 1 |
パイプを使うことでより絞り込んだ検索をすることができるようになる。
grepには大量にオプションがある。(詳細は man grep
で確認!)
その中でも特に便利なオプションを紹介しておく。
--color
検索文字列に色をつけて表示する。
-c
検索にマッチした行をカウントする。
-number
検索にマッチした前後number行を表示する。
-A number
検索にマッチした行からnumber行下を表示する。
-B number
検索にマッチした行からnumber行上を表示する。
-e
パターンマッチを指定して検索ができる。
例: sample1.txt
の中から1
または2
の文字を含む行を表示する。
1 | # grep -e 1 -e 2 sample1.txt |
-v
指定した文字列にマッチしない行を表示する。
-i
大文字小文字を区別しない。
なお、grep
はもっと機能があり、是非man
でチェックしてもらいたい。
また、パイプでつげて、grepを複数書くこともできる(少しぶかっこうではあるが)。
まずは、目的のものを思い通りに表示できる手法を身につけ、そこからスマートなやり方を考えると時間はかかるかもしれないが着実にものにすることができるだろう。
まず事前に中身のあるファイルを用意する。
全て見知らぬコマンドを利用しているが今回はこの説明は割愛する。
1 | # seq -w 1 10 >sample1.txt |
削除しようとしたのは、以下のファイル。削除した後しっかりファイルは作ってくれている。
1 | /var/run/utmp |
その後、作業履歴を削除して去っていった。
]]>以下の構成を用いる。
1 | ├── sample1.txt |
ディレクトリやファイルを見つけるコマンド。
例: depthfile1.txt
というファイルを探したい。
1 | # find . -name "depthfile1.txt" |
例: ファイルの一覧を出したい
1 | # find . -type f |
例: ディレクトリの一覧を出したい
1 | # find . -type d |
例: ファイルの一覧を出したい。ただし、sample1.txt
という文字が入っているファイルは除外する
1 | # find . ! -name "sample1.txt" -a -type f |
標準入力を読み込み、引数にして指定したコマンドを実行することができる。
例えば、最初に表示した構成で、ファイルを全て消したい場合、一つ一つrm
filename を渡して消せば消えるが、4回実行する必要があるが、findとxargsを組み合わせると1回でファイルを削除することができる。
1 | まずは確認 |
このように組み合わせることで出来ることが増える。
]]>以下の構成を用いる。
1 | ├── sample1.txt |
前回、現場で必須!超基本Linuxコマンド Vol.1の続き。
今回は、ファイルやディレクトリの操作と確認をしてみよう。
現場では変更が行われる処理の前後には必ず状態を確認する。なぜならば、思った通りに動作しているかを確認するためだ。これは必ず必要な作業なので押さえておこう。
「list segmentation」の略
ファイルやディレクトリの一覧を表示する。
1 | # ls |
ほとんどのコマンドには、オプションがあり、オプションを設定することで、こまやかな処理を実行する事ができるようになる。
例えば、ls
単体で実行すると先ほど結果を書いた通り、ファイルやディレクトリの一覧を出してくれる。今度は-l
オプションを渡して、みる。
1 | # ls -l |
すると、ファイルやディレクトリのより詳細な情報を表示してくれるようになった。
今度は、-t
オプションを付け加えてみよう。
1 | # ls -l -t |
-t
オプションはリストをタイムスタンプ順が最新のもの順に並び替えてくれる。また、オプションは複数渡すことが可能である。さらに、オプションは同時に記述することも可能である場合がある。
上記のls -l -t
は ls -lt
と同等である。
「make directory」の略で、ディレクトリを作成する。
例:
1 | # mkdir temp3 |
「move」の略でファイルやディレクトリの移動または名前を変更する。
例:
1 | # mv temp3 temp4 |
「copy」の略でファイルやディレクトリをコピーする。
例:
1 | # cp sample6.txt sample7.txt |
「remove」の略でファイルやディレクトリを削除する。
例:
1 | # rm sample7.txt |
ここまで足早に見てきたが、それぞれのコマンドにはもちろんオプションが用意されている。しかし、どのオプションが使えるの?と迷ったときに使うのがman
コマンドだ。
man ls
と実行すれば、ls
コマンドの説明ページが出てくる。
読み終わったら q
で終了することができる。
最後に総集編の動画をどうぞ。
]]>普段使われている、マウスでぽちぽちするGUI環境と違い、CUI環境はコマンドやスクリプトを全てキーボードで文字を入力して実行する。
コマンドをたくさん覚えると一つの画面でいろんなことができる。
ファイルを開いたり、特定の名前だけのファイルを削除したり、PCシャットダウンしたり。
はたまた、これまでやってた一連の作業をスクリプト化して実行すれば、これまで1時間かけてやってた処理は3分で終わるかもしれない。できることは無限大。
そのためにはまず少しづつコマンドを覚え、それぞれが出来ること覚える必要がある。
そこで、基本中の基本のコマンドを中心にご紹介していく。どんな優秀なエンジニアでも使うことが多いコマンドたちなので安心して覚えてもらいたい。
コマンドを習う前にいくつかの用語と階層構造を理解する必要がある。
ユーザが現在作業を行っているディレクトリの事 . 「ドット」で表す。
ディレクトリの1階層上のディレクトリの事。 .. 「ドットドット」で表す。
階層構造の頂点から、目的のフォルダやファイルまでを省略なしに記述したもの
カレントディレクトリから目的のフォルダやファイルまでを記述したもの
temp2
をカレントディレクトリとすると…
親ディレクトリは、 temp
sample6.txt
までを相対パスで書くと ./sample6.txt
sample6.txt
までを絶対パスで書くと /temp/temp2/sample6.txt
1 | /temp/ |
今回はカレントディレクトリの変更と、現在のカレントディレクトリを表示するコマンドをご紹介。
「Change Directory」の略で、カレントディレクトリを変更する。
「Print Working Directory」の略で、カレントディレクトリの絶対パスを表示する。
上記、二つを組み合わせて、移動して、カレントディレクトリの確認をしてみよう。
普段使われている、マウスでぽちぽちするGUI環境と違い、CUI環境はコマンドやスクリプトを全てキーボードで文字を入力して実行する。
コマンドをたくさん覚えると一つの画面でいろんなことができる。
ファイルを開いたり、特定の名前だけのファイルを削除したり、PCシャットダウンしたり。
はたまた、これまでやってた一連の作業をスクリプト化して実行すれば、これまで1時間かけてやってた処理は3分で終わるかもしれない。できることは無限大。
そのためにはまず少しづつコマンドを覚え、それぞれが出来ること覚える必要がある。
そこで、基本中の基本のコマンドを中心にご紹介していく。どんな優秀なエンジニアでも使うことが多いコマンドたちなので安心して覚えてもらいたい。
]]>2012年に購入した、MacbooAirが数ヶ月前から以下のような症状が出るようになった。
上記症状は、はじめは時々起こっていたが、頻度が多くなってきた。
クリーンインストールするも状況は変わらなかったので、何が原因かを調査するため、「Apple Hardware Test」を実施することに。
※ 2013年6月以降に発売されているmacbookの場合は、Apple Diagnostics。
作業手順は、以下の通り。
すると、以下のエラーが出た。
何度か実行しても同じエラーが出るため、Apple直営店へ。
しかし、Genius Barは既に1週間先まで予約がいっぱい。
※ 毎日0時7日後の予約が取れるという情報を店員さんに頂くも待っていられなかったので、「Apple製品修理 正規サービスプロバイダ」のビックカメラさんへ。
昼間はiphone修理の人が常時10名以上待っている状態で、1時間待ちは当たり前なので、開店と同時に受付を済ませた。
macbook担当の方は別にいて12時に来るとのこと。
12時に修理依頼を済ませ、しばしmacbookとお別れ。
1週間後、連絡があり基盤に不具合があり、特別保証により、ロジックボードを無償で交換しました。とのこと!
MacbookAirは無事に修理から戻ってきた。
後で気づいたが、修理代12万円だった。
]]>まずは、いつも通り動画をご覧いただこう。
root
ユーザーでログインし、パスワードを変更。
その後、/usr/bin/last*
を削除して逃げた。
何を削除しているのかチェック。するとログイン履歴を見るコマンドを削除しているようだ。
1 | $ ls -l /usr/bin/last* |
lastlog
コマンドはユーザーの最近ログインした履歴を見ることが出来るもの。
1 | # lastlog |
-u
オプションで指定したユーザーの直近のログインログを見ることが出来る。
1 | lastlog -u postfix |
-t days
daysをしていることで、指定したdays以内にログインしたユーザーの情報を得ることが出来る。
1 | $ lastlog -t 100 | more |
まずは、いつも通り動画をご覧いただこう。
]]>構成としてはこのような感じ。
今回は不正アクセスIPを利用し、地理情報を得て、どの国からのアクセスが多いのかをkibana4を使って出してみた。
geoipをインストールする。
1 | yum -y install geoip-devel |
地理情報のデータベースをアップデート
1 | /usr/bin/geoipupdate |
fluentdでgeoipを扱うプラグインをインストールする。
1 | /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-geoip |
td-agent.conf
でIPアドレスを元に国コードとロケーションを取得する。
1 | <match geo.replicator.**> |
デフォルトのままだと、全てstring扱いになり、地理情報として扱ってくれないので、いったんマッピングを削除
1 | curl -XDELETE localhost:9200/* |
独自に定義したjsonファイルを作成する。今回はこんな感じ。
1 | $ cat mapping.json |
マッピングする。
1 | curl -XPUT localhost:9200/cowrie --data-binary @mapping.json |
マッピングできているか確認
1 | curl -X GET -w - http://localhost:9200/_mapping?pritty | jq -C '.' |
td-agentを再起動。
1 | systemctl restart td-agent |
データ入っているか確認
1 | $ curl "http://localhost:9200/cowrie/search/_search?size=100&pretty" | tail |
kibana4を使ってデータを可視化する。
1 | wget https://download.elastic.co/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz |
1 | firewall-cmd --permanent --add-port 5601/tcp |
http://localhost:5601/ にアクセスするとこのような画面。
elasticsearchのマッピングでlocation
のtype
をgeo_point
にしているのでこのlocation
を用いて地図上にどの国からのアクセスが多いかを可視化した。
データを可視化すると見えないものが見えて来る。
是非、現場で活用してみてはいかがだろうか。
構成としてはこのような感じ。
今回は不正アクセスIPを利用し、地理情報を得て、どの国からのアクセスが多いのかをkibana4を使って出してみた。
]]>cowrieの不正侵入ログをelasticsearchにデータを入れる
すると、Masahiro Nakagawaさんから以下のようなコメントいただいた(ありがとうございます!!)
最新版のtd-agent 2を使っているのであれば,stdout filterが入っているので,今ではcopyとstdoutを組み合わせる必要はなくて,
type stdout で簡単にログに吐けるようになっています.今後はこちらもお試しください :)” — Masahiro Nakagawa
ref: http://disq.us/8o5gpu
そこで、td-agent.conf
を以下のように書き換えてみた。
修正前
1 | <match replicator.**> |
修正後
1 | <filter replicator.**> |
修正後は、td-agentを再起動し、問題なくElasticsearchにデータがinsertされるのを確認できた!
]]>cowrieの不正侵入ログをelasticsearchにデータを入れる
すると、Masahiro Nakagawaさんから以下のようなコメントいただいた(ありがとうございます!!)
最新版のtd-agent 2を使っているのであれば,stdout filterが入っているので,今ではcopyとstdoutを組み合わせる必要はなくて,
type stdout で簡単にログに吐けるようになっています.今後はこちらもお試しください :)” — Masahiro Nakagawa
ref: http://disq.us/8o5gpu
そこで、td-agent.conf
を以下のように書き換えてみた。
fluentdとは…ログを収集して様々な形式で格納できるソフトウェア
td-agent2とは…fluentdのラッパープログラム
elasticsearchとは…全文検索を提供するソフトウェア(サーチエンジン)
これらを入れることで次回ご紹介する解析に非常に有用になってくる。
Elasticsearchが動作するのに必要であるjavaをインストールする。
1 | yum -y install java |
GPG-KEYをインポートしたあと、yumのレポジトリの設定を行う。
1 | rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch |
1 | $ cat<<_HERE_>/etc/yum.repos.d/elasticsearch.repo |
Elasticsearchをインストール
1 | yum -y install elasticsearch |
Elasticsearchを起動する。
1 | systemctl start elasticsearch.service |
自動起動の設定をする。
1 | systemctl enable elasticsearch.service |
Elasticsearchにアクセスしてみて、以下のようなJSON形式の結果が返って来ればOK
1 | $ curl "http://localhost:9200" |
以上で、Elasticsearchの使用準備は出来た。
次にtd-agent2のインストール方法を紹介する。
1 | curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh |
起動
1 | systemctl start td-agent |
必要パッケージをインストールする。
1 | yum -y install ruby ruby-devel mariadb-devel |
fluent-plugin-mysql-replicator をインストール
1 | /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-mysql-replicator |
td-agent2のconfの設定をする。
1 | vim /etc/td-agent/td-agent.conf |
td-agentを再起動する。
1 | systemctl restart td-agent.service |
ログを確認するとinsertされる様子を見ることができる。
1 | $ tail /var/log/td-agent/td-agent.log |
Elasticsearchにcowrieのデータが入っているか確認するにはcurlを使って確認する。
1 | $ curl "http://localhost:9200/cowrie/search/_search?size=5&pretty" |
fluentdとは…ログを収集して様々な形式で格納できるソフトウェア
td-agent2とは…fluentdのラッパープログラム
elasticsearchとは…全文検索を提供するソフトウェア(サーチエンジン)
これらを入れることで次回ご紹介する解析に非常に有用になってくる。
]]>