過去にZabbixによるログ監視を試してみた時の手順メモ。
出来ればZabbixを仕事等で使ってみたいので、思い出すのも兼ねて。
Zabbix3系出ているので、情報としてはかなり古いが、基本は同じではないかな?(自己暗示)
その後、作成した監視テンプレートに監視対象ホストをリンクします。
出来ればZabbixを仕事等で使ってみたいので、思い出すのも兼ねて。
Zabbix3系出ているので、情報としてはかなり古いが、基本は同じではないかな?(自己暗示)
検証した環境
- Zabbix Server側のOSはRHEL6.5
- Zabbix Agent側のOSはRHEL6.5
- Zabbix Serverのバージョンは1.8.22
- Zabbix Agentのバージョンは1.8.20
- MySQLのバージョンは5.1.73
- モジュールはEPELからインストール
Zabbix ServerとMySQLのインストール
インストールは普通にマニュアルどおり。# yum install mysql-server # yum --enablerepo=epel install zabbix-server zabbix-server-mysql # yum --enablerepo=epel install zabbix-web-mysql
Zabbix用DBの作成
CREATE~FLUSHまではmysql上で実行します。# mysql -u root -p CREATE USER zabbix; CREATE DATABASE zabbix character set utf8; GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix'; FLUSH PRIVILEGES; # mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-1.8.15/create/schema/mysql.sql # mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-1.8.15/create/data/data.sql # mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-1.8.15/create/data/images_mysql.sql
/etc/zabbix/zabbix_server.confの設定
DB接続情報(DBName、DBUser、DBPassword)を設定します。### Option: DBName # Database name. # For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored. # # Mandatory: yes # Default: # DBName= DBName=zabbix ### Option: DBSchema # Schema name. Used for IBM DB2. # # Mandatory: no # Default: # DBSchema= ### Option: DBUser # Database user. Ignored for SQLite. # # Mandatory: no # Default: # DBUser= DBUser=zabbix ### Option: DBPassword # Database password. Ignored for SQLite. # Comment this line if no password is used. # # Mandatory: no # Default: # DBPassword= DBPassword=zabbix
Zabbix Agentのインストール
# yum --enablerepo=epel install zabbix-agent
/etc/zabbix/zabbix_agentd.confの設定
自ホスト名とZabbix Serverを指定する。### Option: Server # List of comma delimited IP addresses (or hostnames) of Zabbix servers. # No spaces allowed. If ServerActive is not specified, the first entry is used # for receiving list of and sending active checks. # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally. # # Mandatory: yes # Default: # Server= Server=(Zabbix Serverホスト名) ### Option: ServerActive # Comma-separated list of host:port pairs of Zabbix servers for active checks. # If ServerActive is specified, first host in the Server option is not used for active checks, only for passive checks. # If the port is not specified, ServerPort port is used for that host. If ServerPort is not specified, default port is used. # IPv6 addresses must be enclosed in square brackets if port for that host is specified. # If port is not specified, square brackets for IPv6 addresses are optional. # Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1] # # Mandatory: no # Default: # ServerActive= ServerActive=(Zabbix Serverホスト名) ### Option: Hostname # Unique, case sensitive hostname. # Required for active checks and must match hostname as configured on the server. # Value is acquired from HostnameItem if undefined. # # Mandatory: no # Default: # Hostname= Hostname=(自ホスト名)
Zabbix Server、Zabbix Agentの起動
それぞれのホストでデーモンを起動します。# service zabbix-server start # service zabbix-agent start
監視テンプレートを作成して、監視対象のサーバに設定します。
以下のようにアイテム(監視対象のログファイルを決める)とトリガー(監視対象のメッセージを決める)を設定します。その後、作成した監視テンプレートに監視対象ホストをリンクします。
監視対象のログファイルをZabbix Agentが読み取りできるように権限設定します。
検証用だったので、適当にzabbixユーザーにrootグループを追加しました。# usermod -G root zabbix # groups zabbixloggerコマンドで監視対象のメッセージを出力させ、Zabbix Serverで検知できるか試してみましょう。