Ubuntu Server 20.04 LTS and Zabbix 6.2 over L2TPv3

最低限

出来ればいいな

こんなもんじゃないか?

条件

  • グローバルIPはだいたい動的IP

  • 複数の拠点、複数のNWがある

  • 拠点に端末を置くなら小型で安価に

  • 監視設定は遠隔で

試作

  • Ubuntu Server 20.04

  • Zabbix Server 6.2, Zabbix-Proxy

  • SoftEtherVPN Server / SoftEtherVPN Client (別記事)

Ubuntu Server 20.04とZabbix Server 6.2を使ってサックリと作る

sudo -s
apt update
sudo -s
apt upgrade
adduser zabbix
wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-2%2Bubuntu20.04_all.deb
dpkg -i zabbix-release_6.2-2+ubuntu20.04_all.deb
apt update
apt install mysql-server
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripsts zabbix-agent

Zabbix公式サイトには zabbix ユーザーを追加するのと mysql-server を入れる手順が入ってないので忘れずに。

さらにLinux環境そのものも日本語環境にしておく。 こうすることでZabbixも日本語を選べるようになる。

apt -y install language-pack-ja-base language-pack-ja ibus-kkc
localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
timedatectl set-timezone Asia/Tokyo

MySQLの設定(は割愛)

グラフ文字化け対策

apt install fonts-ipafont-gothic
ln -s /usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf /usr/share/zabbix/assets/fonts/ipagp.ttf
ls -l /usr/share/zabbix/assets/fonts
vi /usr/share/zabbix/include/defines.inc.php

ごにょごにょする(あとで書く)

Zabbix Serverにログイン後はAdminユーザのパスワードを速攻で変えること Zabbix Proxyも基本同じ感覚で(いちいち日本語対応せんでもいいけど)

で、ここまでやって課題が見えた。

  • AWSなどパブリックなところに置いたZabbixは誰でも入れちゃう

  • mysqlも公開状態じゃね?怖くね?

  • AWSなら公開するのをHTTPだけにするとか出来るか。

  • Zabbix Proxyとの通信をどう担保するか

  • 相手は動的IPだぞ

SoftEtherVPNで解決!ってのは後日書きます。

社内SEだった頃のハナシ No.1

IT業界以外の、つまり異業種での社内SEは時として神扱いを受ける。社内SEといってもここではとある情シス部門。

朝一発、いきなり内線が鳴って「PCが起動しない」という。
こんな話は簡単だ。
ぶっ壊れたか、線が抜けてるだけである。
迅速に駆けつけてあげれば簡単に信用度は増す。Excelの使い方がわかんねーとか、ぐぐって対応したらだいたいOKだ。

さて、某ホテル勤務だった頃の話。
巨大掲示板(ハッキリ書くと2ch)に自社の専用スレが立っていた。中身は伏字になってないレベルで特定個人の名前が散見する始末(特に社長や会長、経営陣、ホテルなので支配人とかの管理職の名も)。ホテル名でぐぐればそのスレにすぐ辿り着く始末なので、お客様の立場であっても容易にホテルの裏側が荒れ狂っているのは手に取るようにわかる。高級ホテルならなおさら良くない。

そんな時…
近隣のホテルで有名人の宿泊したあとの部屋の清掃に入ったスタッフがTwitterでやらかした(即座にそのスタッフは行方不明になる)。すぐに話題のツイートとして私の目にも留まった。翌朝のブリーフィングで取り上げ(その時点ではニュースにまだなってない)、そのことが暗にインターネットのあらゆるところを監視してるのだよ?とでも伝わったのか、以来2chへの書き込みも一気に減る事となる(そしてスレはdat落ちへ)。

実際には2chに書き込んだ人間を特定する暇もスキルもあるわけではないが、そう思わせておくだけでも違ってくるのかもしれない。

並行して過去ログサイトに削除依頼を出したりして事態は収束に向かうこととなった。

古いThinkPadのBIOS更新方法

Readmeを読めば普通にBIOSをupdateするくらいは誰でも出来る。
BIOS更新したい人なんて相応のスキルくらい持ってるもんだからこの際無視する)

しかしうちのThinkPad X22はバッテリーが南無ってる。
結論から言えば、

flash2.exe /u

これはダメだった。
「バッテリー電圧低すぎ」って言われちゃうし、外したら「ねえよ」って言われるし。
いちいちチェックしてんじゃねえですよ。
まぁ、DOSとか3.1全盛期の頃からチェックしてたけどさ。
わざわざUSBのフロッピードライブ発掘してきたっていうのに無駄手間でした。


eFlash版のほうでWindowsコマンドプロンプトから

1duj18jp.exe -s -a -s

