時系列データベースのInfluxDBをインストールしました。
サーバのリソースを監視し異常の場合通知を来るようにしたかったのと、株価、暗号資産等も統計を取って分析もしたかったので、探したところinfluxDBとGrafanaを使うと実現できる事を知った。正直新しいDBを使う事に気が進まなかったが、他に良さそうなものが無く、今回使ってみた。
使ってみた感想はそれほど難しくない。先人方のサンプルがたくさんあったので、簡単に実現でました。
InfluxDBをインストール
まず公式を見たところ、RedHat系がサポートしない?とかで、上手くいかなかった。ver1.7をインストールしてみたが、Ver1.7はUIが無くCUIで操作する必要があるようで...最終的に2.7.10をインストールしました。
influxdbのキーをダウンロードした後に、リポジトリを追加しインストールを実行します。
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key'
cat <<EOF | sudo tee /etc/yum.repos.d/influxdata.repo
[influxdata]
name = InfluxData Repository - Stable
baseurl = https://repos.influxdata.com/stable/\$basearch/main
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdata-archive_compat.key
EOF
sudo yum install influxdb2 -y
systemctl start influxdb
systemctl enable influxdb
ブラウザーでアクセスしたいので一時的にポートを開放します。
firewall-cmd --add-port 8086/tcp
ポート閉じる場合
firewall-cmd --remove-port 8086/tcp
GUIでinfluxdbの初期設定を行います。
ユーザー名、パスワード、組織、bucket名を入力します。
組織とbucketは覚えやすく短い文字が楽でいいです。
APIは保管しておきましょう。
※CUIの場合はファイルをダウンロードする必要があります。
新しいAPIトークを作成します。 ここで名前を付けて、新しいトークを作成します。pythonでデータを入力する際にこのAPIを使用します。
Prometheusをダウンロードしサーバー情報を表示させます。 少し手間がかかり、grafanaだけでも連結できるのでしなくてもいいかも。
influxdbとpromethuesをつなげるためtelegrafをインストールします。
dnf install telegraf
Promethuesはtarファイルとなっているので、OSに合ったものをダウンロードします。
また、grafanaまたはinfluxdbに連結する場合はnode_exporterも必要になります。
公式からPromethuesをダウンロードします。
uname -m
x86_64
だったためamd64をダウンロードします。
Prometheusとnode_exporterをダウンロードし展開。
wget https://github.com/prometheus/prometheus/releases/download/v2.53.2/prometheus-2.53.2.linux-amd64.tar.gz
tar -axvf prometheus-2.53.2.linux-amd64.tar.gz
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar -axvf node_exporter-1.8.2.linux-amd64.tar.gz
telegrafとprometheus、node_exporterをダウンロードしたのでそれぞれ設定を変更していきます。
telegraf.confの2行をコメントアウトします。
[[inputs.prometheus]]
urls = ["http://localhost:9100/metrics"]
prometheus.ymlを修正し、node_exporterと連結させます。 node_exporterは9100で起動するので、9100を追加します。
- targets: ["localhost:9090"] #<--に
- targets: ["localhost:9090","localhost:9100"] #<--9100を追加
sourcesでprometheusを検索し新しく作成します。
設定が終わると以下のように接続トークが表示されます。
telegrafの起動方法も表示されています。
起動方法表示されているこの画面は閉じないでください
用意ができたのでprometheusを起動します。パス登録や、デーモン化設定をしていないため複数起動しテストします。
./prometheus --config.file=./prometheus.yml
./node_exporter
telegraf --config http://ipaddress/api/v2/telegrafs/ggggggggg
3つsshで接続して起動しているのでカオス
最後にTelegraf Configurationの画面でLISTEN FOR DATAをクリックすると接続テストが実行され、Connection Foundとなれば接続成功です。
influxdbの画面で指定のbukectを選ぶと色々な値が(_measurement)が表示され、データを選ぶとグラフが表示されます。
グラフ描写されない時よく期間の設定を間違えてしまっている
influxdbをredhat系にインストールできました。CPUリソース確認はPrometheusを使うのが良さそうでした。事細かな情報が取得できましたが、Prometheusだけを使うのであればGrafanaだけで実装できるのでinfluxdbを使う必要は無かった。統計データ等はpythonのライブラリーが充実しているのでデータ追加は基本的APIで実装する。
質問や、間違いがありましたら、お気軽にどうぞ
※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください