Zabbixã§ãã°ãåéããã³ä¿åãããããã¯ã¯ãè€æ°åæèµ·ãããŸãã ã ãããŠ2ã€ã§ã¯ãããŸããã ãããå®å šã«æ£ããã¢ãããŒãã§ã¯ãªãããšãããŒã¿ããŒã¹ãçå£ã«ããŒãããããšãèæ ®ããªãå Žåããã®ãããªæ¹æ³ã«ã¯å¥ã®é倧ãªæ¬ ç¹ããããŸã-ãã°å šäœãä¿åããŸãã ã«ãŒã¿ãŒãŸãã¯Linuxã®ãã°ã®å Žåãäœããã®åœ¢ã§ããã«åæããããšãã§ããã°ãã€ãã³ããã°Windowsã¯ãZabbixãµãŒããŒãšããããåéããŠä¿åããããšã決å®ããã·ã¹ãã 管çè ã®äž¡æ¹ã«å€§ããªèŠçãäžãå§ããŸãã 以äžã¯ããã®åé¡ã®è§£æ±ºçã§ãã
åæ çãªäœè«
ãã¹ãŠã®æè¡è ã¯ãã§ã«æ¬¡ã®ãªãã£ã¹ã§åŸ æ©ããŠãããå°ãç«ã¡æ¢ãŸã£ãŠäžæ¯ã€ããŠããŠãã³ãŒã³ãšäžç·ã«å± å¿å°ã®è¯ããµããµãããITã®äžçããåºãŠãã²ãŒã ãããããã«å€ãããã©ãããå€æããããšããŸãã çµå±ã®ãšãããæŸèæã§äœããããã§ã³ã¹ã§ããªãã®éå£èŸ²å Žã«å¯Ÿããæ³ååãšæãå®å šã«æ®ºãç¹å¥ãªè§£æ±ºçããã¹ããã©ã¯ãã£ã¹ããã®ä»ã®èšèããããŸãã å®å šãªELKã¹ã¿ãã¯ãã·ã£ãŒãããã©ãŒã«ããã¬ã©ã³ã¹ã1ç§ãããæ°çŸäžã®ãã°è¡ãæã£ãŠãã人ãã¡ã«å¿ããæºè¶³ããŠããŸãã ãããã®åç¥ã¯ã圌ãã®èŒãå³°ããç§ãã¡ã®åçŽãªäººéã«ãã£ãã«éããŸããã ãããã£ãŠã圌ãã¯ã€ã³ãã©ã¹ãã©ã¯ãã£å šäœãç£èŠãããšåæã«ãããã¬ãšã«ã«æ©ãŸãããªããšããåçŽãªæ¬²æ±ãç解ããŠããŸããã ãŸããç£èŠã«ã¯æ°å€ã€ã³ãžã±ãŒã¿ã ãã§ã¯ãããŸããã ããšãã°ãWindows Serverã»ãã¥ãªãã£ãµãã·ã¹ãã ã¯ãã°ã®ã¿ãæäœããŸãã ãããŠãå€§ç ²ããã¹ãºã¡ãæã€å¿ èŠããªããZabbixã«åºã¥ããŠãã§ã«ç¢ºç«ãããç£èŠãããå Žåããã®èœåãæ¡å€§ããŠã¿ãŸãããïŒ ãã¶ãç§ã¯ãã ã®é³è ãªèšãæ¹ãããŸãããã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç£èŠã¯ã€ã³ã·ãã³ããžã®ã¿ã€ã ãªãŒãªå¯Ÿå¿ã®åºç€ã§ãããããZabbixãšäºææ§ããããæå°éã®ãªãœãŒã¹ãæ¶è²»ãããã°ã³ã¬ã¯ã¿ãŒãã¢ãã©ã€ã¶ãŒãªã©ã®ããŒã«ãæŠåšã«çšæããå¿ èŠã¯ãããŸããã
åå ã«ïŒ
éåžžãã€ãã³ããã°ãåŠçãããšãã¯ã次ã®ã¹ããŒã ã«åŸããŸãã
EvtSysã¯ãEventLogã¡ãã»ãŒãžãSyslogæšæºã«å€æããå°ããªãµãŒãã¹ã§ãã
ãã®æã«ã¯ãå°ãªããšã2ã€ã®æ¬ ç¹ããããŸãã
- Microsoftã¯ããšã©ãŒã¡ãã»ãŒãžããœãªã¥ãŒã·ã§ã³ãžã®ãã«ããå±éããããœãªã¥ãŒã·ã§ã³ãžã®ãªã³ã¯ã銬ããžãã·ãŒãããã³ã¯ããªã©ãå«ããã°ã¡ãã»ãŒãžã®ãµã€ãºïŒç¹ã«4 kbãè¶
ããããšãå€ãïŒã«ã€ããŠç¹ã«ååŒçã§ã¯ãããŸããã ãããŠãããã¯ãã¡ãã»ãŒãžèªäœã«å ããŠããã以äžå¿
èŠãªãã®ã¯ãªããšããäºå®ã«ããããããã§ãã ãã®çµæã倧éã®ç¡é§ãªæ
å ±ãããŒã¿ããŒã¹ã«ä¿åãããã£ã¹ã¯ã¹ããŒã¹ã¯ãŽã ã§ã¯ãããŸããã
- æ°ããã¡ãã»ãŒãžããšã«ãRSyslogã¯zabbix_senderã®æ°ãããã©ãŒã¯ãäœæããŸãã倧éã®åä¿¡ããŒã¿ã䜿çšãããšããã°åéãµãŒããŒãç°¡åã«æ®ºãããšãã§ããŸããããããäžå¿«ã§ãã
ã ãããããèªè»¢è»ã¡ãŒã«ãŒãçºèŠããåæ¢ãªæ°ããäžçãäœãå§ããã®ã§ãã
äžè¬çãªæŠå¿µ
æ°ããè»äž¡ã«ã¯ãäœæ¥ã¹ããŒã ã«åŸã£ãŠ
ãã«ã¯ããã©ã®äžå¿ã§ãã ããã¯ã»ãšãã©Logstashã«äŒŒãŠããããã€ãã ããäœããç ã¯èããªã£ãŠããŸãã ããããJRubyããªããã°ããªãœãŒã¹ãããã»ã©å¿ èŠãšããããããé©ãã»ã©é«éãªãã³ããå¿ èŠã§ãã 1ç§ãããæ°åè¡ã®ãã°ãéãã«æ¶åããŠåŠçããŸãã ãã®ãããªãã®ïŒ
åæã«ããã©ã°ã€ã³ã®å©ããåããŠç°¡åãã€èªç¶ã«æ¡åŒµãããŸãããããã¯å°æ¥è¡ãããŸãã ã·ã¹ãã ã®äžè¬çãªããžãã¯ã¯æ¬¡ã®ãšããã§ãã åä¿¡ã¡ãã»ãŒãžEvtSysã¯Syslog圢åŒã«å€æãããåŠçã®ããã«Hekaã«éä¿¡ãããŸãã syslogã¡ãã»ãŒãžã解æããã¡ãã»ãŒãžã®å éšéšåïŒãã€ããŒãïŒãéžæããæ£èŠè¡šçŸã§ããã«è§£æããŠãæ°ãããã°è¡ã圢æããŸãã ãã®æååã¯ãæ±çšãã©ã°ã€ã³ã䜿çšããŠZabbixã«çŽæ¥æž¡ãããŸãã å¿ èŠãªãã®ã¯ãã¹ãŠãZabbixãµãŒããŒãå¥ã®ãã·ã³ããŸãã¯ãã®å Žåã¯Zabbixãããã·ã«é 眮ãããŸãã ã·ã¹ãã ã®æäœã«å¯Ÿãããã®ã¢ãããŒãã¯ã以åã«è¡šæãããäž¡æ¹ã®æ¬ ç¹ãæé€ããŸãã ãããã®ãã¹ãŠãå éšã«ã©ã®ããã«é 眮ãããŠããããããã«è©³ãã調ã¹ãŸãã
EvtSysãæ§æãã
EvtSysã®æ§æã«ã€ããŠã¯èª¬æããŸãããããšãã°ã ããã§ç¹°ãè¿ã説æããŸã ã ãœãªã¥ãŒã·ã§ã³ãæ©èœããããã«éèŠãªäž»ãªãã€ã³ãã®ã¿ã«æ³šç®ããŸãã EvtSysããŒãžã§ã³ã¯å°ãªããšã4.5ã§ãªããã°ãªããŸããã ããã¯ãã€ã³ã¹ããŒã«äžã«-tã¹ã€ããã䜿çšãããããã§ãã LPããŒãžã§ã³ã䜿çšããããšããå§ãããŸããããã¯ã2 kbãè¶ ããã¡ãã»ãŒãžãéä¿¡ã§ããããã§ããããã¯ç§ãã¡ã«ãšã£ãŠéèŠã§ãã EvtSysã€ã³ã¹ããŒã«ã³ãã³ãïŒ
evtsys -i -h <heka_host> -p <heka_port> -f 17 -t <zabbix_host>
Windowsãã°ã§ã¯ããã¡ã·ãªãã£local1ã䜿çšããŸãããæé©ãªãã®ã䜿çšã§ããŸãã -tãªãã·ã§ã³ã«ã¯ç¹ã«æ³šæãæãå¿ èŠããããŸãã ãã®äžã§ãZabbixã§ç€ºãããŠãããšããã«ãã¹ãåãæ£ç¢ºã«æå®ããå¿ èŠããããŸãã ãã®Hekaãã£ãŒã«ãã䜿çšããŠãZabbixäžã®é©åãªãã¹ãã«ã¡ãã»ãŒãžãéä¿¡ã§ããŸãã
ã¡ãã»ãŒãžåŠçãã€ãã©ã€ã³ã®æ§æ
ããã§ãç§ãã¡ã¯æ±ºå®ã®äžã§æãèå³æ·±ããŠããããéšåã«å°éããŸããã Hekaã®ã€ã³ã¹ããŒã«ã«ã€ããŠã説æããŸãããææã®ãã€ã³ãã«ã¯ããããªãã®ã§ãããå ¬åŒããã¥ã¡ã³ãã«ããæãããŠããŸãã ãããã£ãŠãHekaãæ¢ã«ã€ã³ã¹ããŒã«ãããŠãããšä»®å®ããã»ããã¢ããã«çŽè¡ããŸãã Logstashãšåæ§ã«ãHekaã¯ã©ãã«ããŒã¹ã®ãã°å€æãã€ãã©ã€ã³ãå®è£ ããŠããŸãã åŠçãããæååãæž¡ãäžè¬çãªãã¹ã¯æ¬¡ã®ãšããã§ãã
ã¹ããªãã¿ãŒãšãã£ã«ã¿ãŒã¯ãã€ãã©ã€ã³ã«ãªãå¯èœæ§ããããŸãã æçµçã«ã¯ãç§ãã¡ããããªããŸãã ãã°è¡ãééãããã¹ããã£ã«ã¿ãŒãããã³çµæãšããŠã©ã®ããã«è¡šç€ºããããã¯ãHekaã®ã¡ãã»ãŒãžã®å éšè¡šçŸã®ãã£ãŒã«ãã«åºã¥ãæ¡ä»¶ã«ãã£ãŠæ±ºãŸããŸãã ããã«ã€ããŠã®è©³çŽ°ã¯ããã¥ã¡ã³ããŒã·ã§ã³ã§èªãããšãã§ããŸãã次ã®Hekaã¢ã«ãŽãªãºã ãäœæããå¿ èŠããããŸãã
- UDPããŒãçµç±ã§syslogã¡ãã»ãŒãžãåä¿¡ããŸãã
- syslogã¡ãã»ãŒãžããã³ãŒãããè¿œå ã®ã¿ã°ãéžæããŸãã
- ãã°è¡ã®ããã¹ãïŒãã€ããŒãïŒã解æããããããäž»èŠãªãã©ã¡ãŒã¿ãŒãšå€ãéžæããŸãã
- éžæããå€ã«åºã¥ããŠãæ°ããæçãªãã°è¡ãçæããŸãã
- ãã°è¡ãZabbixã®jsonã¡ãã»ãŒãžãšããŠãšã³ã³ãŒãããŸãã
- ãšã³ã³ãŒããããã¡ãã»ãŒãžãZabbixã«éä¿¡ããŸãã
ã¢ã«ãŽãªãºã ãå®è£ ããããã«ãHekaãã€ãã©ã€ã³ã®æ©èœãããã¯ã次ã®ããã«æ§ç¯ããŸãã
å¥ã®èª¬æã¯MultiDecoderã«å€ããŸãã ããã¯ãã³ãŒããŒã®ã³ã³ããã§ãããã·ãŒã±ã³ã·ã£ã«ã«ïŒããã¯syslog-decoderã§ã®èšå®æ¹æ³ã§ãïŒãæåã®æ£åžžãªãã³ãŒããŸã§ïŒevents-decoderã§ïŒå®è¡ã§ããŸãã 次ã«ããããHeka configã§ã©ã®ããã«å®è£ ãããããèŠãŠã¿ãŸãããã ã¡ã€ã³èšå®ãè©°ãŸãããªãããã«ãèšå®å šäœãå¥ã®ãã¡ã€ã«ã«åãåºããŸãã ãã®/etc/heka/conf.d/20-eventlog.tomlããããŸãã
ãã«èšå®
åã³ã³ããŒãã³ãã®èšå®ãåå¥ã«æ€èšããŠãã ããã
[eventlog] type = "UdpInput" address = ":10514" decoder = "syslog-decoder"
ããã§ã®èšå®ã§ã¯ãããŒããžã®ã¢ã¯ã»ã¹æš©ã«åé¡ããªãããã«ããã¹ãŠã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ãªãã¹ã³ãã1024以äžã®ããŒãã䜿çšããããšã瀺ããŠããŸãã ãã®ããŒãã¯ãsyslogãµãŒããŒããŒããšããŠEvtSysã§æå®ããå¿ èŠããããŸãã ãŸããåä¿¡ããã¡ãã»ãŒãžãéä¿¡ãããã³ãŒããŒãããã«ç€ºããŸãã
[syslog-decoder] type = "MultiDecoder" subs = ["rsyslog-decoder", "events-decoder"] cascade_strategy = "all" #log_sub_errors = true
ãã§ã«äžã§è¿°ã¹ãããã«ããã®ãã³ãŒããŒã¯ã2çš®é¡ã®åäœãåããä»ã®ãã³ãŒããŒã®ã³ã³ãããŒã§ãïŒãã¹ãŠã®ãã³ãŒããŒãå®è¡ããããæåã®æ£åžžãªãã³ãŒãã®åã«å®è¡ããŸãïŒã åäœã®ã¿ã€ãã¯cascade_strategyãã©ã¡ãŒã¿ãŒã«ãã£ãŠèšå®ããããã®å Žåããã¹ãŠã®ãã³ãŒããŒãsubsãã©ã¡ãŒã¿ãŒã§æå®ãããé åºã§å®è¡ãããå¿ èŠãããããšã瀺ããŸãã ãã«ããã³ãŒããŒããããã°ããã«ã¯ãlog_sub_errors = trueãªãã·ã§ã³ã䜿çšãããšäŸ¿å©ã§ãã æå®ãããšãHekaã¯ãµããã³ãŒããŒã®ãã³ãŒããšã©ãŒããã°ã«æžã蟌ã¿ãŸãã
[events-decoder] type = "MultiDecoder" subs = ["event-4624-decoder", "event-4625-decoder", "event-4724-decoder", "event-4738-decoder", "event-4740-decoder"] cascade_strategy = "first-wins" #log_sub_errors = true
ã€ãã³ããã³ãŒããŒèªäœã¯ãã«ããã³ãŒããŒã§ãããåäœã®æŠç¥ã¯ãã§ã«ç°ãªã£ãŠããŸã-ååå©ã å éšãã³ãŒããŒã®1ã€ãæ£åžžã«ãã³ãŒããããããŒã¿ãè¿ããŸã§ããã³ãŒããŒã匷å¶çã«å®è¡ããŸãã ããã¯ãåŸã§èª¬æããããã€ãã®ãã¿ãŒã³ã«åŸã£ãŠããŒã¿ãåŠçããã®ã«åœ¹ç«ã¡ãŸãã
[rsyslog-decoder] type = "SandboxDecoder" filename = "lua_decoders/rsyslog.lua" [rsyslog-decoder.config] type = "RSYSLOG_TraditionalForwardFormat" template = '<%PRI%>%TIMESTAMP% %HOSTNAME% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%' tz = "Europe/Moscow"
èè ã«ããã°ãHekaã«å«ãŸããæšæºãã³ãŒããŒã®1ã€ã¯RSyslogãã°ãã³ãã¬ãŒãããµããŒãããŠããŸãã ããããããã¯å®å šã§ã¯ãªãããã«æããŸããã ãã°ãã³ãã¬ãŒãã®äºéãã©ã¡ãŒã¿ãŒïŒ HOSTNAMEïŒ ã«æ³šæããŠãã ããã ããã¯ã¿ã€ããã¹ã§ã¯ãããŸããã-tãä»ããŠEvtSysã«æž¡ããããã©ã¡ãŒã¿ãŒãã¡ãã»ãŒãžããã¹ãã«è²Œãä»ããªãããã«ãã³ãã¬ãŒããæ§æã§ããŸããã§ããã ãã®ããã1ã€ã®å°ããªäºçŽ°ãªåé¡ãé€ããŠãå®éã«å¿ èŠãªãã®ãåŸãããŸãããã¹ãåã®æåŸã¯ã³ãã³ã§ãã ã¡ãã»ãŒãžããšã³ã³ãŒããããšãã«åé€ããŸãã ããªãã¯å°ããããšãã§ããŸãïŒãã¹ãåãã£ãŒã«ãã®å€ã¯ã©ã®ããã«è§£æãããŸããïŒ ãããŠéåžžã«ç°¡åã§ã-æ°ããå€ã¯åã«å€ããã®ãäžæžãããŸãã
ã€ãã³ããã³ãŒããŒã¯ãã¹ãŠååã®å åŒã®ããã«äŒŒãŠããããã1ã€ã ããæ€èšããŸãã æ®ãã®éãã¯ã解æçšã®æ£èŠè¡šçŸãšãã°ã®åºåè¡ã«ã®ã¿é©çšãããŸãã
[event-4624-decoder] type = "PayloadRegexDecoder" match_regex = '^(?P<EventID>4624):(?:[^:]+:){10}\s(?P<Account>[^\s]+)[^:]+:\s(?P<Domain>[^\s]+)(?:[^:]+:){8}\s(?P<IP>[^\s]+)' [event-4624-decoder.message_fields] Type = "windows.eventlog" Key = 'eventlog.%EventID%' Value = ' %Domain%\%Account% %IP%.'
ãã®ãã³ãŒããŒã¯ãæ£èŠè¡šçŸã䜿çšããŠæååãå®è¡ããåæã«åã ã®éšåãéžæããŸããããã䜿çšããŠãè¿œå ã®ã¡ãã»ãŒãžãã£ãŒã«ããäœæã§ããŸãã ãã®ãããªãã£ãŒã«ãã¯ãåºåã¡ãã»ãŒãžãäœæããã®ã«åœ¹ç«ã¡ãŸãã ãŸããããã§ã¡ãã»ãŒãžã¿ã€ããèšå®ããïŒTypeãã£ãŒã«ãïŒã察å¿ããåºåïŒå¯Ÿå¿ãããšã³ã³ãŒããŒã«é¢é£ä»ããããŠããïŒã«éä¿¡ãããŸãã
[ZabbixEncoder] type = "SandboxEncoder" filename = "lua_encoders/zabbix_trapper.lua"
ãããŠä»ãç§ãã¡ã®ã³ã¬ã¯ã·ã§ã³ã®çç ã¯Luaã®èªå·±èšè¿°ãã©ã°ã€ã³ã§ãã ç§ã¯åœŒã®ä»äºãæéå ã«æ€èšããŸãïŒæ¬æã®äžæµïŒã Zabbixåãã®ã¡ãã»ãŒãžããšã³ã³ãŒãããããšãããã«æžãã ãã§ååã§ãã
[event-out-zabbix] type = "TcpOutput" message_matcher = "Type == 'windows.eventlog'" address = "127.0.0.1:10051" encoder = "ZabbixEncoder" reconnect_after = 1
Zabbixã«ã¡ãã»ãŒãžãéä¿¡ããããã«çµäºããŸãã ãã¹ãŠãããèªäœãééããããã§ã¯ãªãããã¿ã€ãããã£ãŒã«ãã«å¯Ÿå¿ããå€ãæã€ã¡ãã»ãŒãžã®ã¿ãééããŸãã åã¡ãã»ãŒãžã¯ãäžèšã§èª¬æãããšã³ã³ãŒããŒãééããŸãã
reconnect_after = 1ãã©ã¡ãŒã¿ãŒã«ç¹ã«æ³šæããããšããå§ãããŸãããããã¯éåžžã«éèŠãªãã©ã¡ãŒã¿ãŒã§ãã å®éã«ã¯ãTcpOutputã«ã¯ãã°ãå«ãŸããŠãããTCPã»ãã·ã§ã³ãé·æéç¶æã§ããŸããã ããã¯æ¬¡ã®ããã«ãªããŸããããæç¹ã§ãæ¬æ Œçãªãã°ã¡ãã»ãŒãžã®ä»£ããã«Zabbixã調æŽãéå§ãããã®åŸåæ¢ããŸãã Wiresharkãä»ããHekaãšZabbixéã®äº€æãèŠããšãTcpOutputããã±ããã®ããŒããéå§ããæ¥ç¶ãåæãããŠããããšãããããŸãã ãã®çµæããããé²ãããã«ãäžèšã®ãã©ã¡ãŒã¿ãŒãèšå®ãããåã¡ãã»ãŒãžãZabbixã«éä¿¡ãããåŸã«TcpOutputãåæ¥ç¶ãããŸãã ã¯ãããã¡ããããã«ãããªãŒããŒããããçºçããŸãããHekaãŸãã¯Zabbixãããã·ã䜿çšãããã¹ãã®è² è·ãå€§å¹ ã«å¢å ããããšã¯ãããŸããã§ããã ãã¶ãããã€ãã®ã¡ãã»ãŒãžãéä¿¡ããã ãã§ããïŒ ;ïŒ
ãããã°ã¡ãã»ãŒãžåŠç
ãã€ãã©ã€ã³ã®ãããã°ã«ã¯ãRstEncoderãšãã¡ã€ã«ãžã®åºåãšãã2ã€ã®ããšããå§ãããŸãã RstEncoderã¯ãåã¡ãã»ãŒãžãã£ãŒã«ããããã¹ãæååã§ãšã³ã³ãŒãããŸããããã«ãããã¡ãã»ãŒãžãã©ã®ãã£ãŒã«ãã§æ§æãããã©ã®ãã£ãŒã«ããçãããã確èªã§ããŸãã ãã¡ã€ã«ãžã®åºåã¯ãäœããšã³ã³ãŒããããäœãã¹ããããããã©ã®ããã«ãšã³ã³ãŒããããŠãããã远跡ããã®ã«åœ¹ç«ã¡ãŸãã åºåã次ã®ãããªãã¡ã€ã«ã«æŽçã§ããŸãã
[event-out-file] type = "FileOutput" message_matcher = "Type == 'windows.eventlog'" path = "/tmp/events.log" perm = "666" flush_count = 100 flush_operator = "OR" encoder = "RstEncoder"
ããã§ã¯ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãæ確ã§ãããã©ã¡ãŒã¿ãŒflush_operator =â ORâã®ç®çã®ã¿ã説æããŸãã 圌ã¯ãã¡ãã»ãŒãžã®æ°ãããã£ã³ã¯ãæ¢åã®ãã°ãã¡ã€ã«ã«è¿œå ããå¿ èŠãããããšãææããŸãã ãšã³ã³ãŒããŒãå€æŽããããšã«ãããèšé²ãããã¡ãã»ãŒãžã®åœ¢åŒã確èªã§ããmessage_matcherã¯ã¡ãã»ãŒãžãæ£ããã¿ã€ãã§ããããšã確èªããã®ã«åœ¹ç«ã¡ãŸãã ãªãã«ããŠããã¹ãŠãèšé²ãå§ããŸãã ããã¯ãmessage_matcherãã£ã«ã¿ãŒã®ãšã©ãŒãŸãã¯ã¡ãã»ãŒãžãçæãããªãããšãæ€åºããã®ã«åœ¹ç«ã€å ŽåããããŸãã
Zabbixãã©ãããŒ
次ã«ãã«ã¹ã¿ã ãšã³ã³ãŒããŒã®ä»çµã¿ã«ã€ããŠèª¬æããŸãã è¿œå ã®ãã©ã°ã€ã³ã¯ãã¹ãŠ/ usr / share / heka /ã«ãªããã°ãªããŸããã ãã®ãšã³ã³ãŒããŒãããã®ã§ãããã«é 眮ããŸã-/usr/share/heka/lua_encoders/zabbix_trapper.luaã 圌ã®äžã§ã©ããªçš®é¡ã®ã®ã¢ãåãã®ãèŠãŠã¿ãŸãããã
HekaçšZabbix Trapperã¢ãžã¥ãŒã«
require "os" require "string" require "table" -- JSON. -- https://www.kyne.com.au/~mark/software/lua-cjson.php local cjson = require("cjson") function process_message() -- Zabbix. local host = read_message("Hostname") -- . local key = read_message("Fields[Key]") -- . local value = read_message("Fields[Value]") -- JSON-. local message = {} -- , syslog . message["host"] = string.sub(host, 1, -2) message["key"] = key message["value"] = value local buffer = {message} local zabbix_message = {} zabbix_message["request"] = "sender data" zabbix_message["data"] = buffer -- payload , , JSON. inject_payload("json", "Payload", cjson.encode(zabbix_message)) return 0 end
CJSONã©ã€ãã©ãªãŒã¯Luaãã¢ã¯ã»ã¹ã§ããå Žæã«ããã¯ããªã®ã§ã/ usr / share / heka / lua_modules / cjson.soã«çœ®ããŸãã
Zabbixã®ãã³ãã¬ãŒã
ãã³ãã¬ãŒãã®æ©èœã®ãã¡ãããŒã¿èŠçŽ ã¯ããã°ïŒãã°ïŒãæ å ±ã¿ã€ããševentlog.1102ããŒãæã€Zabbix Trapperã¿ã€ãã§ããå¿ èŠãããããšã«æ³šæããŠãã ããã
Zabbixãã³ãã¬ãŒã
<?xml version="1.0" encoding="UTF-8"?> <zabbix_export> <version>3.0</version> <date>2016-10-01T13:30:30Z</date> <groups> <group> <name> </name> </group> </groups> <templates> <template> <template>Template Windows Users Audit</template> <name>Template Windows Users Audit</name> <description>, , .</description> <groups> <group> <name> </name> </group> </groups> <applications> <application> <name> </name> </application> <application> <name></name> </application> </applications> <items> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.1102</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name></name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4624</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name></name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4625</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name></name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4720</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name></name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4724</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name></name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4725</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name></name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4726</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name></name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4731</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name> </name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4732</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name> </name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4733</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name> </name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4734</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name> </name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4735</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name> </name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4738</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name></name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4740</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name></name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name> .</name> <type>2</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>eventlog.4781</key> <delay>0</delay> <history>1</history> <trends>0</trends> <status>0</status> <value_type>2</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description> .</description> <inventory_link>0</inventory_link> <applications> <application> <name></name> </application> </applications> <valuemap/> <logtimefmt/> </item> </items> <discovery_rules/> <macros/> <templates/> <screens/> </template> </templates> <triggers> <trigger> <expression>{Template Windows Users Audit:eventlog.4732.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>4</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.1102.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>4</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4740.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>3</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4735.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>4</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4738.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>4</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4781.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>4</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4725.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>4</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4724.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>4</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4731.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>4</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4720.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>4</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4734.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>3</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4726.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>3</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4733.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>3</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4624.nodata(10)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>1</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> <trigger> <expression>{Template Windows Users Audit:eventlog.4625.nodata(120)}=0</expression> <name>{HOST.NAME}: .</name> <url/> <status>0</status> <priority>2</priority> <description>{HOST.NAME}: . {ITEM.LASTVALUE}</description> <type>0</type> <dependencies/> </trigger> </triggers> </zabbix_export>
ãããããããªãã¯ãã§ã«ããªã¬ãŒã®å¥åŠãªé 眮ã«æ°ã¥ããŠããã§ãããããããå€ããªããçä¿¡ããŒã¿ã«äžè²«æ§ããªãããããã®ãããªããªã¬ãŒã®æ§ç¯ã¯æãæ£ãããšæãããŸãããããªã¬ãŒã¯2åéçããŸãããéèŠåºŠãé«ããšå¯Ÿå¿ããéç¥ãéä¿¡ãããã€ãã³ãã¯å€±ãããŸããã
ãããŠãçµæã¯äœã§ããïŒ
ã·ã¹ãã ã¯ãæ§æãããæŸé»ããå€æããå¿ããŠããŸããã圌ã¯ãã¡ã³ããã³ã¹ãå¿ èŠãšããã«ãæ°ãæéãæäœåéã§äžçæžåœåããŠããŸãããã¡ãããåªããã·ã¹ãã ãšåæ§ã«ãæ¡åŒµã®å¯èœæ§ããããŸããå°æ¥ã®èšç»ããïŒ
- å¹ åºãã€ãã³ãã
- ãã³ãã¬ãŒãã®æé©åã
- ãããã§ã€ãã³ããéä¿¡ããããã®ãµããŒãïŒå€§èŠæš¡ãªã¹ããªãŒã ã«é©ããŠããŸãïŒã
- TCPæ¥ç¶ã®ããæé©ãªééïŒãªãŒããŒãããã®åæžïŒã
ããŠããããŠäžé£ã®åæã®çµããã«-ããŒã¿ããŒã¹ãžã®çŽæ¥ãã®ã³ã°ãšæé©ååŸã®ZabbixãµãŒããŒãã¥ãŒã®ã¹ã±ãžã¥ãŒã«ã
ãã€ã¬ã¯ããã®ã³ã°ãæå¹ã«ããããšããæ²æšãªè©Šã¿-ãã¥ãŒãç°åžžã«å€§ãããªããZabbixãååã«å²ããŠããŸãã®ãèŠãããšãã§ããŸãããæ£è ã¯ã»ãšãã©æãããšãã§ããŸããã§ããã 1ã€ã®ãã¹ããã»ãã¥ãªãã£ãã°ã«ããªãé«ãè² è·ã§èšé²ãããŸããã
ãã§ã«çå®ã«äŒŒãŠããŸããã¯ããç¹å®ã®æ°ã®ã¡ãã»ãŒãžããã¥ãŒã«æ®ã£ãŠããŸãããããã¯Windowsãã°ã®åé¡ã§ã¯ãªããäžè¬ã«ããã¥ãŒã®åèšé·ã«ãã£ãŠããã©ãŒãã³ã¹ã®åäžãæšå®ã§ããŸããããã«ã2ã€ã®ãã¹ããããã§ç£èŠãããã¡ãã»ãŒãžã¯å°ãªããªããŸãããããã®ç¹å®ã®ç£èŠãµãã·ã¹ãã ã®è² è·ã¯äžè¬çãªããã¯ã°ã©ãŠã³ãã«å¯ŸããŠæ£åžžã«å€±ãããŸãã
PSäœã®ãµããããã«ã圌ã®æ±ºå®ãå ±æããããšã¯èå³æ·±ããã®ã§ããã誰ãã代æ¿æ¡ãç¥ã£ãŠãããªããç§ã¯ããªãã®ã³ã¡ã³ããåãã§ããã§ãããã