はじめに
graylogのインストール、およびセットアップ方法をメモしておきます。
環境
OS: Rocky Linux 8.6
Graylog: 5.0.11
インストール手順
以下のサイトの手順が分かりやすい。
ただ、上記手順はElasticsearchを使用してしまっているので、そこはopensearchを使用する公式手順を確認すべし。公式手順はファイルの編集場所が分かりにくいので、そこは↑の記事が分かりやすい。
設定
基本的な設定、私のやった設定を残しておきます。
ちなみにsyslogで飛ばしています。
Input
ログの入力待ち受けを設定します。
System > Inputs
Syslog UDP を設定
bind_address にgraylogの実IPを指定
※ SyslogのポートはLinuxの制限で使用しづらい場合があります。その場合は1024以降の別ポートを指定します。5140や1514, 2514などとするのが一般的。
設定後はloggerなどで受信できるか確認する
logger -p local0.error "test" --udp -n 192.168.0.100 -P 5140
Manage extractor
実サーバーからログを受信したら、ログを抽出します。
ログに記録される項目をDBのカラムに分割する作業と言い換えてもいいかも。
特にレスポンスタイムなどは取得したいはず。
System > Inputs > [作成したInputの右側] > Manage extractors
“]:” で分割して右側を”json”として定義するextractorの例:
こういったことを細々とやっていきます。検索やアラートに使うものだけでOK。
元々ログがJSONで出力される場合は楽になります。
サーバー側でfluentdなどを使ってJSON整形してから送っても良いかも。
Indicate
ログの保存期間を指定します。
System > Indices > Default index set > edit
Max documents per index: インデックスの中で何行保存するか
Max number of indices: 何インデックス保存するか
※ Max doc * Max number = 保存行数となります
日数ではなく、何行分(厳密には何リクエスト分)を保存するかを指定する方式のため注意。
ちょっとここは使いにくいかも。日本の法律では保存日数を指定する方式が多いため。
かなりストレージ容量は必要な傾向で、私の環境だと1GB/100万行は欲しいです。
1日500万アクセスほどのため2日で10GB埋まります。90日保存する場合は500GBくらい必要になります。計算するとtar.gzの100倍くらい容量が必要です。ディスク容量にご注意を。
Map
GeoIPで地図と紐づける機能。
少々ややこしいので、以下のページ参照
Dashboard
Dashboards > Create new dashboard
上部のタブからダッシュボードを作成します。Searchの画面は表示を固定できないため。
このように作りました。
左側のメニューから組み込みパターンがあるので、そこを弄れば作れます。
レスポンスタイムのDashboardの設定例:
その他
私は使いませんでしたが、環境によっては使いそうな機能へのリンクを記載します。
Stream:
※ 別々のシステムのログを分けて管理したい場合に使う(ログファイルを分けるようなものと理解)
アラートの設定例:
graylog / opensearchをクラスター化する例:
OpenSearchが結構重いので大規模なサイトの場合は必要だと思われる。
以上!
コメント