×ðÁú¿­Ê±¹ÙÍøµÇ¼

Nginx»á¼ûÈÕÖ¾ÉèÖÃÖ¸ÄÏ £¬¼à¿ØÍøÕ¾»á¼ûÐÐΪ

nginx»á¼ûÈÕÖ¾ÉèÖÃÖ¸ÄÏ £¬¼à¿ØÍøÕ¾»á¼ûÐÐΪ

NginxÊÇÒ»¸ö¸ßÐÔÄܵÄWebЧÀÍÆ÷ £¬ÆÕ±éÓÃÓڴ¾²Ì¬»ò¶¯Ì¬ÍøÕ¾ ¡£ÔڴÍøÕ¾µÄÀú³ÌÖÐ £¬ÎÒÃǾ­³£ÐèÒª¶ÔÍøÕ¾µÄ»á¼ûÐÐΪ¾ÙÐмà¿ØºÍÆÊÎö ¡£NginxÌṩÁËÇ¿Ê¢µÄ»á¼ûÈÕÖ¾ÉèÖù¦Ð§ £¬Äܹ»×ÊÖúÎÒÃÇʵÏÖ¶ÔÍøÕ¾µÄ»á¼ûÐÐΪµÄ¼à¿ØºÍÆÊÎö ¡£±¾ÎĽ«ÏÈÈÝÔõÑùÉèÖÃNginxµÄ»á¼ûÈÕÖ¾ £¬ÒÔ¼°ÔõÑùʹÓÃÈÕÖ¾ÆÊÎö¹¤¾ß¾ÙÐÐÍøÕ¾»á¼ûÐÐΪµÄ¼à¿Ø ¡£

ÔõÑùÉèÖÃNginxµÄ»á¼ûÈÕÖ¾£¿

NginxµÄ»á¼ûÈÕÖ¾ÉèÖúÜÊǼòÆÓ £¬Ö»ÐèÒªÔÚNginxµÄÉèÖÃÎļþÖÐÌí¼ÓÒ»ÐÐÈÕÖ¾ÉèÖü´¿É ¡£Í¨³£ÇéÐÎÏ £¬NginxµÄÉèÖÃÎļþλÓÚ/etc/nginx/nginx.conf ¡£ÏÂÃæÊÇÒ»¸ö¼òÆӵĻá¼ûÈÕÖ¾ÉèÖõÄʾÀý£º

http {
    ...
    log_format access '$remote_addr - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log access;
    ...
}

µÇ¼ºó¸´ÖÆ

ÒÔÉÏÉèÖýç˵ÁËÒ»¸öÃûΪaccessµÄÈÕÖ¾ÃûÌà £¬²¢½«accessÈÕÖ¾Êä³öµ½/var/log/nginx/access.logÎļþ ¡£Í¨¹ýÕâ¸öÈÕÖ¾ÉèÖà £¬ÎÒÃÇ¿ÉÒÔ»ñÈ¡µ½¿Í»§¶ËµÄIPµØµã¡¢»á¼ûʱ¼ä¡¢ÇëÇóµÄURL¡¢HTTP״̬Âë¡¢·¢Ë͵ÄÊý¾ÝÁ¿¡¢ÈªÔ´Ò³ÃæURL¡¢¿Í»§¶ËµÄUser-AgentÐÅÏ¢ºÍÊðÀíЧÀÍÆ÷µÄIPµØµã ¡£

ÔõÑùʹÓÃÈÕÖ¾ÆÊÎö¹¤¾ß¾ÙÐÐÍøÕ¾»á¼ûÐÐΪµÄ¼à¿Ø£¿

ÔÚÉèÖÃÁË»á¼ûÈÕÖ¾Ö®ºó £¬ÎÒÃǾͿÉÒÔʹÓÃÈÕÖ¾ÆÊÎö¹¤¾ß¶ÔÍøÕ¾µÄ»á¼ûÐÐΪ¾ÙÐмà¿ØºÍÆÊÎö ¡£ÏÂÃæÏÈÈÝÁ½ÖÖ³£ÓõÄÈÕÖ¾ÆÊÎö¹¤¾ß£ºAWStatsºÍELK Stack ¡£

AWStatsÊÇÒ»¸öÃâ·ÑµÄÈÕÖ¾ÆÊÎö¹¤¾ß £¬¿ÉÒÔÌìÉúÏêϸµÄͳ¼Æ±¨¸æ ¡£Ê×ÏÈ £¬ÎÒÃÇÐèҪװÖÃAWStats²¢¶ÔÆä¾ÙÐÐÉèÖà ¡£ÔÚUbuntuϵͳÉÏ £¬¿ÉÒÔʹÓÃÒÔÏÂÏÂÁî×°ÖÃAWStats£º

sudo apt-get install awstats

µÇ¼ºó¸´ÖÆ

×°ÖÃÍê³Éºó £¬ÐèÒª¶ÔAWStats¾ÙÐÐÉèÖà ¡£ÔÚAWStatsÉèÖÃÎļþÖÐ £¬ÐèÒªÖ¸¶¨Nginx»á¼ûÈÕÖ¾µÄλÖúÍÎļþÃûÌà ¡£È·±£ÉèÖÃÎļþÖÐ׼ȷÉèÖÃÁËLogFormat¡¢LogFileºÍSiteDomain²ÎÊý ¡£ÉúÑÄÉèÖÃÎļþ²¢Í˳ö ¡£

