- 投稿日:2020-10-23T22:10:53+09:00
Linux版Zoomでフォントサイズもウィンドウサイズも大きいので小さくした
きっかけ
いつの日からかデフォルトフォントが大きいなーと思っていたのですが、会話する分にも発表スライドを閲覧する分にも困っていなかったので、そのまま使っていました。
先日、オンラインカンファレンスに参加した時にログインアンケート(入室直後にポップアップでアンケートが表示されるアレ)があって困りました。フォントが大きいのでウィンドウがデスクトップ内に収まらず、回答を送信するボタンがデスクトップ欄外に位置してしまって押せないからです。フォントサイズを小さくする方法がないかと探していた結果、見つかったのでメモとしてここに残します。同じ悩みの方に良き情報になれば幸いです。
変更点
~/.config/zoomus.conf ファイルを下のように変更して、Zoomアプリを再起動しました。
-autoScale=true +autoScale=falseその他の情報
私の環境では適さなかったですが、情報として記載があったのでココに記載します。
私の環境では変化が無かったのですが、参考文献[2]ではscaleFactorを1から2に変更することが書かれています。
また、参考文献[1]に下のように環境変数を指定することも書かれていました。私の環境では崩れてしまったので、実施していません。
$ export QT_SCALE_FACTOR=0.50 $ zoomResources
Version
- ver: 5.3.472687.1012 (debian, 64)
参考文献
- 投稿日:2020-10-23T15:48:52+09:00
Ubuntu 16.04でコマンドのショートカットを作る
sshのログインなどいちいち長いコマンドを打つのは面倒なので、ショートカットでコマンドを起動できたら楽だなーと思って調べた。
エイリアスという手もあるがいちいち登録するのがめんどくさいし結局コマンドを打たなくてはいけない。他のディストリビューションでも使えるかどうかはわからないが、Ubuntuであれば多分使える。
環境
- Ubuntu 16.04.7 LTS
手順
- ディレクトリ上で空のファイルを作成。名前は任意で拡張子は
.desktop
。
- 作ったファイルにgeditなりvimなりを使って以下の内容を記述。
Nameにはわかりやすい名前を、Execには実行したいコマンドを記述する。[Desktop Entry] Name=ssh_connect_raspberrypi Exec=ssh pi@192.168.11.25 Terminal=true Type=Application
- ファイルに実行権限をもたせる。右クリックでプロパティ>アクセス権からチェックボックを選択。
- すると実行ファイルになるのでダブルクリックすると指定したコマンドを実行したターミナルが起動する。
備考
ちなみに記述した内容は実は端末のショートカットのプロパティのここなので、こちらを編集しても作成可能。
- 投稿日:2020-10-23T15:38:08+09:00
行から目的の文字列を抜き出したいときの方法 コマンド4選
Python クローリング&スクレイピング―データ収集・解析のための実践開発ガイド-
https://www.amazon.co.jp/dp/B01NGWKE0P/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1という書籍の
1.4.1電子書籍の総数を取得する
という章から学習した内容grepで抜き出したhtmlコードから文字列のみを正規表現で抜き出すという操作
方法は4つ紹介されており1. sedコマンドで正規表現にマッチした箇所を抜き出す 2. sedコマンドでマッチした箇所を取り除き、残った場所を取り除く 3. cutコマンドを使って特定の文字で区切られた文字列からn番目を抜き出す 4. awkコマンドを使ってスペースで桁揃えされた文字列からn番目を抜き出すそもそものコマンドを知らない。。。のですが、前のページにsed,cutの説明はありました。
sed (Stream EDitorの略)
使用タイミング: 特定の条件にマッチする行を置換、削除できる
使用方法: 's/検索する正規表現/置換する文字列/オプション'【使用例】
# .をスペースに置き換えて出力することができる /gは1行に検索する正規表現が複数回出現しても全部置き換えるということと同じ XX | sed 's/./ /g'cut
使用タイミング: 特定の文字で区切られたテキストの一部の列を抜き出すときに使う
【使用例】# ,で区切った1列目と2列目のみを出力する。-dで区切り文字、-fで列の番号を指定。 XX | cut -d , -f 1,2本題の1~4の方法で抜き出す処理について一つずつ見ていきたいと思います。
1. sedコマンドで正規表現にマッチした箇所を抜き出す
使用方法: sed -E 's/.*(抜き出したい箇所にマッチする正規表現)./\1/'
解読:
. は任意の1文字にマッチする
* は直前のパターンを0回以上繰り返す
() は()で囲まれたパターンをグループ化する 例: (hello)は hello-world や world-helloにマッチする
\1 は全体を抜き出したい正規表現に置き換える(キャプチャ)する【使用例】
echo hello_world | sed -E 's/.\*(hello.).*/\1' # 出力結果 hello2. sedコマンドでマッチした箇所を取り除き、残った場所を取り除く
解読:
[ ]内の^ は否定を表す
* は直前のパターンを0回以上繰り返す
→ < XXXXX > のようなパターンを空白にする = <>で囲んでいる場所を削除【使用例】
echo'<li class="pagingnumber">130/2098</li>' | sed -E 's/<[^>]*>//g'3. cutコマンドを使って特定の文字で区切られた文字列からn番目を抜き出す
使用タイミング: csvから文字列を抜き出す時
解読:
'-d , -f 2' は 区切り文字, 区切られた文字列から2番目の項目echo '1,野球,阪神' | cut -d , -f 2 # 出力結果 野球4. awkコマンドを使ってスペースで桁揃えされた文字列からn番目を抜き出す
スペースで桁ぞろえされていて、区切り文字が連続するときに使える。
(cutは区切り文字が連続するときには向いてない)
{print $n} という文字列を与えるとn番目の文字列を抜き出すことができる。echo 'A B C D E' | awk '{print $4}' # 出力結果 D
- 投稿日:2020-10-23T13:58:16+09:00
フルヒトの自作ArchLinux備忘録 #1 インストール
Self-Introduction
初カキコ…ども…
俺みたいな中1でエロ見てる腐れ野郎、他に、いますかっていねーか、はは
今日のクラスの会話
あの流行りの曲かっこいい とか あの服ほしい とか
ま、それが普通ですわなかたやワイは0と1の海で死体を見て、呟くんすわ
it’a true wolrd.狂ってる?それ、誉め言葉ね。好きな音楽ジャンル 東方
尊敬する人間 博麗霊夢なんつってる間に4時っすよ(笑) あ~あ、義務教育の辛いとこね、これ
What is ArchLinux?
ども・・・まぁArchLinuxはDebianやRHELとかと独立してる完全オリジナルのLinuxですね。
コンソールで適当にインストールしなきゃいけないのがクソなところです。How to install
まず起動しましょう。起動しなきゃ意味がないです。
Enter押すか待ちましょう。
こうなったらインストール画面です(白目)
キーボードレイアウトの指定
日本語ですね!!!
キーボードレイアウトの設定loadkeys jp106多分これでおk
システムクロックの設定
多分ntpオンにします。
2036年大変なことになりそう()システムクロックの設定timedatectl set-ntp true
パーティションのホォーマット
これ個人差があるんですけどVirtualBoxでやってるのでただのsdaですね
パーティションのフォーマットmkfs.ext4 /dev/sdaそしてファイルシステムのマウント
こちらもsda
パーティションのフォーマットmount /dev/sda /mntいよいよインストールします!
ここまではただ単にArchLinuxのインストールガイドをパクってきただけです。
別のやつもパクりましょう!(おい)カーネルなどのインストールpacstrap /mnt base base-devel linux linux-firmware grub dosfstools efibootmgr netctl iw wpa_supplicant networkmanager dialog xfsprogs vim dhcpcdbaseやbase-develといったArch基本パッケージ、LinuxやLinux-firmwareのLinux基本カーネル。grubというブートローダー、Linux御用達のvim、あとは無線・有線LANのアプリケーションですね。
fstabの設定
ようわからんけど書いてあるので
fstabの生成genfstab -U /mnt >> /mnt/etc/fstab作業するところのrootを変更
debianとかだと
chroot
とかで片付けられると思うんですかこれarch-chroot
らしいですねchrootするarch-chroot /mnt /bin/bashTimeZoneの変更
いつものAsia/Tokyoですね。
TimeZoneの変更ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime時計のズレを調整hwclock --systohc --utcこのあとdateコマンドなどで調整されたか見てみましょう
Localization
日本語とか英語とかのやつですね
英語は必須です。生成
Localizationlocale-gen設定
pacstrapでインストしたvimとかで使用言語をコメントアウトします
/etc/locale.gen#en_SG ISO-8859-1 en_US.UTF-8 UTF-8 #en_US ISO-8859-1 ... ... #ja_JP.EUC-JP EUC-JP ja_JP.UTF-8 UTF-8 #ka_GE.UTF-8 UTF-8こっちは言語設定とかじゃないですかね
/etc/locale.confLANG=en_US.UTF-8ホストの設定
名前を入力しましょう!
/etc/hostnameFurcht968/etc/hosts127.0.0.1 localhost ::1 localhost 127.0.1.1 Furcht968.localdomain Furcht968Initramfsでなんかする
暗号化的なのみたいです
Initramfsmkinitcpio -p linux
パスワードの変更
そのまんま
パスワードの変更passwdブートローダーインストール
ここは王道のGRUBですかね・・・・
pacstrapの時点でインストールされてるかと思います。grubのインストールgrub-install --target=i386-pc /dev/sda --force grub-mkconfig -o /boot/grub/grub.cfg再起動
うん。そうですね。言わなくてもわかるかと思います
再起動exit #chrootの終了 Ctrl-Dでも可能 shutdown -h nowインストール後についての設定
Part2書くのでそこに行ってもらえばと思います。
- 投稿日:2020-10-23T12:36:10+09:00
何度も蘇るプロセスを永遠に殺し続ける.sh
正直もっといい方法が絶対にあると思います。
が、備忘録として残します時間を無駄にしたくない人のための要約
- やったこと: PIDを取得して無限ループで永遠にkillする
やりたいこと
killしてもkillしても蘇る特定のプロセスをkillし続けたい。
プロセスはバックグラウンドで定期的に起動するもよう。
環境: macOS Catalinaまずはプロセス名を調べる
Applications > Utilitiesからアクティビティモニターを開いて、プロセス名を調べます。
やってみる
内容の整理
プロセス名がわかったところで、やりたいことを整理します。
やりたいのは
- killしてもすぐ蘇る特定のプロセスをkillし続ける
ということです。
ですので処理としては
- ps aux | grep ProcessName でプロセスが実行されているか確認し、実行されていればkillする
というもので大丈夫そうです。それではスクリプトを書いていきます
実装
#!/bin/bash while true; do # ProcessNameには殺したいプロセスの名前を入れてください TARGETPID=`ps aux | grep ProcessName | grep -v grep | awk '{print $2}'` if [ -n "$TARGETPID" ]; then `kill -9 ${TARGETPID}` fi sleep 5 done見ての通りただの無限ループです。(何となく5秒間隔にしてみた)
- ps aux | grep ProcessName でプロセスを確認
- grep -v grep で自分自身の結果は除外
- awk '{print $2}' でPIDのみ抽出
- ↑の結果を一旦変数に格納、空じゃなければkillする
ということをしています。
5秒おきにしてますが、1秒おきとかインターバルおかないとかでも、これぐらいの処理なら別にいいと思いますOperation Not Permitted
killしようとするとこのメッセージが表示される場合がありました。
そんな場合は一旦sudoでkillを試せばいいかもしれません。(sudo kill or sudo kill -9)#PIDには殺したいプロセスのIDを入れてください sudo kill PID #もしくは sudo kill -9 PIDそれでも無理ならmacのrootユーザーでログインしなおして、そのユーザーで実行すればkillできるのかも......(確認してないので何とも言えない)
- 投稿日:2020-10-23T11:47:06+09:00
libusbを参照する共有ライブラリでビルドエラーが出た話
ことの起こり
ubuntuでlibusbを使うプログラムを作成中
$ gcc -c testUsb.c $ gcc testUsb.o testUsb -lusb普通はこんな感じでビルドできると思うんですが、
これを実行ファイルではなく共有ライブラリ(.so)にしようと思ったらビルドエラーが出るのですね。$ gcc -c testUsb.c $ gcc -shared -fPIC testUsb.o -o libTestUsb.so -lusb /usr/bin/ld: testUsb.o: relocation R_X86_64_PC32 against symbol `devInfo' can not be used when making a shared object。 -fPIC を付けて再コンパイルしてください。 /usr/bin/ld: 最終リンクに失敗しました: bad value collect2: error: ld returned 1 exit statusなんですかこれ。初めて見ました。
調べてみる
エラーの内容としては「libusb が -fPIC つけてビルドされてないんで、この文脈では使えませんよ。使いたいなら libusb を -fPIC つけてビルドしなおしてください」って意味かな。
いやいや、こんなことで libusb ビルドしなおしとかそりゃないでしょう。
え? これで解決?
色々試してみたのだけど、ことごとく失敗だったので(libusb の再ビルドはしない方向で、、)あまりここで細かく書く必要はないと思うのだけど、最終的に解決したのは以下のようにビルド。
$ gcc -shared -fPIC testUsb.c -o libTestUsb.so -lusb.o ファイルを作らないで、.c ファイルから直接コンパイル&リンク。
これでエラーが起きずにちゃんと動作する .so ファイルができたのだけど、.o ファイルを生成する場合と何が違うんだっけ。。普段なんとなくやっちゃってることを正しく理解できてないなぁ、、
今度はこれでなぜうまくいくのかを調べないと。
- 投稿日:2020-10-23T10:41:14+09:00
デバッグ実行時にsudoを付ける方法
- 投稿日:2020-10-23T10:14:37+09:00
データベース自動起動設定 linux
CentOs 7
自動起動確認
systemctl is-enabled mariadb
systemctl is-enabled httpd自動起動有効化
systemctl enabled mariadb
systemctl enabled httpd
- 投稿日:2020-10-23T09:31:56+09:00
Raspberry Pi 4 Model B で USB ブート(3) LVM 編
「Raspberry Pi 4 Model B で USB ブート(2) パーティション作成編」では USB マスストレージに基本パーティションを作成し、ext4 でフォーマットをして Raspberry Pi OS をそのままコピーした。
ところで、よくある x86 用の Linux ディストリビューションではインストール時に LVM を選択できる。Raspberry Pi 4 でも LVM を利用することは可能だ。
root パーティションで LVM を使うこともできる。ただし起動には initramfs を使う必要がある。なお、前回までは(特に明記はしていなかったけれど)USB マスストレージへのインストールを PC で行っていたが、この方法だと initramfs を作成できないため、今回は microSD にインストールした Raspberry Pi OS から作業する。
これに伴い対象となるデバイスが/dev/sdb
からdev/sda
になるので注意。LVM 作成
パーティションを作成するところは前回と同じ。
$ sudo gdisk -l /dev/sda GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. : Number Start (sector) End (sector) Size Code Name 1 2048 526335 256.0 MiB 0700 2 526336 5860533134 2.7 TiB 83002 つめのパーティションに LVM を作成する。
名前はpi-vg
とするが、他の名前にしてもいい。# LVM 物理ボリュームを作成 $ sudo pvcreate /dev/sda2 # ボリュームグループ pi-vg を作成 $ sudo vgcreate pi-vg /dev/sda2 # 論理ボリュームを作成 # 今回使用した USB マスストレージの容量は 3TB。 # swap に 8GB 割り当てることを想定し、/ の容量は総容量から逆算している $ sudo lvcreate --size 2786G --name root pi-vg $ sudo lvcreate -l 100%FREE --name swap pi-vg # 現時点のHDDの状態を確認 $ lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 2.7T 0 disk ├─sda1 8:1 0 256M 0 part └─sda2 8:2 0 2.7T 0 part ├─pi--vg-root 254:0 0 2.7T 0 lvm └─pi--vg-swap 254:1 0 8.3G 0 lvm使用した USB マスストレージは HDD であり、データーの書き込みによるデバイスの劣化を心配する必要はないため、swap パーティションを作成した。
swap のサイズを決めるにあたっては以下の情報を参考にし、メモリとほぼ同じ容量を確保した。作成した boot, root, swap をフォーマットする。
$ sudo mkfs -t vfat /dev/sda1 $ sudo mkfs -t ext4 /dev/pi-vg/root $ sudo mkswap /dev/pi-vg/swapシステムファイルのコピー
- microSD にインストールイメージをコピーしておく
- 起動した Raspberry Pi OS 上でインストールイメージをダウンロードする
などをすれば前回までと同じ方法でコピーができるが、ここではこの手間を省き、起動に使用した microSD からコピーをすることにする。
$ mkdir /tmp/root $ sudo mount /dev/pi-vg/root /tmp/root/ # 実ファイルシステムではない devtmpfs, sysfs, proc, tmpfs, boot と # ext4 フォーマット時に作成される lost+found 以外のディレクトリをコピー $ cd / $ sudo cp -a bin etc home lib media mnt opt root sbin srv tmp usr var /tmp/root/ $ cd /tmp/root/ $ sudo mkdir dev sys proc run boot tmp # 後述の initramfs を作成するために、boot パーティションは /tmp/root 以下にマウントする $ sudo mount /dev/sda1 /tmp/root/boot/ $ sudo cp -a /boot/* /tmp/root/boot/起動設定の変更
cmdline.txt
、fstab
を更新する。
パーティション情報だけでなく、initramfs に関するオプションも指定する。# root= に /dev/pi-vg/root を指定 # initramfs を使用するために initrd=0x01f00000 を追加する # 起動に失敗する場合は quiet を削除すると、起動中のメッセージが画面に表示されるので原因を特定しやすくなる # デバッグには break オプションも有用。詳しくは initramfs-tools(7) を参照 $ cat /tmp/root/boot/cmdline.txt console=serial0,115200 console=tty1 root=/dev/pi-vg/root initrd=0x01f00000 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles # 前回までと同じく、boot パーティションの PARTUUID を blkid コマンドで調べ指定 # SSD の場合はデバイスの劣化を防ぐために、/dev/pi-vg/root の defaults には "defaults,noatime" を指定する $ cat /tmp/root/etc/fstab proc /proc proc defaults 0 0 PARTUUID=09468d30-111e-4028-8f37-16f65e497c25 /boot vfat defaults 0 2 /dev/pi-vg/root / ext4 defaults 0 1 /dev/pi-vg/swap none swap sw 0 0initramfs
boot パーティションに
initrd.gz
を作成し、起動時にこれを使うようにする。# /tmp/root 以下でコマンドを実行できるよう、各種ディレクトリを /tmp/root 以下にマウント $ sudo mount --bind /sys /tmp/root/sys $ sudo mount --bind /proc /tmp/root/proc $ sudo mount --bind /dev /tmp/root/dev # /tmp/root/boot に initrd.gz を作成 $ sudo chroot /tmp/root/ apt install lvm2 $ sudo chroot /tmp/root/ mkinitramfs -o /boot/initrd.gz # boot/config.txt に "initramfs initrd.img followkernel" を追加 $ cat /tmp/root/boot/config.txt : initramfs initrd.gz 0x01f00000冒頭で、PC で作業をすると initramfs を作成できない旨を書いたが、それはここでの
apt install lvm2
がうまく行かないため。
lvm2 パッケージのインストール後に initramfs を作成する処理が走るが、このときに正しいカーネルのバージョンが取得できないのが原因と思われる(詳細は追っていないので要確認)。## 後始末 $ sudo umount /tmp/root/sys /tmp/root/proc /tmp/root/dev $ sudo umount /tmp/root/boot $ sudo umount /tmp/rootこれでインストールは完了。
Raspberry Pi OS をシャットダウンし、microSD を抜き取ってから電源を入れれば USB マスストレージから起動できる。おまけ
手順が多くなってきたので、インストーラーを作ってみた。
https://github.com/nowlinuxing/rpi4-installer
- 投稿日:2020-10-23T02:29:42+09:00
Zabbixで死活監視
はじめに
Zabbix4.4で死活監視の設定・動作確認をする手順について説明する。
ここではZabbixでの細かい設定については省略している。環境
- ホストOS:Windows10
- ゲストOS:CentOS7 × 2台
- 監視用サーバ :ホスト名 zabbix(IPアドレス:192.168.33.10)
- 監視対象サーバ:ホスト名 webserver(IPアドレス:192.168.33.20)
- 仮想マシン構築方法:VirtualBox, Vagrant
手順(概要)
- Zabbixで監視対象のホストを追加する
- Zabbixで監視対象のホストにテンプレートを適用する
- Zabbixで障害発生時の通知先メールアドレスを設定する
- 動作確認(Zabbix管理画面、メール通知)
手順(詳細)
1. Zabbixで監視対象のホストを追加する
Zabbixのホストとは監視する対象を示す。
Zabbixでは、ホストは少なくとも1つのホストグループに属す必要があるためグループを作成しホストを所属させる。Zabbixの[設定]→[ホスト]から、監視対象サーバ webserver(192.168.33.20) を追加する。
2. Zabbixで監視対象のホストにテンプレートを適用する
「テンプレート」とは、監視に必要な条件やルールなどをまとめて定義したものである。
Zabbixには標準でいくつものテンプレートが用意されている。もちろん個々にカスタマイズしたテンプレートを作成することも可能。今回は、標準で用意されている死活監視に最適なテンプレート「Template Module ICMP Ping」をwebserberに適用する。
3. Zabbixで障害発生時の通知先メールアドレスを設定する
[管理]→[メディアタイプ]から通知したいメールアドレスを設定する。
今回はGmailを設定した。
※Gmailを設定する場合は、Gmail側で「信頼性の低いアプリ」からのアクセスを有効にしないとメール通知がされません。セキュリティ上、動作確認が済んだら元に戻すことを推奨する。[設定]→[アクション]で、メール通知する場合の実行条件を設定する。
今回は、「トリガーの深刻度」が「重度の障害」以上の場合にメール通知がされるように設定した。
4. 動作確認(Zabbix管理画面、メール通知)
Zabbix側の設定が完了したら、わざとwebserverをシャットダウンして障害発生の状況を作る。
つまり、監視サーバzabbixから監視対象サーバwebserverへの疎通ができない(ping応答がない)状態である。Zabbixで障害が発生していることを確認
[監視データ]→[障害]を確認してみる。
ステータスが「障害」になっており、メール通知のアクションが正常に動作していることが確認できた。
Gmailに障害発生メールが通知されることを確認
Gmailを確認してみると、ちゃんと障害発生メールが届いていることを確認できた。
まとめ
以下のことを自分でやってみると、ITインフラの構築・運用のイメージがつかめて勉強になる。
仮想マシンの構築 → 監視サーバの構築・監視設定 → 障害発生の動作確認以上
- 投稿日:2020-10-23T02:29:42+09:00
監視サーバZabbixでLinux(CentOS7)の死活監視(Ping)をやってみた
はじめに
Zabbix4.4で死活監視の設定・動作確認をする手順について説明する。
ここではZabbixでの細かい設定については省略している。環境
- ホストOS:Windows10
- ゲストOS:CentOS7 × 2台
- 監視用サーバ :ホスト名 zabbix(IPアドレス:192.168.33.10)
- 監視対象サーバ:ホスト名 webserver(IPアドレス:192.168.33.20)
- 仮想マシン構築方法:VirtualBox, Vagrant
手順(概要)
- Zabbixで監視対象のホストを追加する
- Zabbixで監視対象のホストにテンプレートを適用する
- Zabbixで障害発生時の通知先メールアドレスを設定する
- 動作確認(Zabbix管理画面、メール通知)
手順(詳細)
1. Zabbixで監視対象のホストを追加する
Zabbixのホストとは監視する対象を示す。
Zabbixでは、ホストは少なくとも1つのホストグループに属す必要があるためグループを作成しホストを所属させる。Zabbixの[設定]→[ホスト]から、監視対象サーバ webserver(192.168.33.20) を追加する。
2. Zabbixで監視対象のホストにテンプレートを適用する
「テンプレート」とは、監視に必要な条件やルールなどをまとめて定義したものである。
Zabbixには標準でいくつものテンプレートが用意されている。もちろん個々にカスタマイズしたテンプレートを作成することも可能。今回は、標準で用意されている死活監視に最適なテンプレート「Template Module ICMP Ping」をwebserverに適用する。
3. Zabbixで障害発生時の通知先メールアドレスを設定する
[管理]→[メディアタイプ]から通知したいメールアドレスを設定する。
今回はGmailを設定した。
※Gmailを設定する場合は、Gmail側で「信頼性の低いアプリ」からのアクセスを有効にしないとメール通知がされない。セキュリティ上、動作確認が済んだら元に戻すことを推奨する。[設定]→[アクション]で、メール通知する場合の実行条件を設定する。
今回は、「トリガーの深刻度」が「重度の障害」以上の場合にメール通知がされるように設定した。
4. 動作確認(Zabbix管理画面、メール通知)
Zabbix側の設定が完了したら、わざとwebserverをシャットダウンして障害発生の状況を作る。
つまり、監視サーバzabbixから監視対象サーバwebserverへの疎通ができない(ping応答がない)状態である。Zabbixで障害が発生していることを確認
[監視データ]→[障害]を確認してみる。
ステータスが「障害」になっており、メール通知のアクションが正常に動作していることが確認できた。
Gmailに障害発生メールが通知されることを確認
Gmailを確認してみると、ちゃんと障害発生メールが届いていることを確認できた。
まとめ
以下のことを自分でやってみると、ITインフラの構築・運用のイメージがつかめて勉強になる。
仮想マシンの構築 → 監視サーバの構築・監視設定 → 障害発生の動作確認以上