±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁË´óÊý¾Ý¼à¿ØÌåϵ¡¢¼Ü¹¹Éè¼Æ¡¢Telegraf¡¢InfluxDB¼°GrafanaµÈ¡£Ï£ÍûÄܹ»¶Ô´ó¼ÒÓÐËùÆô·¢ºÍ°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
×ÛÊö
ÈÕÖ¾ºÍ¼à¿Ø¿ª·¢ÈËÔ±¹¤×÷Öбز»¿ÉÉÙµÄÁ½Ö»ÑÛ¾¦£¬ÈÕÖ¾ÊÇΪÁË¿ìËÙ¶¨Î»ÅŲé¹ÊÕÏ£¬¼à¿ØÊÇΪÁË·¢ÏÖDZÔÚÎÊÌâ²¢Äܼ°Ê±¸æ¾¯£¬ÊǹÊÕÏÕï¶ÏºÍ·ÖÎöµÄÖØÒª¸¨ÖúÀûÆ÷£¬Í¬Ñù¼à¿ØÏµÍ³¶Ô´óÊý¾ÝÆ½Ì¨ÖØÒªÐÔ²»ÑÔ¶øÓ÷¡£ÔÚ·¢ÉúʹÊ֮ǰ¾ÍÄÜÔ¤¾¯£¬×î´óÏ޶ȽµµÍϵͳ¹ÊÕÏÂÊ£¬ÊÇ¼à¿ØµÄÖÕ¼«Ä¿±êºÍ¼ÛÖµÌåÏÖ¡£±¾ÎÄÖ¼ÔÚ°ïÖú´ó¼ÒÁ˽â¼à¿ØÏµÍ³£¬²¢ÄÜ¿ìËٴ¹«Ë¾µÄ¼à¿ØÆ½Ì¨¡£
¼à¿ØÌåϵ
¼à¿ØÁ£¶È¡¢¼à¿ØÖ¸±êÍêÕûÐÔ¡¢¼à¿ØÊµÊ±ÐÔÊÇÆÀ¼Û¼à¿ØÏµÍ³µÄÈýÒªËØ¡£´Ó·Ö²ãÌåϵ¿ÉÒÔ°Ñ¼à¿ØÏµÍ³·ÖΪÈý¸ö²ã´Î£º
ÒµÎñ²ã£ºÒµÎñϵͳ±¾ÖÊÄ¿µÄÊÇΪÁË´ï³ÉÒµÎñÄ¿±ê£¬Òò´Ë¼à¿ØÒµÎñϵͳÊÇ·ñÕý³£×îÓÐЧµÄ·½Ê½ÊÇ´ÓÊý¾ÝÉÏ¼à¿ØÒµÎñÄ¿±êÊÇ·ñ´ï³É¡£¶ÔÒµÎñÔËÓªÊý¾Ý½øÐÐ¼à¿Ø£¬¿É¼°Ê±·¢ÏÖ³ÌÐòbug»òÒµÎñÂß¼Éè¼ÆÈ±ÏÝ£¬±ÈÈç×¢²áʧ°ÜÂÊ¡¢µÇ¼ʧ°ÜÂÊ¡¢¸¶¿îʧ°ÜÂʵȡ£ÒµÎñϵͳµÄ¶àÑùÐÔ¾ö¶¨ÁËÓ¦Óɸ÷¸öÒµÎñϵͳʵÏÖ¼à¿ØÖ¸±ê¿ª·¢¡£
Ó¦Óò㣺¶ÔÓ¦ÓõÄÕûÌåÔËÐÐ×´¿ö½øÐÐÁ˽⡢°Ñ¿Ø£¬Èç¹û½«Ó¦Óõ±³ÉºÚºÐ×Ó£¬¿ª·¢¡¢ÔËά¾ÍÎÞ´ÓÖªÏþÓ¦Óõ±Ç°×´Ì¬£¬²»Äܼ°Ê±·¢ÏÖDZÔÚ¹ÊÕÏ¡£Ó¦ÓÃ¼à¿Ø²»Ó¦¾ÖÏÞÓÚÒµÎñϵͳ£¬»¹°üÀ¨¸÷ÖÖÖмä¼þ¡¢¼ÆËãÒýÇæ£¬ÈçSpark¡¢Jstorm¡¢redis¡¢zookeeper¡¢kafkaµÈ¡£³£ÓÃ¼à¿ØÊý¾Ý£ºJVM¶ÑÄÚ´æ¡¢GC¡¢CPUʹÓÃÂÊ¡¢Ïß³ÌÊý¡¢TPS¡¢ÍÌÍÂÁ¿µÈ¡£Ò»°ãͨ¹ý³éÏó³öµÄͳһָ±êÊÕ¼¯×é¼þ£¬ÊÕ¼¯Ó¦Óü¶Ö¸±ê£¬±ÈÈç²»¹ÜÊÇÖ§¸¶ÏµÍ³»¹Êǽ»Ò×ϵͳ£¬¶¼Òª¼à¿ØjvmÄÚ´æÊ¹Óá£
ϵͳ²ã£ºÊµÊ±ÕÆÎÕ·þÎñÆ÷¹¤×÷״̬£¬ÁôÒâÐÔÄÜ¡¢ÄÚ´æÏûºÄ¡¢ÈÝÁ¿ºÍÕûÌåϵͳ½¡¿µ×´Ì¬£¬±£Ö¤·þÎñÆ÷Îȶ¨ÔËÐС£¼à¿ØÖ¸±ê£ºÄÚ´æ¡¢´ÅÅÌ¡¢CPU¡¢ÍøÂçÁ÷Á¿¡¢ÏµÍ³½ø³ÌµÈϵͳ¼¶ÐÔÄÜÖ¸±ê
¼Ü¹¹Éè¼Æ
¹¤ÓûÉÆÆäʱØÏÈÀûÆäÆ÷£¬¸ù¾Ý¶ÔÏÖÓÐ¼à¿Ø²úÆ·µÄµ÷ÑУ¬ÒÔ¼°ÎÒÃÇ¶Ô¼à¿ØµÄ·Ö²ã½éÉÜ¡¢ËùÐè½â¾öµÄÎÊÌ⣬¿ÉÒÔ·¢ÏÖ¼à¿ØÏµÍ³´ÓÊÕ¼¯µ½·ÖÎöµÄÁ÷³Ì¼Ü¹¹£º²É¼¯£´æ´¢£Õ¹Ê¾£¸æ¾¯£º

