あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

自宅にZabbixを導入してみた

じつはわたし、だいぶ前に会社の指令か何かでZabbix認定スペシャリスト(http://www.zabbix.com/jp/training_specialist.php)というのを取得したのですが、3日間眠眠打破を飲んで勉強しても日常的に使わなければ忘れるものです。あかんやつや。

でも「Zabbix認定スペシャリストなんでしょ」と言わんばかりに方方から突然に質問が飛んでくるわけで、それに対処するには日常的に使えばいいわけです。自宅にはWebサーバーやら自宅内DHCPDNSサーバーやらが乗ったESXiサーバーがいたり、Raspberry Piで部屋の室温を取ってエアコンのリモコンページで表示とかしていたりするわけで、それこそZabbixで見れば面白そうなものは多いわけです。

で、いよいよやる気が出たので導入しましたというお話。

Zabbix Server

Ubuntu 14.04.1 LTSの仮想マシンをESXiにサクッと立てて、オフィシャルのリポジトリからZabbix2.4系のパッケージをインストール。

3 Installation from packages [Zabbix Documentation 2.4]

$ apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent language-pack-ja fonts-vlgothic

インストール後は/etc/php5/apache2/php.iniのdate.timezoneをAsia/Tokyoに設定してApacheを再起動してからzabbixにアクセス。

フロントエンドの言語はprofileで変更。あと、グラフが文字化けするのは以下のページを参考に修正。

Zabbixでグラフのフォントを変更する方法(Ubuntu 14.04TLS) - tech.softagency.net

$ sudo update-alternatives --install /usr/share/zabbix/fonts/graphfont.ttf zabbix-frontend-font /usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf 20
$ 

監視したいサーバー

オフィシャルのリポジトリを追加の上、zabbix-agentをインストール。zabbix_agentd.confを設定してファイアウォールを設定して終わり。

のはずが、CentOS6のマシンでsystem-config-firewall-tuiが動かなくなっていて焦るなど。dbusdbus-pythonが無くてエラーになっていたのでそれぞれyumで突っ込んでreboot。環境作った時は動いてたはずなんだけど何があったのやら。

また、Raspberry Piはオフィシャルリポジトリがないので標準ではいる1.8系を使用。しかし、エージェントが有効にならず。なんでだろう?(互換性はあるはず)

ESXi

ここを参考にESXiを追加。自動的に全部の仮想マシンが出てくるようになる。手動で先に作成していて名前が同じ場合はおまとめされました。逆に、名前が違うと別のものとして追加されるので、その場合はディスカバリされたものを消して、名前を揃えておけばそのうちまた追加される、はず。

おえかきWindows: Zabbix2.2 VMWare ESXi監視

部屋の室温監視

いまのところ監視したいサーバーはデフォルトの監視しかしてないのでそのうちどうにかするつもりですが、一つだけデフォルトではできないものとして、Raspberry Piで取得できる部屋の室温をZabbixで見られるようにしてみます。以下のページを参考にしました。

これから始めるZabbix Sender(2) Raspberry Pi の温度データを送るには? | Pocketstudio.jp log3

USB Temper懐かしいですね。最近は1Wireの温度センサーであるDS18B20ばっかりなので、これに対応したバージョンを作ります。t=25000みたいな小数点抜きのデータで来るので、いい感じに小数点をつけてからzabbix_senderで送ってやります。これをcrontabでぐるぐる回してやればOK。他の設定は参考URLと同じです。

#!/bin/bash
TEMP=`cat /sys/bus/w1/devices/28-000003b72160/w1_slave`
TEMP=`echo $TEMP | awk '{print substr($0, index($0, "t=") + 2)}'`
TEMP=`echo $TEMP | sed -e 's/\(.\{2\}\)\(.\{3\}\)/\1.\2/'`
echo "- room_temp $TEMP" | zabbix_sender -z <ZabbixサーバーのIP> -s <Raspberry Piのホスト名> -i - > /dev/null

そうして、Zabbixで記録された値をグラフ表示するとこうなります。ガクっと線が下がっているところは換気をしていました。あと、他に持っている温度計2つと比べると、実際の室温よりも2度ほど値が高いようです。ここは人間が適宜読み替えましょうかね。

f:id:Akkiesoft:20150118005800j:plain:w450

満足した

じゃないや、個のあとは各サーバーごとに色々監視項目を足したりしてみようかなと思っています。マイクラサーバーの監視とかもやろうと思えばできるっぽいので。