è€æ°ã®ãµãŒããŒã§ããŒã¿ãšã¢ããªã±ãŒã·ã§ã³ã管çããå¿ èŠãããäŒæ¥ã«ãšã£ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã¯æãéèŠã§ãã
ãã¹ãŠã®äŒæ¥ã«ãšã£ãŠãã¯ãŒã¯ãããŒã®éèŠãªéšåã¯ãç¹ã«æ°ããªåé¡ã解決ããããã®çŽæ¥ã¢ã¯ã»ã¹ããªãå Žåã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ããŒããç£èŠããããšã§ããããã«ãäžéšã®ãªãœãŒã¹ã®å€çšã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®é害ãéè² è·ã®ææšãšãªãå¯èœæ§ããããŸãããã ããç£èŠã¯ãäºé²ã ãã§ãªããæ¬çªç°å¢ã§æ°ãããœãããŠã§ã¢ã䜿çšããå Žåã«èµ·ããããçµæãè©äŸ¡ããããã«ã䜿çšã§ããŸãããªãœãŒã¹æ¶è²»ã远跡ããããã«çŸåšåžå Žã«åºåã£ãŠããããã«äœ¿çšã§ãããœãªã¥ãŒã·ã§ã³ãããã€ããããŸãããããã§ããã€ã³ã¹ããŒã«ãšæ§æã®ã³ã¹ããšãµãŒãããŒãã£ãœãããŠã§ã¢ã«é¢é£ããã»ãã¥ãªãã£ã®åé¡ãšãã2ã€ã®éèŠãªåé¡ãçºçããŸãã
æåã®åé¡ã¯äŸ¡æ Œã®åé¡ã§ããç£èŠãããã¹ãã®æ°ã«å¿ããŠãã³ã¹ãã¯1ãæããã10ãŠãŒãïŒæ¶è²»è æéïŒããæ°åãŠãŒãïŒäŒæ¥æéïŒã®ç¯å²ã«ãªããŸããããšãã°ã3ã€ã®ããŒãã1幎éç£èŠããããšããŸããæé¡10ãŠãŒãã®äŸ¡æ Œã§ãç§ã¯120ãŠãŒããè²»ãããŸãããå°ããªäŒç€Ÿã¯1äžãã2äžãã«ããã©ãŒã¯ããå¿ èŠããããããã¯è²¡æ¿çã«åãå ¥ããããªã決å®ã§ãããåã«äºç®å šäœãæãªãããšã«ãªããŸãã
2çªç®ã®åé¡ã¯ãµãŒãããŒãã£ã®ãœãããŠã§ã¢ã§ããåæã®ããã«ããŠãŒã¶ãŒããŒã¿ïŒå人ãŸãã¯äŒæ¥ïŒããµãŒãããŒãã£ãåŠçããå¿ èŠãããå ŽåããµãŒãããŒãã£ãããŒã¿ãã©ã®ããã«åéããŠãŠãŒã¶ãŒã«æç€ºããã®ããšããçåãçããŸããéåžžããã®ããã«ãç£èŠãå®è¡ãããããŒãã«ç¹å¥ãªã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ãããŸãããå€ãã®å Žåããã®ãããªã¢ããªã±ãŒã·ã§ã³ã¯å€ããªã£ãããã¯ã©ã€ã¢ã³ãã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšäºææ§ããªãããšã倿ãããããæéããããŸããæ å ±ã»ãã¥ãªãã£ã®åéã§ã®ç ç©¶è ã®çµéšã¯ããç¬èªã®ãœãããŠã§ã¢ãã䜿çšããéã®åé¡ã«å ãåœãŠãŸãããã®ãããªãœãããŠã§ã¢ãä¿¡é ŒããŸããïŒç§ã§ã¯ãããŸãããTorãšããã€ãã®æå·é貚ã®
äž¡æ¹ã®ããŒãããããŸããã®ãããç¡æã§ãªãŒãã³ãœãŒã¹ã®ãç°¡åã«ã«ã¹ã¿ãã€ãºã§ããç£èŠã®ä»£æ¿ææ®µã奜ã¿ãŸãããã®æçš¿ã§ã¯ãGrafanaãInfluxBDãCollectDã®3ã€ã®ããŒã«ã«ã€ããŠèª¬æããŸãã
ã¢ãã¿ãªã³ã°
ã€ã³ãã©ã¹ãã©ã¯ãã£ã®åã¡ããªãã¯ã广çã«åæããã«ã¯ãé¢å¿ã®ããããã€ã¹ããçµ±èšãååŸã§ããã¢ããªã±ãŒã·ã§ã³ãå¿ èŠã§ãããã®ç¹ã§ãCollectDãå©ãã«ãªããŸãããã®ããŒã¢ã³ã¯ããã£ã¹ã¯ã«ä¿åãããããããã¯ãŒã¯çµç±ã§éä¿¡ãããã§ãããã¹ãŠã®ãã©ã¡ãŒã¿ãŒãã°ã«ãŒãåããŠåéããŸãïŒãåéãããããã£ãŠãã®ãããªååïŒã
次ã«ãããŒã¿ã¯InfluxDBã€ã³ã¹ã¿ã³ã¹ã«è»¢éãããŸããããã¯ããµãŒããŒãããŒã¿ãåä¿¡ããæå»ïŒUNIXã§ãšã³ã³ãŒããããã¿ã€ã ã¹ã¿ã³ãïŒã«ããŒã¿ãé¢é£ä»ããæç³»åããŒã¿ããŒã¹ïŒTSBDïŒã§ãããããã£ãŠãCollectDã«ãã£ãŠéä¿¡ãããããŒã¿ã¯ãäžé£ã®ã€ãã³ããšããŠå°çããŸãã
æåŸã«ãGrafanaã䜿çšããŸãïŒãã®ããã°ã©ã ã¯InfluxDBã«æ¥ç¶ãããŠãŒã¶ãŒãã¬ã³ããªãŒãªã«ã©ãã«ãªããã·ã¥ããŒãã«ããŒã¿ã衚瀺ããŸããããããçš®é¡ã®ã°ã©ããšãã¹ãã°ã©ã ã®ãããã§ãCPUãRAMãªã©ã®ããŒã¿ããªã¢ã«ã¿ã€ã ã§è¿œè·¡ã§ããããã«ãªããŸãã
InfluxDB
ã€ãã³ãã®ã·ãŒã±ã³ã¹ãšããŠããŒã¿ãä¿åããããã®ç¡æã®TSBD ã§ããInfluxDBããå§ããŸãããããã®GoãéçºããããŒã¿ããŒã¹ã¯ãç£èŠãã·ã¹ãã ãã®äžå¿ã«ãªããŸãã
ããŒã¿ãå°çãããã³ã«ãããã©ã«ãã§UNIXã©ãã«ãããã«ãã€ã³ããããŸãããã®ã¢ãããŒãã®æè»æ§ã«ããããŠãŒã¶ãŒã¯å€æ°ãæéããä¿åããå¿ èŠããªããªããŸããããã¯ãä»ã®æ¹æ³ã§ã¯ããªãè€éã§ããç°ãªã倧éžã«ããã€ãã®ããã€ã¹ããããšæ³åããŠã¿ãŸãããã ãæéã倿°ãã©ã®ããã«åŠçããŸããïŒãã¹ãŠã®ããŒã¿ãã°ãªãããžå¹³åæéã«çµã³ä»ããŸããããŸãã¯åããŒãã«ç¬èªã®ã¿ã€ã ãŸãŒã³ãäžããŸããïŒããŒã¿ãç°ãªãã¿ã€ã ãŸãŒã³ã«ä¿åãããŠããå Žåããã£ãŒãã«æ£ãã衚瀺ããã«ã¯ã©ãããã°ããã§ããïŒã芧ã®ãšãããåé¡ã¯æ¬¡ã ãšçºçããŸãã
InfluxDBã¯æéã远跡ããåããŒã¿ã®å°çã«èªåçã«ã¿ã°ãä»ãããããç¹å®ã®ããŒã¿ããŒã¹ã«åæçã«ããŒã¿ãæžã蟌ãããšãã§ããŸããInfluxDBãã¿ã€ã ã©ã€ã³ãšããŠè¡šç€ºãããããšãå€ãã®ã¯ãã®ããã§ããæžã蟌ã¿ã¯ç¹å®ã®ã€ãã³ããã¿ã€ã ã©ã€ã³ã«è¿œå ããã ããªã®ã§ãããŒã¿ã®æžã蟌ã¿ã¯ããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ã«åœ±é¿ããŸããïŒMySQLã§çºçããå ŽåããããŸãïŒããããã£ãŠãããã°ã©ã ã®ååã¯ãç¡éã§ç¡å¶éã®ãã¹ããªãŒã ããšããŠã®æéã®èªèã«ç±æ¥ããŸãã
ã€ã³ã¹ããŒã«ãšæ§æ
InfluxDBã®ãã1ã€ã®å©ç¹ã¯ãã€ã³ã¹ããŒã«ãç°¡åã§ããããžã§ã¯ãã³ãã¥ããã£ãæäŸããåºç¯ãªããã¥ã¡ã³ãã§ãããåºããµããŒããããŠããŸããïŒInfluxDBã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã®2çš®é¡ããããã³ãã³ãã©ã€ã³ïŒéçºè ã®ããã®äŸ¿å©ãªããŒã«ãããããæªã倧éã®ããŒã¿ãæ±ãããã«æºåïŒãããã³HTTP APIã®ããŒã¿ããŒã¹ãšã®çŽæ¥çãªçžäºäœçšã®ããã«ã
InfluxDBã¯ãå ¬åŒãµã€ãããã ãã§ãªããããã±ãŒãžç®¡çã·ã¹ãã ãããããŠã³ããŒãã§ããŸãïŒããã«ã€ããŠã¯ãDebianãéããŠèª¬æããŸãïŒãããã«ãã€ã³ã¹ããŒã«ããåã«GPGãä»ããŠããã±ãŒãžã確èªããããšããå§ãããŸãããã®ããã以äžã§ã¯InfluxDBããã±ãŒãžã®ããŒãã€ã³ããŒãããŸãã
root@node#~: curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
root@node#~: source /etc/os-release
root@node#~: echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
æåŸã«ãInfluxDBãæŽæ°ããŠã€ã³ã¹ããŒã«ããŸãã
root@node#~: apt-get update
root@node#~: apt-get install influxdb
å®è¡ããã«ã¯ã以äžã䜿çšããŸã
systemctlã
root@node#~: service start influxdb
æªæã®ãã人ããã°ã€ã³ããã®ãé²ãããã«ããadministratorããšãããŠãŒã¶ãŒãäœæããŸããInfluxDBSQLã®ãããªã¯ãšãªèšèªãInfluxQLããä»ããŠããŒã¿ããŒã¹ãšå¯Ÿè©±ã§ããŸããæ°ãããŠãŒã¶ãŒãäœæããã«ã¯ããªã¯ãšã¹ããå®è¡ã
create userãŸãã
root@node#~: influx
Connected to http://localhost:8086
InfluxDB shell version: x.y.z
>
> CREATE USER admin WITH PASSWORD 'MYPASSISCOOL' WITH ALL PRIVILEGES
åãCLIã€ã³ã¿ãŒãã§ã€ã¹ã§ããã¡ããªãã¯ãããŒã¿ããŒã¹ãäœæããŸãããã®ããŒã¿ããŒã¹ã«ã¡ããªãã¯ãä¿åããŸãã
> CREATE DATABASE metrics
次ã«ãCollectDããµããŒãããããã«ãã¡ããªãã¯ãããŒã¿ããŒã¹ã«çŽæ¥æ¥ç¶ããŠ
/etc/influxdb/influxdb.confããŒã24589ïŒUDPïŒã§ã€ã³ã¿ãŒãã§ã€ã¹ãéãããã«InfluxBDïŒïŒãæ§æããŸããCollectDããã€ãã£ã圢åŒã§éä¿¡ããããŒã¿ãæ£ããå€å¥ããã«ã¯ããã¡ã€ã«ãããŠã³ããŒãtypes.dbããŠã¢ãã¬ã¹/usr/share/collectd/ïŒãŸãã¯ä»ã®ãã©ã«ããŒïŒã«é
眮ããå¿
èŠããããŸãã
root@node#~: nano /etc/influxdb/influxdb.conf
[Collectd]
enabled = true
bind-address = ":24589"
database = "metrics"
typesdb = "/usr/share/collectd/types.db"
CollectDã®è©³çްã«ã€ããŠã¯ãããã¥ã¡ã³ãã®æ§æãåç §ããŠãã ããã
CollectD
ç£èŠã€ã³ãã©ã¹ãã©ã¯ãã£ã®CollectDã¯ãInfluxDBãžã®ããŒã¿è»¢éãç°¡çŽ åããããŒã¿ã¢ã°ãªã²ãŒã¿ãŒãšããŠæ©èœããŸããå®çŸ©äžãCollectDã¯ãCPUãRAMãããŒããã©ã€ãããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãããã»ã¹ããã¡ããªãã¯ãåéããŸããç¹ã«ããã§ã«å©çšå¯èœãªããŸããŸãªãã©ã°ã€ã³ãèšç»ãããŠãããã©ã°ã€ã³ã®ã»ãããèæ ®ãããšããã®ããã°ã©ã ã®å¯èœæ§ã¯ç¡éã§ãã
ã芧ã®ãšãããCollectDã®ã€ã³ã¹ããŒã«ã¯ç°¡åã§ãã
root@node#~: apt-get install collectd collectd-utils
CollectDãã©ã®ããã«æ©èœããããç°¡åãªäŸã§èª¬æããŸããããããŒãäžã®ããã»ã¹ã®æ°ãç¥ããããšããŸããããããã確èªããããã«ãCollectDã¯APIåŒã³åºããè¡ã£ãŠãåäœæéãããã®ããã»ã¹æ°ïŒå®çŸ©ã§ã¯5000ããªç§ïŒã調ã¹ãŸããããã以äžã®ããšã¯ãããŸãããã¢ã°ãªã²ãŒã¿ãŒã¯ããŒã¿ãåä¿¡ãããšããã«ãã¢ãžã¥ãŒã«ïŒããããã¯ãŒã¯ããšåŒã°ããïŒãä»ããŠæ§æããããã«ããŒã¿ãInfluxDBã«è»¢éããŸããããã¯ãæ§æããå¿ èŠããããŸãã
ãšãã£ã¿ãŒ
/etc/collectd.confã§ãã¡ã€ã«ãéããã»ã¯ã·ã§ã³ãŸã§ã¹ã¯ããŒã«ããŠãNetwork以äžã«ç€ºãããã«ç·šéããŸãã InfluxDBïŒINFLUXDB_IPïŒã€ã³ã¿ãŒãã§ãŒã¹ãé
眮ãããŠããIPãå¿
ãæå®ããŠãã ããã
root@node#~: nano /etc/collectd.conf
...
<Plugin network>
<Server "INFLUXDB_IP" "24589">
</Server>
ReportStats true
</Plugin>
...
InfluxDBã«è»¢éãããæ§æãã¡ã€ã«ã®ãã¹ãåã倿Žããããšããå§ãããŸãïŒç§ãã¡ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ã¯ãããã¯åãããŒãã«ããããããéäžåãããŒã¿ããŒã¹ã§ãïŒãããã«ãããäžèŠãªããŒã¿ãåä¿¡ããããšããªããªããä»ã®ããŒãã«ãã£ãŠããŒã¿ãäžæžãããããªã¹ã¯ããªããªããŸãã
ã°ã©ãã¡ã
1ã€ã®ã°ã©ãã¯1000ã®ç»åã®äŸ¡å€ããããŸã
èšãæãããšãã°ã©ãã衚ãéããŠã€ã³ãã©ã¹ãã©ã¯ãã£ã¡ããªãã¯ããªã¢ã«ã¿ã€ã ã§èгå¯ããããšã§ãå¹ççãã€ã¿ã€ã ãªãŒã«è¡åããããšãã§ããŸãã Grafanaã䜿çšããŠãã°ã©ããšããŒãã«ã®ããã·ã¥ããŒããäœæããã³ã«ã¹ã¿ãã€ãºããŸãã
Grafanaã¯ãããŸããŸãªããŒã¿ããŒã¹ïŒInfluxDBãå«ãïŒãšäºææ§ã®ããããªãŒãŠã§ã¢ã®ã°ã©ãã£ã«ã«ã¡ããªãã¯ããŒã«ã§ãããããŒã¿ã®äžéšãç¹å®ã®æ¡ä»¶ãæºããå Žåã«ã¢ã©ãŒããäœæã§ããŸããããšãã°ãããã»ããµãããŒã¯ã«éããŠããå ŽåãSlackãMattermostãé»åã¡ãŒã«ãªã©ã§ã¢ã©ãŒããåä¿¡ããå¯èœæ§ããããŸããããã«ã誰ããç§ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã«ãäŸµå ¥ããããšãã«ãã¹ãŠã®ã±ãŒã¹ãã¢ã¯ãã£ãã«ç£èŠããããã«ã¢ã©ãŒããæ§æããŸããã
Grafanaã¯ç¹å¥ãªèšå®ãå¿ èŠãšããŸãããåè¿°ã®ããã«ãInfluxDBã¯ãtimeã倿°ããã¹ãã£ã³ãããŸããçµ±åèªäœã¯éåžžã«ç°¡åã§ãããŸããå ¬éããŒãã€ã³ããŒãããŠãGrafanaã®å ¬åŒWebãµã€ãããããã±ãŒãžã远å ããŸãïŒãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠç°ãªããŸãïŒã
root@node#~: wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
root@node#~: echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
root@node#~: apt-get update && apt-get install grafana
次ã«ãsystemctlãä»ããŠå®è¡ããŠã¿ãŸãããã
root@node#~: systemctl start grafana-web
ãã©ãŠã¶ã§localhostïŒ3000ããŒãžã«ç§»åãããšãGrafanaãã°ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ã衚瀺ãããŸããå®çŸ©äžããã°ã€ã³ç®¡çè ãšãã¹ã¯ãŒã管çè ãçµç±ã§ããŸãïŒæåã®ãã°ã€ã³è³æ Œæ å ±ã®å€æŽãæšå¥šãããåŸïŒã
[ãœãŒã¹]ã»ã¯ã·ã§ã³ã«ç§»åããŠãããã«InfluxããŒã¿ããŒã¹ã远å ããŸãããã
ããã§ã[æ°ããããã·ã¥ããŒã]ã©ãã«ã®äžã«å°ããªç·è²ã®é·æ¹åœ¢ã衚瀺ãããŸãããã®äžã«ã«ãŒãœã«ã眮ãã[ããã«ã®è¿œå ]ã[ã°ã©ã]ã®é ã«éžæããŸã
ãããã§ããã¹ãããŒã¿ãå«ãã°ã©ãã衚瀺ãããŸãããã®å³ã®ã¿ã€ãã«ãã¯ãªãã¯ããŠã[ç·šé]ãã¯ãªãã¯ããŸãã Grafanaã䜿çšãããšãã¹ããŒãã¯ãšãªãäœæã§ããŸããããŒã¿ããŒã¹å ã®ãã¹ãŠã®ãã£ãŒã«ããç¥ãå¿ èŠã¯ãããŸãããGrafanaã¯ãåæã«é©ãããã©ã¡ãŒã¿ã®ãªã¹ãããããããæäŸããŸãã
ã¯ãšãªã®äœæããããŸã§ã«ãªãç°¡åã«ãªããŸãããé¢å¿ã®ããææšãéžæããŠã[æŽæ°]ãã¯ãªãã¯ããã ãã§ãããŸããåé¡ãç°¡åã«åãåããããããã«ãã¡ããªãã¯ããã¹ãã§åå²ããããšããå§ãããŸããä»ã®ã³ã³ãããŒã«ããã«ã®ã¢ã€ãã¢ã«èå³ãããå Žåã¯ãGrafanaãµã€ãã«ã¢ã¯ã»ã¹ããŠãã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãããã®ããããçš®é¡ã®äŸã確èªã§ããŸãã
Grafanaã¯éåžžã«æ¡åŒµæ§ã®é«ãããŒã«ã§ãããäºãã«éåžžã«ç°ãªãããŒã¿ãæ¯èŒã§ããããšã«æ°ã¥ããŸãããååŸã§ããªãã¡ããªãã¯ã¯1ã€ã§ã¯ãªããããããªãã®åµæå·¥å€«ã ããããªããå¶éããŸããããã€ã¹ã远跡ããã€ã³ãã©ã¹ãã©ã¯ãã£ã®æãå®å šãªæŠèŠããªã¢ã«ã¿ã€ã ã§ååŸããŸãã