Telegraf£º²å¼þ»¯µÄÖ¸±êÊÕ¼¯ºÍÖ¸±ê±¨¸æ·þÎñ£¬Äܶ¨ÖÆ»¯¿ª·¢²¢ÇáËÉÌí¼ÓËùÐè²å¼þ¡£ÒѾÄÚÖÃÁ˺ܶೣÓ÷þÎñµÄ²å¼þ£¬ÕâÒ²ÊÇÎÒÃÇÑ¡ÔñtelegrafµÄÔÒòÖ®Ò»£¬²»ÓÃÔÙÖØ¸´ÔìÂÖ×Ó
InfluxDB£º¸ßÐÔÄܵIJ¼Ê½Ê±¼äÐòÁÐÖ¸±êÊý¾Ý¿â¡£¼à¿ØÖ¸±êÊÕ¼¯ÊǷdz£Æµ·±µÄ£¬·ñÔò¾ÍʧȥÁËʵʱÐÔ£¬¸ßƵÊÕ¼¯µÄ½á¹û¾ÍÊÇ´óÊý¾ÝÁ¿£¬Ò²Òª¶Ôʱ¼äÐòÁнøÐзÖÎö£¬InfluxDB¾ÍÄÜÂú×ãÕâÖÖÓ¦Óó¡¾°
Grafana£ºÊ±¼äÐòÁзÖÎöºÍ¼à¿ØµÄ¿ª·Åƽ̨£¬Ö§³Ö¶àÖÖÊý¾ÝÔ´(InfluxDB¡¢OpenTSDBʱ¼äÐòÁÐÊý¾Ý¿â)¡¢·á¸»µÄÕ¹ÏÖÐÎʽ¡¢Ö§³Öemail/dingding±¨¾¯
Telegraf
goÓïÑÔ±àдµÄ²å¼þ»¯Ö¸±êÊÕ¼¯agent£¬±àÒë³ÉÒ»¸öûÓÐÍⲿÒÀÀµµÄ¶þ½øÖÆÎļþ£¬°²×°²¿ÊðºÜ±ã½Ý£¬Ö±½ÓÏÂÔØ¡¢½âѹ¾ÍÐУ¬Ä¬ÈÏÅäÖÃÎļþÔÚ$TELEGRAF_HOME/etc/telegraf/telegraf.confĿ¼Ï¡£telegraf²å¼þ·ÖΪÁ½´óÀࣺinput¡¢output¡£
input£ºÊÕ¼¯inputsÅäÖõÄËùÓÐÖ¸±ê£¬ÒÑÄÚÖõÄinput²å¼þ£ºelasticsearch¡¢redis¡¢jolokiaµÈ¡£Ò²¿ÉÖ±½ÓÊÕ¼¯ÔËÐÐagent
serverµÄ¸÷ÖÖÖ¸±ê£¬±ÈÈçÄÚ´æ¡¢cpu¡¢´ÅÅÌ¡¢´ÅÅÌIO¡¢½ø³Ì¡¢swapµÈ¡£inputÅäÖö¼ºÜ¼òÃ÷Ò×Óã¬Ò»°ãÖ»ÐèÅäÖ÷þÎñIPµØÖ·¾Í¿ÉÒÔ£¬ÈçredisÖ¸±êÊÕ¼¯ÅäÖãº
Èç¹ûûÓÐÄÚÖÃÊÕ¼¯²å¼þ£¬ÓÐÁ½ÖÖʵÏÖ·½°¸£º 
¿ª·¢input²å¼þ£¬µ«ÕâÐèÒªÓÐGOÓïÑÔ»ù´¡
½èÖúÓÚhttpjson input²å¼þ£¬¸Ã²å¼þÇëÇóhttp url£¬·µ»Øjson¸ñʽ¡£urlÅäÖÃΪ×Ô¶¨ÒåÖ¸±êÊÕ¼¯·þÎñ£¬ÔÚÖ¸±êÊÕ¼¯·þÎñÄÚʵÏÖÖ¸±êÊÕ¼¯¹¦ÄÜ£¬È»ºóÖ¸±ê·â×°³Éjson·µ»Ø»òÖ¸±êÊý¾ÝÖ±½ÓÔÚ·þÎñÄÚÈë¿â¡£ÎÒÃÇ¼à¿ØKettle
Carte¡¢spark¡¢jstormµÈÓõÄÕâÖÖʵÏÖ˼·¡£
output£º½«ÊÕ¼¯µ½µÄ¶ÈÁ¿Êý¾ÝÐòÁл¯´æ´¢£¬TelegrafÖ¸±êÓÉËĸö²¿·Ö×é³É£º¶ÈÁ¿¡¢±êÇ©¡¢×ֶΡ¢Ê±¼ä´Á¡£Ö§³ÖÒÔÏ´洢½á¹¹£ºInfluxDB¡¢Graphite¡¢JSON£¬±ÈÈç¶ÈÁ¿Êä³öµ½InfluxDBµÄÅäÖ㺠
urls£ºInfluxDB¶Ë¿Ú
database£º´æ´¢µÄÊý¾Ý¿â
retention_policy£ºÊý¾Ý±£Áô²ßÂÔ
µ÷¶ÈƵÂÊ£ºËùÓÐÖ¸±êÊÕ¼¯ÆµÂÊÊÇÒ»ÑùµÄ£¬ÔÚÅäÖÃÎļþagentÏîÏÂÅäÖãº

