目次
はじめに
こんにちは、ここのところ観葉植物に目覚め、公私ともにGreen(Monitoring OK的な)に囲まれた生活を送っております。
Green大好きエンジニアの森屋でございます!
最近、はてな社が提供するサーバ監視サービス『Mackerel』を頻繁に触っているので、そこで遭遇した課題と解消法について、いくつか投稿していきます。
今回は第一弾として、MackerelでCentOS5を監視するには?という課題を解決しましょう。
CentOS5の対応状況
ユーザー権限が新しくなりました・いくつかのOSサポート終了のお知らせ ほか - Mackerel ブログ #mackerelio
こちらの記事にもありますが、コミュニティのサポートも切れて久しいCentOS5は、2017年5月にMackerelの公式としてサポート外となりました。
CentOS / RedHat にインストールする - Mackerel ヘルプ
こちらにはCentOS/RHELのインストール手順がありますが、OS5系について触れられていません。
しかし監視対象にCentOS5の機器が含まれていたため、解消に踏み切った経緯です。
試行錯誤
試行したこと
検索結果には適当なものが見あたらなかったため、自力での解消を試みました。
全ての顛末を書くと長くなるので、主にやったことと結果だけ書きます。
- CentOS6の手順をそのまま実行
mackerel.ioがTLS1.2しか通らないため、公式のcurlコマンドでは不可。インストールスクリプトを別のとこからコピペして実行。
→パッケージがOSに合わず、あえなく失敗 - バイナリファイルでインストール
バイナリファイルで直接mackerel-agentをインストールする - Mackerel ヘルプ
→成功。 - サポートしていた頃の古いパッケージをインストール
→成功。
試行錯誤の末、二つの答え
- バイナリファイルでインストール
起動スクリプトの準備が必要。また、CentOS5での稼働実績に不安。 - サポートしていた頃の古いパッケージをインストール
バージョンが著しく古いため、取りたい監視が取れない不安。
二通りの解消法を導き出しました。
どちらも一長一短なので、どちらも記録しておくことにします。
ちなみに今回は古いパッケージの方を選びました。
解消法
解消法その① バイナリファイルでインストール
以下の手順で、起動までできると思います。ちょこちょこTLS1.2を喋れない問題にぶち当たりますね…。
○正道で試してみると…
curl -O https://mackerel.io/file/agent/tgz/mackerel-agent-latest.tar.gz
→TLS1.2の問題でエラーが発生し、ダウンロードに失敗
特別な処置をしているCentOS5では成功すると思われるが、通常はエラーとなる
ダウンロードはあきらめ、SCP等で転送しましょう
scp mackerel-agent-latest.tar.gz root@192.168.1.123:/usr/local/src/
○解凍
cd /usr/local/src/
tar zxvf mackerel-agent-latest.tar.gz
---------------------------------------------
mackerel-agent/
mackerel-agent/mackerel-agent.conf
mackerel-agent/LICENSE
mackerel-agent/CREDITS
mackerel-agent/mackerel-agent
---------------------------------------------
chown -R root. mackerel-agent
cd /tmp/mackerel-agent/
mkdir /etc/mackerel-agent/
mv mackerel-agent /etc/mackerel-agent/
mv mackerel-agent.conf /etc/mackerel-agent/
cd /etc/mackerel-agent/
./mackerel-agent init -apikey="{ご自身の環境のAPI Key}"
cat /etc/mackerel/mackerel-agent.conf
---------------------------------------------
apikey = "{ご自身の環境のAPI Key}"
…(デフォの設定がズラー)
---------------------------------------------
○起動してみる
cd /etc/mackerel-agent/
./mackerel-agent --conf=./mackerel-agent.conf
Hostsに新しく登録されることを確認
○プラグインを入れる
vi /etc/yum.repos.d/mackerel.repo
---------------------------------------------
[mackerel]
name=mackerel-agent
baseurl=http://yum.mackerel.io/centos/$basearch
gpgcheck=1
---------------------------------------------
yum install mackerel-agent-plugins
→こっちは成功
yum install mackerel-check-plugins
→こっちは成功
あとは起動スクリプトを書くなり、バックグラウンドで走らせるなどして、レッツマカレルライフ!
解消法その② サポートしていた頃の古いパッケージをインストール
どちらも試そうとしている人は、まずその①で登録されてしまったホストを退役させましょう。
rm /var/lib/mackerel-agent/id
→ホストのID情報を削除するのもお忘れずに
先の記事によると2017/5/12にはサポート終了とのことなので、直前のバージョンをgithubから探し当てました。
Release v0.43.0 ・ mackerelio/mackerel-agent ・ GitHub
CentOS5には、「mackerel-agent-0.43.0-1.x86_64.rpm」が適用できそうですね。
○別機器でパッケージをダウンロードし、アップロード
wget https://github.com/mackerelio/mackerel-agent/releases/download/v0.43.0/mackerel-agent-0.43.0-1.x86_64.rpm
wget https://github.com/mackerelio/mackerel-agent-plugins/releases/download/v0.27.1/mackerel-agent-plugins-0.27.1-1.x86_64.rpm
wget https://github.com/mackerelio/go-check-plugins/releases/download/v0.10.1/mackerel-check-plugins-0.10.1-1.x86_64.rpm
scp mackerel-*.rpm root@192.168.1.123:/usr/local/src/
○パッケージを使ってインストール
cd /usr/local/src/
chown root. mackerel-*
rpm -ivh mackerel-agent-0.43.0-1.x86_64.rpm
------------------------------------------------------------------------------
準備中... ########################################### [100%]
1:mackerel-agent ########################################### [100%]
------------------------------------------------------------------------------
rpm -ivh mackerel-agent-plugins-0.27.1-1.x86_64.rpm
------------------------------------------------------------------------------
準備中... ########################################### [100%]
1:mackerel-agent-plugins ########################################### [100%]
------------------------------------------------------------------------------
rpm -ivh mackerel-check-plugins-0.10.1-1.x86_64.rpm
------------------------------------------------------------------------------
準備中... ########################################### [100%]
1:mackerel-check-plugins ########################################### [100%]
------------------------------------------------------------------------------
cd /etc/mackerel-agent/
mackerel-agent init -apikey="{ご自身の環境のAPI Key}"
vi mackerel-agent.conf
------------------------------------------------------------------------------------------------
・追記
apibase = "https://api.mackerelio.com/"
※https://mackerel.io/ja/blog/entry/weekly/20171006
上記問題に対処するための行
------------------------------------------------------------------------------------------------
/etc/init.d/mackerel-agent start
Hostsに新しく登録されることを確認
新たな問題
実はこの対応を行った当時(2020/8月)には、ここまでの手順でデータが取れていました。
しかし、つい最近の9月23日頃、CentOS5系機器からMackerelへのデータが途絶えました。
api.mackerelio.com の証明書更新作業を実施します - Mackerel ブログ #mackerelio
原因はこちらの記事にある、SSL証明書の更新によるものと考えられます。
元々、mackerel-agent→mackerelio.comの通信が何で大丈夫なのかなあと気になってはいたのですが…。
こちらの解消法については、次の記事で取り扱います。
一緒に書いてもよかったのですが、こちらの問題単体で困っている方がいらっしゃるかもしれないので…。
【Mackerel】監視対象ホストからMackerelにデータが届かない時!
おわりに
あくまでCentOS5の監視はサポート外です。
今回ご紹介した解消法は、すべて自己責任で実施するようお願いします。
執筆時点(2020/10/10)、そろそろCentOS6のコミュニティのサポートが切れも近いので、同じようにアーカイブを辿ることで解消できるかもしれませんね。
そんな、タイムリーなのか今更すぎる話なのか なテーマでした。
お読みくださり、ありがとうございました。
ではまた!
テクニカルサポートとして、日々お客様の悩み事解決を支援しております。
スーパーエンジニアになるべく、日々、自宅でのウェイトトレーニングに励んでいます。
LINK
クラウドベリージャム:プロフィールページ