Zabbix構成の詳細
8897 ワード
host groups –> host –> application –> item –> trigger –> action (conditions, operations)
ホストの監視
モニタアイテムitems
trigger:トリガトリガ
特定のitemが収集したデータの非合理的な区間または非合理的な状態を定義する
イベント・メカニズム:4つのイベント・ソース
アクション:
トリガ条件
トリガ後の動作
Pythonメールアラームスクリプトの例:
リモート実行コマンドremote command機能:agentが存在するホスト上でユーザー指定のコマンドまたはスクリプトを実行します.例:
前提:agentで完了する必要がある構成:
サービスの再起動が有効になります.
ディスプレイインタフェース:
テンプレート:
ネットワーク検出:
zabbix serverは、指定されたネットワーク範囲内のホストをスキャンします.
カスタムキー:
例
ホストの監視
items: , 。
application:
trigers: , items :OK PROBLEM, PROBLEM vents( )。
actions:condition、operation
モニタアイテムitems
items: key+parameter
key:
zabbix :
type:
agent
agent(active)
snmp v1
Simple check
(UserParameter)
:
:
:
Log
:
: , ,
:3.4
As is:
Delta:(simple change),
Delta:(speed per second), , ;
time:
:3.4
text
structured data
arithmetic
change
numeral systems
trigger:トリガトリガ
特定のitemが収集したデータの非合理的な区間または非合理的な状態を定義する
, ; ;
OK: --> zabbix , FALSE;
PROBLEM: --> zabbix , TRUE
:
{hostname:key[paramters].function(arguments)
>, #(not equal)...
+, -, *, /
&, |
{n1.magedu.com:net.if.in[eno16777736,packets].last(#1)}>15
:
nodata()
last() /
date()
time()
now()
dayofmonth()
...
Severity;
Not classified
Information
Warning
Average ,
High
Disaster
trigger
イベント・メカニズム:4つのイベント・ソース
Trigger
discovery
auto registration
internal
アクション:
トリガ条件
conditions:
;
operations:
;
RECOVERY OPERATIONS
トリガ後の動作
send message:
:
Email:
Script:
Script: ;
:
zabbix_server.conf AlertScriptsPath ;
zabbix , :
$1: ;
$2:subject
$3:body
zabbix 3.0 , :
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
SMS:
Jabber: ,
Ez Texting: ,
zabbix , ;
Pythonメールアラームスクリプトの例:
#!/usr/bin/env python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import parseaddr, formataddr
import sys
def formatAddr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))
def send_mail(to_list,subject,content):
mail_host = 'smtp.exmail.qq.com'
mail_user = '[email protected]'
mail_pass = 'YOUR_PASSWORD'
#
msg = MIMEText(content,'','utf-8')
msg['Subject'] = Header(subject, 'utf-8').encode()
msg['From'] = formatAddr('zabbix ' % mail_user).encode()
msg['to'] = to_list
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(mail_user,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False
if __name__ == "__main__":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
リモート実行コマンドremote command機能:agentが存在するホスト上でユーザー指定のコマンドまたはスクリプトを実行します.例:
;
IPMI ;
;
:
IPMI
ssh
telnet
Custom Script
Global Script
前提:agentで完了する必要がある構成:
(1) zabbix ;
/etc/sudoers
;
Defaults requiretty
:
zabbix ALL=(ALL) NOPASSWD: ALL
(2) agent ;
/etc/zabbix/zabbix_agentd.conf, :
EnableRemoteCommands=1
サービスの再起動が有効になります.
ディスプレイインタフェース:
graph: simple, custom
screen: graph ;
slide show: screen slide show
map
テンプレート:
: ;
link, unlink, unlink and clear
;
:macro, ;
:
:Administration --> General --> Macros
: --> Macros
: --> Macros
:
:{MACRO_NAME}
:{$MACRO_NAME}
: 、 ;
ネットワーク検出:
zabbix serverは、指定されたネットワーク範囲内のホストをスキャンします.
:
ip ;
(ftp, ssh, http, ...)
zabbix_agent ;
snmp_agent ;
:
discovery
actions: discvery events
:--> discovery events
Service, Host
UP/DOWN, DICOVERED/LOST
:
send message, remote command
add/remove host
enable/disable host
add host to group
link template to host
...
カスタムキー:
item type: ; key ;
agent
agent(active)
simple
snmpv1
snmpv2
snmpv3
ssh
...
:agent, ipmi, snmp, jmx
例
key: zabbix agent UserParameter key;zabbix_agentd.conf
UserParameter=,<command>
UserParameter=nginx.requests,curl -s http://localhost/status | awk '/^[[:space:]]*[0-9]/{print $3}'