·þÎñÆô¶¯£º

--config£ºÅäÖÃÎļþ?
--config-directory£ºÅäÖÃÎļþĿ¼£¬Èç¹ûÓжà¸öÅäÖÃÎļþʱʹÓÃ
InfluxDB
InfluxDBÊÇΪʱ¼äÐòÁй¹½¨µÄ¸ßÐÔÄÜÊý¾Ý´æ´¢£¬ÌṩÀàSQLµÄ²éѯÓïÑÔ¡¢Ìض¨·ÖÎöʱ¼äÐòÁеŦÄÜ¡£Í¨¹ýÉèÖÃÊý¾Ý±£Áô²ßÂÔ£¬×Ô¶¯´ÓϵͳÖÐɾ³ý¹ýÆÚÊý¾Ý£¬ÊÍ·Å´æ´¢¿Õ¼ä¡£ÉçÇø°æÖ»Ö§³Öµ¥Ì¨·þÎñÆ÷£¬»áÓе¥µã¹ÊÕÏ·çÏÕ£¬ÉÌÒµ°æ°æÖ§³Ö¸ß¿ÉÓ㬶ÔÎÒÃÇÀ´Ëµ£¬µ¥»úInfluxDBÒѾÄÜÂú×ãÐèÇó¡£Ñ¡ÔñInfluxDBµÄÔÒò£º
InflluxDBÊÇÓÃGOдµÄ£¬±àÒëºóÊÇÒ»¸öÍêÈ«ÎÞÒÀÀµµÄ¶þ½øÖÆÎļþ£¬°²×°²¿Êð·Ç³£±ã½Ý£¬½âѹËõ°ü¼´¿É
¸ßÐÔÄÜʱ¼äÐòÁÐרÓÐÊý¾Ý¿â£¬¶Ôʱ¼äÐòÁеĴ洢ºÍ²éѯ¶¼×öÁËÓÅ»¯
ÀàSQL²éѯÓïÑÔ£¬½µµÍʹÓÃÃż÷
Êý¾Ý±£Áô²ßÂÔ¿ÉÒÔÓÐЧµÄ×Ô¶¯ÇåÀí¹ýÆÚÊý¾Ý
InfluxDBµÄÊý¾ÝÊÇÒÔshard groupsÐÎʽ´æ´¢£¬Ö¸¶¨Ê±¼ä¼ä¸ôµÄÊý¾Ý´æ´¢µ½Ò»¸öshard
groupsÀÕâ¸öʱ¼ä¼ä¸ô³ÆÎªshardGroupDuration¡£
·þÎñÆô¶¯£º 
influx½øÈëshellÃüÁîÐÐ: 
³£ÓÃÃüÁ
show databases£º²é¿´ËùÓÐÊý¾Ý¿â
use db_name£º½øÈëÊý¾Ý¿â
show?measurements£ºÏÔʾÊý¾Ý¿âÏÂËùÓжÈÁ¿
select *?from cpu limit 10£º²éѯһ¸ö¶ÈÁ¿µÄÊý¾Ý
TelegrafĬÈÏÊǽ«ÊÕ¼¯µÄÊý¾Ý³Ö¾Ã»¯µ½telegrafÕâ¸öÊý¾Ý¿âÏ£¬Ã¿¸öinput¶ÔÓ¦Ò»¸ö¶ÈÁ¿±í£¬±ÈÈçzookeeperµÄÖ¸±êÊý¾Ý¾ÍÔÚzookeeperÕâ¸ö¶ÈÁ¿Ï£º