って叩くと、Windowsがシャットダウンされて、
それっぽいメッセージが出てきたと思ったら終わってた。
IBM ThinkPadのロゴが出てきたので、F1でBIOS画面に入ると、
アップデート終わってた。


なんじゃそりゃな感じ。
まぁいいんですが。ということでメモでした。


※もちろんリスキーな行為なので覚悟のある人しかやっちゃダメですよー

とりあえずNagios 3.5.1の日本語化は済んだ。

ももーい鯖覚書にて配布されているパッチで。
# 別に英語でいいじゃんとかぶつぶつ言いながら。


何を監視したいのか俺もまだ知らされてないので知らんけど、
お客さんはWindows Serverしかないのは知ってる。
誰もLinux使えないので俺に白羽の矢が立ったわけだ。
# 道内じゃLinux使えるエンジニアなんて知れてるからなー。


さて、既に稼働中の監視対象にnrpeなるものを入れていいか考えると、それを逐一説明するのはめんどくさい。
何かあったら俺が対応するハメになりかねないので極力避けたい。監視目的でトラブっちゃ元も子もない。


そこは一般的なSNMPでよくね?って思ったわけだ。
# どっかの某庁の鯖もSNMPを使えるようにした気がするし。


Linux上で動作するNagiosを使って、監視対象のWindowsSNMP使ってどこまで出来るのか知らんけどと思って調べてみたら、
・check_snmp_storage
ディスク使用率("Physical Memory"と指定すると物理メモリも取れる)
・check_snmp_load CPU使用率
・check_snmp_win サービスの動作有無

この基本的なところは押えられるらしい。当たり前だがPING応答の有無も見ることが出来る。
試しに上記3つ全て試したところだいたいいい感じに取れた。

問題はイベントログなのだが、これを監視するにはやはりnrpeが必要なのか。
これ入れるんなら、無理してsnmpで監視する意味ねえんだよなーと思っちゃうんだけども。

まぁ、使える手段は多いほうがいいか。
監視の頻度・種類と台数によっては無用なトラフィックがバンバン流れることになってあまり好かんのだが。


check_snmp_load.pl / check_snmp_storage.plを使う上でのメモ
(Net::SNMP->VERSION < 4) {
→ (Net::SNMP->VERSION lt 4) {
って書き換えておかないとバージョンチェックが吐き出されるのでまともに監視させてくれなくなる。

UbuntuにNagiosを入れたまではいいものの、

顧客からNagiosのI/Fを日本語化してくれとの依頼を受け、
packageで入れられないじゃん!と。


有志による日本語化がなされているのは、Nagios 4.0.0およびNagios 3.5.1まで。(英語でいいなら4.0.1もあるのだが)
Nagiosの管理が私じゃなくても使えるように、Linuxを使いこなせない者でも使えるようにと、
NagiosQLをも用意する必要がある。だとするなら、対応してるのは Nagios 3.x系列までとなる。


他OSでは情報も豊富なのだが、debianUbuntuでは情報が不足ということでメモ。



Ubuntu Server 13.04をベースにして。


Nagiosを適当にインスコすると、/usr/local/nagiosインスコされる。
packageでなら /etc/nagios だったりするのだが…、
前途の通り日本語化するため適当にインスコせねばならない。


UbuntuでApache2をapt-getでインスコすると、
ユーザー/グループは www-data となる。
また、Document Rootも /var/www となる。


NagiosQLのインストールにはPHPタイムゾーンを設定する必要がある。
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
このあたりを Asia/Tokyo とでも記述しておく必要がある。


使い方は後日。
こちらもまた日本語文献が少なすぎて手探りする必要がありそうだから。

多くのblog記事にもあるように、
Xperia Tablet Zをroot化するのは、
Xperia Z(スマホ)と同様の手順で出来ます。いまのところ。


あえてその方法についての詳細はここには書きませんが、
root化して得られるメリットといえば、
・シャッター音
・フォーカス完了音
スクリーンショット作成音
上記の無効化が出来るようになります。


シャッター音など、どこのディレクトリにあるかの備忘録です。
(悪用厳禁!!)


・シャッター音(カメラ関連)
/system/media/audio/camera/sound1


・フォーカス音
/system/media/audio/camera/common/af_success.m4a


スクリーンショット
/system/media/audio/ui/camera_click.ogg


/system を書き換え可能な状態でマウントして、
これらのディレクトリやファイル名をごにょごにょして再起動するだけ。
シャッター音だけは言及している記事も多いけど、
とりあえずXperia Tablet Zで困るところはこんな感じかと。


Xperia Z/Xperia Tablet Z共通だと思うけど、
Android 4.1の共通の対処方法でもありそうだね。




それにしても、物理キーボードがあるだけでコマンド操作が捗るわー