Zabbixの設定
しばらく放置してましたが、久々にZabbixをいじる時間が出来たので、前回の続きの設定をします。
インストール
ひとまず、zabbix インストールメモ にあるようにインストールがおこなわれていて、Zabbixのページにアクセスできることが前提です。バージョンは1.6.4みたいです。
日本語化
右上の[profile]リンクから言語を変更できます。
設定ファイルの編集
設定しなければならない主な設定は
- zabbix_agent.conf 監視対象のサーバ
- zabbix_agentd.conf 監視対象のサーバ
- zabbix_server.conf 監視サーバ
- dbconfig.php 監視サーバ
以下、順に。
すべての監視対象の /etc/zabbix/zabbix_agent.conf を編集します。
# This is config file for zabbix_agent # To get more information about ZABBIX, # go http://www.zabbix.com # IP address of ZABBIX server # Connections from other hosts will be denied #Server=localhost <= オリジナル Server=192.168.10.100 # <= ZabbixサーバのIPアドレスを設定。 # Spend no more than Timeout seconds on processing # Must be between 1 and 30 Timeout=3 ####### USER-DEFINED MONITORED PARAMETERS ####### # Format: UserParameter=<key>,<shell command> # Note that shell command must not return empty string or EOL only #UserParameter=system.test,who|wc -l ### Set of parameter for monitoring MySQL server (v3.23.42 and later) ### Change -u<username> and add -p<password> if required #UserParameter=mysql.ping,mysqladmin -uroot ping|grep alive|wc -l #UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T" #UserParameter=mysql.threads,mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q" #UserParameter=mysql.questions,mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S" #UserParameter=mysql.slowqueries,mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O" #UserParameter=mysql.qps,mysqladmin -uroot status|cut -f9 -d":" #UserParameter=mysql.version,mysql -V
すべての監視対象の /etc/zabbix/zabbix_agentd.conf を編集します。
$ more zabbix_agentd.conf # This is config file for zabbix_agentd # To get more information about ZABBIX, go http://www.zabbix.com ############ GENERAL PARAMETERS ################# # List of comma delimited IP addresses (or hostnames) of ZABBIX servers. # No spaces allowed. First entry is used for sending active checks. # Note that hostnames must resolve hostname->IP address and # IP address->hostname. #Server=localhost <= オリジナル Server=192.168.10.100 # <= ZabbixサーバのIPアドレスを設定。 # Server port for sending active checks #ServerPort=10051 # Unique hostname. Required for active checks. Hostname=localhost # Listen port. Default is 10050 #ListenPort=10050 # IP address to bind agent # If missing, bind to all available IPs #ListenIP=127.0.0.1 # Number of pre-forked instances of zabbix_agentd. # Default value is 5 # This parameter must be between 1 and 16 StartAgents=5 # How often refresh list of active checks. 2 minutes by default. #RefreshActiveChecks=120 # Disable active checks. The agent will work in passive mode listening server. #DisableActive=1 # Enable remote commands for ZABBIX agent. By default remote commands disabled. #EnableRemoteCommands=1 # Specifies debug level # 0 - debug is not created # 1 - critical information # 2 - error information # 3 - warnings # 4 - information (default) # 5 - for debugging (produces lots of information) DebugLevel=3 # Name of PID file PidFile=/var/run/zabbix-agent/zabbix_agentd.pid # Name of log file. # If not set, syslog will be used LogFile=/var/log/zabbix-agent/zabbix_agentd.log # Maximum size of log file in MB. Set to 0 to disable automatic log rotation. #LogFileSize=1 # Spend no more than Timeout seconds on processing # Must be between 1 and 30 Timeout=3 ####### USER-DEFINED MONITORED PARAMETERS ####### # Format: UserParameter=<key>,<shell command> # Note that shell command must not return empty string or EOL only #UserParameter=system.test,who|wc -l ### Set of parameter for monitoring MySQL server (v3.23.42 and later) ### Change -u<username> and add -p<password> if required #UserParameter=mysql.ping,mysqladmin -uroot ping|grep alive|wc -l #UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T" #UserParameter=mysql.threads,mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q" #UserParameter=mysql.questions,mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S" #UserParameter=mysql.slowqueries,mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O" #UserParameter=mysql.qps,mysqladmin -uroot status|cut -f9 -d":" #UserParameter=mysql.version,mysql -V
/etc/zabbix/zabbix_server.conf と /etc/zabbix/dbconfig.php もありますが、マニュアルによると小規模なサーバにおいて zabbix_server.conf を編集する必要はないとあります。また、dbconfig.php は zabbix-frontend のプログラムの一部なのであまりいじらないほうがいいでしょう。ただし、DBのサーバが変更になったなど、設定が変わったりするといじらないといけないです。とりあえず、参考までにオリジナルのまま載っけておきます。DBの接続設定がじかにかかれているので、パーミッション等は変更しないほうがいいですね。
/etc/zabbix/zabbix_server.conf
$ sudo more zabbix_server.conf # This is config file for ZABBIX server process # To get more information about ZABBIX, # go http://www.zabbix.com ############ GENERAL PARAMETERS ################# # This defines unique NodeID in distributed setup, # Default value 0 (standalone server) # This parameter must be between 0 and 999 #NodeID=0 # Number of pre-forked instances of pollers # Default value is 5 # This parameter must be between 0 and 255 #StartPollers=5 # Number of pre-forked instances of pollers for unreachable hosts # Default value is 1 # This parameter must be between 0 and 255 #StartPollersUnreachable=1 # Number of pre-forked instances of trappers # Default value is 5 # This parameter must be between 0 and 255 #StartTrappers=5 # Number of pre-forked instances of ICMP pingers # Default value is 1 # This parameter must be between 0 and 255 #StartPingers=1 # Number of pre-forked instances of discoverers # Default value is 1 # This parameter must be between 0 and 255 #StartDiscoverers=1 # Number of pre-forked instances of HTTP pollers # Default value is 1 # This parameter must be between 0 and 255 #StartHTTPPollers=1 # Listen port for trapper. Default port number is 10051. This parameter # must be between 1024 and 32767 #ListenPort=10051 # Listen interface for trapper. Trapper will listen all network interfaces # if this parameter is missing. #ListenIP=127.0.0.1 # How often ZABBIX will perform housekeeping procedure # (in hours) # Default value is 1 hour # Housekeeping is removing unnecessary information from # tables history, alert, and alarms # This parameter must be between 1 and 24 #HousekeepingFrequency=1 # How often ZABBIX will try to send unsent alerts # (in seconds) # Default value is 30 seconds SenderFrequency=30 # Uncomment this line to disable housekeeping procedure #DisableHousekeeping=1 # Specifies debug level # 0 - debug is not created # 1 - critical information # 2 - error information # 3 - warnings (default) # 4 - for debugging (produces lots of information) DebugLevel=3 # Specifies how long we wait for agent response (in sec) # Must be between 1 and 30 Timeout=5 # Specifies how many seconds trapper may spend processing new data # Must be between 1 and 30 #TrapperTimeout=5 # After how many seconds of unreachability treat a host as unavailable #UnreachablePeriod=45 # How ofter check host for availability during the unreachability period #UnavailableDelay=15 # How ofter check host for availability during the unavailability period #UnavailableDelay=60 # Name of PID file PidFile=/var/run/zabbix-server/zabbix_server.pid # Name of log file # If not set, syslog is used LogFile=/var/log/zabbix-server/zabbix_server.log # Maximum size of log file in MB. Set to 0 to disable automatic log rotation. #LogFileSize=1 # Location for custom alert scripts AlertScriptsPath=/etc/zabbix/alert.d/ # Location of 'fping. Default is /usr/sbin/fping # Make sure that fping binary has root permissions and SUID flag set FpingLocation=/usr/bin/fping # Frequency of ICMP pings (item keys 'icmpping' and 'icmppingsec'). Defauls is 60 seconds. #PingerFrequency=60 # Database host name # Default is localhost DBHost=localhost # Database name # SQLite3 note: path to database file must be provided. DBUser and DBPassword are ignored. DBName=zabbix # Database user DBUser=zabbix # Database password # Comment this line if no password used DBPassword=xxxxx # Connect to MySQL using Unix socket? #DBSocket=/tmp/mysql.sock
ここで、おもむろにサーバとエージェントを起動!なんてマニュアルには書いてあるけど、
$ chkconfig --list | grep zabbix zabbix-agent 0:off 1:off 2:on 3:on 4:on 5:on 6:off zabbix-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off
とあるので、おそらくディストリのインストールコマンドでインストールしているようなものぐさな自分のサーバでは既に動いています。
たぶん。Zabbixサーバが動いているサーバでは下記のようなプロセスが動いてるはずだし、
$ ps -A | grep zabbix 1020 ? 00:00:00 zabbix_server 〜〜 全部で20個動いてるけど省略 〜〜 1075 ? 00:00:00 zabbix_server 1694 ? 00:00:00 zabbix_agentd 〜〜 全部で8個動いてるけど省略 〜〜 1701 ? 00:00:00 zabbix_agentd
たぶん。Zabbixエージェントが動いているサーバでは下記のようなプロセスが動いてるはず。
$ ps -A | grep zabbix 778 ? 00:00:00 zabbix_agentd 〜〜 全部で8個動いてるけど省略 〜〜 787 ? 00:00:00 zabbix_agentd
普通に動いているみたいなので、あまり考えず大人な対応をしておきます。
$ sudo service zabbix-agent restart Stopping Zabbix agent: zabbix_agentd Starting Zabbix agent: zabbix_agentd $ sudo service zabbix-server restart Stopping Zabbix server: zabbix_server Starting Zabbix server: zabbix_server
設定
メール通知
まず、基本のメール通知の設定は、[管理]>[メディアタイプ]>[Email]を選択し、適切なSMTPサーバを設定します。
エージェントを使用するホストの追加
ホストの追加は、[設定]>[ホスト]を選択し、[ホストの作成]ボタンを押します。
ひとまず、ここでは、テスト用のホストを追加してみます。IPアドレスは192.168.10.101と192.168.10.102のUbuntu9.10を用意しています。あと、監視サーバ自身。
やることは、
グループ名はあった方がいい程度かもしれません。DNS名かIPアドレスのどちらか片方は設定して、接続方法を設定したほうに合わせます。テンプレートとのリンクで、Template linuxというのがあるのでそれを設定すると、ある程度、基本的な監視項目が追加されます。最終的にはサーバの目的に合わせて、それぞれテンプレートを作成しそれをあてます。
ダッシュボードにアクセスすると、監視が始まってるようすが分かります。
以上、簡単でしたが、Zabbixの設定でした。