²éѯÊý¾Ý±£Áô²ßÂÔ£º 
duration£ºÊý¾Ý±£Áôʱ¼ä£¬0±íʾÎÞÏÞÖÆ£¬InfluxDBĬÈÏ30·ÖÖÓ¼ì²éÒ»´Î±£Áô²ßÂÔ¡£ALTER
RETENTIONÓï¾äÐ޸ı£Áô7ÌìÊý¾Ý¡£
replicaN£ºÃ¿¸ö¶ÈÁ¿ÔÚ¼¯ÈºÀïµÄ¸±±¾Êý£¬¸±±¾±£Ö¤Êý¾Ý¸ß¿ÉÓÃÐÔ£¬ÉçÇø°æ(µ¥½Úµã)²»Ö§³Ö¸±±¾ÊýÉèÖÃ
Java Client£º
Java Client¶Ôhttp api½øÐÐÁË·â×°£¬µ×²ãÓÃRetrofit¿ò¼Ü½øÐÐhttpÇëÇó£¬ÊÇḬ̈߳²È«µÄ£¬Ö»ÐèÔÚÒ»¸öÓ¦ÓÃÖд´½¨Ò»¸öInfluxDB
Client¶ÔÏó¡£
clientµÄд²Ù×÷Ö§³Öbatch£¬ÆäʵÏÖÔÀí£º
1¡¢´´½¨ºǫ́µ¥Ï̶߳¨Ê±µ÷¶ÈÈÎÎñ£¬Ïß³Ìÿ¸ôÒ»¶¨Ê±¼ä·¢ËÍÇëÇó£º 
2¡¢Ã¿´Îwriterʱ£¬°ÑÇëÇó·Åµ½BlockingQueue¶ÓÁÐÀÈç¹û¶ÓÁдóÓÚbatchÊý£¬¾ÍÆô¶¯Ï̷߳¢ËÍÇëÇó£º

