LoginSignup
0
0

More than 3 years have passed since last update.

389dsサーバの監視(SNMP)

Last updated at Posted at 2020-04-10

エージェント(監視される)側

net-snmpのインストールと設定

sudo -s

dnf install net-snmp net-snmp-utils -y

#全て見えるようにする("view ... .1"だけにする)
sed -ri '0,/^view/ s/^(view.+) \..*/\1 .1/;/^view.+ \.1\./d' /etc/snmp/snmpd.conf

systemctl restart snmpd

#確認
snmpwalk -v 2c localhost -c public

#ポートを開けておく
firewall-cmd --add-service=snmp --permanent
firewall-cmd --reload

389dsのSNMP対応

#AgentXプロトコル(?)を有効にする
echo 'master agentx' >> /etc/snmp/snmpd.conf
systemctl restart snmpd

#ldap-agentのインストール
yum install 389-ds-base-snmp -y
#インスタンスを指定
echo 'server slapd-localhost' >> /etc/dirsrv/config/ldap-agent.conf
#SELinuxが有効だと何故か動作しない
setenforce 0
#起動
systemctl start dirsrv-snmp

#確認
snmpwalk -v 2c localhost -c public .1.3.6.1.4.1.2312.6.1.1 -m /usr/share/dirsrv/mibs/redhat-directory.mib

RHDS-MIB::dsAnonymousBinds.389 = Counter64: 0
RHDS-MIB::dsUnAuthBinds.389 = Counter64: 0
RHDS-MIB::dsSimpleAuthBinds.389 = Counter64: 161
RHDS-MIB::dsStrongAuthBinds.389 = Counter64: 0
RHDS-MIB::dsBindSecurityErrors.389 = Counter64: 0
RHDS-MIB::dsInOps.389 = Counter64: 13938
RHDS-MIB::dsReadOps.389 = Counter64: 0
RHDS-MIB::dsCompareOps.389 = Counter64: 0
RHDS-MIB::dsAddEntryOps.389 = Counter64: 6753
RHDS-MIB::dsRemoveEntryOps.389 = Counter64: 6753
RHDS-MIB::dsModifyEntryOps.389 = Counter64: 99
RHDS-MIB::dsModifyRDNOps.389 = Counter64: 0
RHDS-MIB::dsListOps.389 = Counter64: 0
RHDS-MIB::dsSearchOps.389 = Counter64: 11
RHDS-MIB::dsOneLevelSearchOps.389 = Counter64: 0
RHDS-MIB::dsWholeSubtreeSearchOps.389 = Counter64: 11
RHDS-MIB::dsReferrals.389 = Counter64: 0
RHDS-MIB::dsChainings.389 = Counter64: 0
RHDS-MIB::dsSecurityErrors.389 = Counter64: 0
RHDS-MIB::dsErrors.389 = Counter64: 12241
RHDS-MIB::dsConnections.389 = Counter64: 0
RHDS-MIB::dsConnectionsInMaxThreads.389 = Counter64: 0
RHDS-MIB::dsMaxThreadsHits.389 = Counter64: 1

マネージャ(監視する)側

  • OS: CentOS7 (CenOS8のepelがおかしいので)
  • IPアドレス: 192.168.11.200

SNMP接続を確認

sudo -s

yum install net-snmp-utils -y
snmpwalk -v 2c 192.168.11.100 -c public

(zabbixのための)epelインストール

yum install epel-release -y
#grep enabled /etc/yum.repos.d/epel.repo

yum list "zabbix40*"

利用可能なパッケージ
zabbix40.x86_64                     4.0.17-1.el7     epel
zabbix40-agent.x86_64               4.0.17-1.el7     epel
zabbix40-dbfiles-mysql.noarch       4.0.17-1.el7     epel
zabbix40-dbfiles-pgsql.noarch       4.0.17-1.el7     epel
zabbix40-dbfiles-sqlite3.noarch     4.0.17-1.el7     epel
zabbix40-proxy.noarch               4.0.17-1.el7     epel
zabbix40-proxy-mysql.x86_64         4.0.17-1.el7     epel
zabbix40-proxy-pgsql.x86_64         4.0.17-1.el7     epel
zabbix40-proxy-sqlite3.x86_64       4.0.17-1.el7     epel
zabbix40-server.noarch              4.0.17-1.el7     epel
zabbix40-server-mysql.x86_64        4.0.17-1.el7     epel
zabbix40-server-pgsql.x86_64        4.0.17-1.el7     epel
zabbix40-web.noarch                 4.0.17-1.el7     epel
zabbix40-web-mysql.noarch           4.0.17-1.el7     epel
zabbix40-web-pgsql.noarch           4.0.17-1.el7     epel

