1. ログインユーザー数を取得する

1
2
3
4
5
6
7
[root@web02 ~]#w
 17:44:18 up  1:17,  2 users,  load average: 0.01, 0.02, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    11.0.1.1         16:31   11:46   0.07s  0.07s -bash
root     pts/1    11.0.1.52        17:07    2.00s  0.04s  0.00s w
[root@web02 ~]#w|awk 'NR==1{print $4}'
2

2. Zabbix の監視項目として定義する

1
2
3
4
5
6
7
[root@web02 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf 
UserParameter=login_number,w|awk 'NR==1{print $4}'
# zabbix_agentd -p で項目の文法チェックができます
[root@web02 ~]#zabbix_agentd -p|grep login_number
login_number                                  [t|2]
# クライアントを再起動
[root@web02 ~]# systemctl restart zabbix-agent.service

3. Zabbix サーバー側で収集・監視する

サーバーからコマンドラインで、監視項目を通じてユーザー定義の値が取得できるかテストします。

1
2
3
4
# zabbix-get コマンドをインストール
[root@zabbix ~]# yum -y install zabbix-get
[root@zabbix ~]#zabbix_get -s 172.16.1.8 -k login_number
2

Web ページで監視項目を追加する

監視項目を確認する

4. TCP 22 ポートの生存を監視する

監視したい情報に合わせてキー値を選択します。

TCP ポートが LISTEN 状態かどうかを確認します。戻り値: 0 - 待ち受けなし; 1 - 待ち受け中。

web02 の sshd サービスを停止する

1
[root@web02 ~]# systemctl stop sshd

5. 表示用のカスタム値マッピングを設定する

値マッピングを適用する

6. サーバーメモリ使用率のカスタム監視

手順 1: カスタム項目を定義し、空き率を取得する

1
2
3
4
5
6
[root@web02 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf
UserParameter=login_number,w|awk 'NR==1{print $4}'
UserParameter=mem_free,free|awk 'NR==2{print $NF/$2*100}'
[root@web02 ~]# systemctl restart zabbix-agent.service 
[root@web02 ~]#zabbix_agentd -p|grep mem_free
mem_free                                      [t|79.8753]

手順 2: サーバー側でキー値の取得をテストし、監視項目を追加する

1
2
[root@zabbix ~]#zabbix_get -s 172.16.1.8 -k mem_free
79.9775

7. 空きメモリにトリガーを設定する

空きメモリ率が 20% を下回った場合にアラートを発報します。

テスト: swap パーティションを無効にする

1
[root@web02 ~]# swapoff  -a

dd でストレステストを実行しメモリを消費する

1
[root@web02 ~]# dd if=/dev/zero of=/dev/null bs=1200M count=2048

8. 複数条件トリガーを設定する

両方の条件が同時に満たされた場合にのみアラートを発報します。

swap 空き率を追加する

1
2
3
4
[root@web02 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf
UserParameter=login_number,w|awk 'NR==1{print $4}'
UserParameter=mem_free,free|awk 'NR==2{print $NF/$2*100}'
UserParameter=swap_free,free -m|awk 'NR==3{print $3/$2*100}'

トリガー設定を変更する

その後、再度 dd ストレステストを実行して結果を確認します。