Client ApiʹÓÃÀý×Ó:
1¡¢´´½¨Êý¾Ý¿âÁ¬½Ó£º
InfluxDB influxDB= InfluxDBFactory.connect(url, user,
password);
url£ºInfluxDBµÄµØÖ·ºÍ¶Ë¿Ú£¬±ÈÈç http://localhost:8086
user/password£ºInfluxDBµÄÓû§Ãû/ÃÜÂë
2¡¢ÉèÖ÷ÃÎʵÄÊý¾Ý¿â£º
influxDB.setDatabase(database);
3¡¢Êý¾ÝдÈ룺
Point.Builder builder = Point.measurement(measurement);
builder.tag(tags);
builder.fields(fields);
influxDB.write(builder.build());
Grafana
GrafanaÊÇÒ»¸öÖ¸±ê²éѯ¡¢¿ÉÊÓ»¯¡¢¼à¿ØµÄ¿ªÔ´Ó¦Óã¬ÓÐ×ŷdz£Æ¯ÁÁµÄͼ±íºÍ²¼¾Öչʾ£¬¹¦ÄÜÆëÈ«µÄ¶ÈÁ¿ÒDZíÅ̺ÍͼÐÎ±à¼Æ÷£¬Ö§³ÖGraphite¡¢zabbix¡¢InfluxDB¡¢PrometheusºÍOpenTSDB×÷ΪÊý¾ÝÔ´¡£
GrafanaÖ÷ÒªÌØÐÔ£º
Áé»î·á¸»µÄͼÐλ¯×é¼þ£¬°üÀ¨ÈÈÁ¦Í¼¡¢Ö±·½Í¼¡¢µØÍ¼µÈ
ÔÚͬһdashboardÄÚ¿ÉÒÔ»ìºÏ¶àÖÖչʾ×é¼þ
¿ªÔ´ÉçÇøÓдóÁ¿µÄ²å¼þ¿É¹©Ñ¡Ôñ£¬°üÀ¨Êý¾ÝÔ´²å¼þ¡¢Í¼Ðβå¼þ¡¢Í¨Öª²å¼þ
¿ÉÒÔÔÚͬһ¸öÊÓͼÀïʹÓöà¸ö²»Í¬Êý¾ÝÔ´
¼òµ¥Ê¹ÓýéÉÜ£º
°²×°£º
ÏÂÔØ&½âѹ¶þ½øÖưü
ÅäÖãº
ÅäÖÃÎļþ£º$GRAFANA_HOME$/conf
ÅäÖö˿ںš¢Email¡¢µÇ¼Óû§
start:
ÃüÁ/opt/grafana/bin/grafana-server start
·ÃÎÊ:
http://ip:port
|