È»ºó £¬ÎÒÃÇÐèҪΪÿ¸öÍøÕ¾½¨ÉèÒ»¸öÉèÖÃÎļþ ¡£ÔÚAWStatsµÄÉèÖÃÎļþĿ¼£¨Ä¬ÒÔΪ/etc/awstats£©ÖÐ £¬¸´ÖÆawstats.model.confÎļþ £¬²¢½«ÆäÖØÃüÃûΪÍøÕ¾ÓòÃûµÄÉèÖÃÎļþ£¨ºÃ±Èawstats.example.com.conf£© ¡£ÔÚÕâ¸öÎļþÖÐ £¬ÉèÖÃLogFile²ÎÊýΪNginx»á¼ûÈÕÖ¾µÄλÖà ¡£

×îºó £¬ÎÒÃÇ¿ÉÒÔʹÓÃÏÂÃæµÄÏÂÁîÌìÉúͳ¼Æ±¨¸æ£º

sudo /usr/lib/cgi-bin/awstats.pl -config=example.com -update

µÇ¼ºó¸´ÖÆ

ÆäÖÐexample.comÐèÒªÌ滻ΪÏÖʵµÄÍøÕ¾ÓòÃû ¡£

ELK StackÊÇÒ»Ì×ÓÃÓÚÈÕÖ¾ÆÊÎöºÍËÑË÷µÄ¹¤¾ß×éºÏ £¬°üÀ¨Elasticsearch¡¢LogstashºÍKibana ¡£Ê×ÏÈ £¬ÎÒÃÇÐèҪװÖúÍÉèÖÃElasticsearchºÍKibana £¬¿ÉÒԲο¼¹Ù·½Îĵµ¾ÙÐÐ×°ÖúÍÉèÖà ¡£È»ºó £¬ÎÒÃÇÐèÒªÉèÖÃLogstashÀ´´¦ÀíNginx»á¼ûÈÕÖ¾ £¬²¢½«Æä·¢Ë͵½Elasticsearch ¡£

ÔÚLogstashµÄÉèÖÃÎļþÖÐ £¬ÎÒÃÇÐèÒª½ç˵ÊäÈëºÍÊä³ö ¡£ÏÂÃæÊÇÒ»¸ö¼òÆÓµÄLogstashÉèÖÃÎļþʾÀý£º

input {
  file {
    path => "/var/log/nginx/access.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "nginx-access-%{+YYYY.MM.dd}"
  }
}

µÇ¼ºó¸´ÖÆ

ÒÔÉÏÉèÖý«Nginx»á¼ûÈÕÖ¾×÷ΪÊäÈë £¬Ê¹ÓÃGrokģʽƥÅäÈÕÖ¾ÃûÌà £¬È»ºó½«´¦ÀíºóµÄÈÕÖ¾·¢Ë͵½ElasticsearchÖÐ ¡£

ÖØÆôLogstashÒÔʹÉèÖÃÉúЧ £¬²¢Æô¶¯ElasticsearchºÍKibana ¡£È»ºó £¬ÎÒÃÇ¿ÉÒÔÔÚKibanaÖн¨ÉèÒDZí°åÀ´Õ¹Ê¾ÍøÕ¾µÄ»á¼ûÐÐΪͳ¼ÆÐÅÏ¢ ¡£

×ܽá

±¾ÎÄÏÈÈÝÁËÔõÑùÉèÖÃNginxµÄ»á¼ûÈÕÖ¾ÒÔ¼°ÔõÑùʹÓÃAWStatsºÍELK StackµÈÈÕÖ¾ÆÊÎö¹¤¾ß¾ÙÐÐÍøÕ¾»á¼ûÐÐΪµÄ¼à¿Ø ¡£Í¨¹ý¶ÔÍøÕ¾»á¼ûÈÕÖ¾µÄÆÊÎö £¬ÎÒÃÇ¿ÉÒÔÏàʶÍøÕ¾µÄ»á¼ûÇéÐκÍÓû§ÐÐΪ £¬ÎªÓÅ»¯ÍøÕ¾ÐÔÄܺÍË¢ÐÂÓû§ÌåÑéÌṩÖ÷Òª²Î¿¼ ¡£Ï£Íû±¾ÎĶÔÄúÔÚ¼à¿ØÍøÕ¾»á¼ûÐÐΪ·½ÃæµÄÊÂÇéÓÐËù×ÊÖú ¡£

ÒÔÉϾÍÊÇNginx»á¼ûÈÕÖ¾ÉèÖÃÖ¸ÄÏ £¬¼à¿ØÍøÕ¾»á¼ûÐÐΪµÄÏêϸÄÚÈÝ £¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí £¬°æȨÕùÒéÓë±¾Õ¾ÎÞ¹Ø £¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±¹ÙÍøµÇ¼ÂËÓÍ»úÍø¹Ù·½Ì¬¶È £¬Çë¶ÁÕß½ö×ö²Î¿¼ ¡£±¾ÎĽӴýתÔØ £¬×ªÔØÇë˵Ã÷À´ÓÉ ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢ £¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢ £¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼ʵʱÐÞÕý»òɾ³ý ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎå £¬9:30-18:30 £¬½ÚãåÈÕÐÝÏ¢

QR code
ÍøÕ¾µØͼ