zabbixインストール

yum install zabbix40-server-mysql zabbix40-web-mysql -y

#(警告を出さないための)タイムゾーンの設定
sed -ri 's|^.*(php_value +date.timezone).*|\1 Asia/Tokyo|' /etc/httpd/conf.d/zabbix.conf
systemctl restart httpd

#管理画面のためのポートを開ける
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

データベースの準備

#MySQLのインストール
yum install mariadb-server -y
systemctl start mariadb

#データベースの作成
mysql -uroot -e "create database zabbix charset utf8"
#上データベースの管理者の設定
mysql -uroot -e "delete from mysql.user where Host<>'localhost' or User<>'root'"
mysql -uroot -e "grant all on zabbix.* to zabbix"
mysql -uroot -e "flush privileges"

#初期データを投入
mysql -uzabbix zabbix < /usr/share/zabbix-mysql/schema.sql
mysql -uzabbix zabbix < /usr/share/zabbix-mysql/images.sql
mysql -uzabbix zabbix < /usr/share/zabbix-mysql/data.sql

環境設定

  • セットアップ
    • http://192.168.11.200/zabbix
    • "Next step"(5回)
    • "Finish"
  • ログイン
    • Username: admin
    • Password: zabbix
    • "Sign in"
  • 日本語
    • ヘッダ右端の人アイコン
    • Language: Japanese
    • "Update"

zabbixサーバーを起動

setenforce 0
systemctl restart zabbix-server

ホストの追加

  • 設定 > ホスト > ホストの作成
    • ホスト名: CentOS8 389ds
    • グループ: Linux servers
    • エージェントのインターフェース (使わないけど必須なので)
      • IPアドレス: 192.168.11.100
      • ポート: 10050
    • SNMPインターフェース
      • IPアドレス: 192.168.11.100
      • ポート: 161
  • "テンプレート"タブ (とりあえずそれっぽい監視項目を設定してみる)
    • 新規テンプレートをリンク > 選択
    • 「Template OS Linux SNMPv2」と「Template App Ldap Service」を選択 > 追加
  • "マクロ"タブ ("Template OS Linux SNMPv2"用)
    • マクロ: {$SNMP_COMMUNITY}
    • 値: public
  • どこかのタブの"追加"ボタン

389ds用の監視

監視項目のリストを作る

#389ds用のMIBファイルをコピー
scp hoge@192.168.11.100:/usr/share/dirsrv/mibs/redhat-directory.mib .

#MIB→OIDの対応表
snmptranslate -Tz -m ./redhat-directory.mib | grep -F '1.3.6.1.4.1.2312.6.1.1.' | sed 's/"//g;s/$/.389/' > items

Zabbix API で設定

#JSONパーサをインストール
yum install jq -y

#curlのエイリアスを設定
alias curl='curl -sS -XPOST -H Content-Type:application/json-rpc http://localhost/zabbix/api_jsonrpc.php'

#ログイン
auth=$(curl -d '{"jsonrpc":"2.0", "id":1, "method":"user.login", "params":{"user":"admin","password":"zabbix"}}' | jq -r ".result")

#テンプレートのグループID
group=$(curl -d '{"jsonrpc":"2.0", "id":1, "auth":"'$auth'", "method":"hostgroup.get", "params":{"filter":{"name":"Templates"}}}' | jq -r ".result[0].groupid")

#新しく作ったホストID
host=$(curl -d '{"jsonrpc":"2.0", "id":1, "auth":"'$auth'", "method":"host.get", "params":{"filter":{"name":"CentOS8 389ds"}}}' | jq -r ".result[0].hostid")

#テンプレートを作成
tmpl=$(curl -d '{"jsonrpc":"2.0", "id":1, "auth":"'$auth'", "method":"template.create", "params":{"host":"389ds SNMP", "groups":[{"groupid":'$group'}], "hosts":[{"hostid":'$host'}]}}' | jq -r ".result.templateids[0]")

#各監視項目を追加
cat items | while read mib oid; do
 curl -d '{"jsonrpc":"2.0", "id":1, "auth":"'$auth'", "method":"item.create", "params":{"hostid":'$tmpl', "name":"'$mib'", "key_":"'$mib'", "type":4, "value_type":3, "delay":30, "snmp_community":"public", "snmp_oid":"'$oid'"}}' | jq
done

unalias curl
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0