本篇内容介绍了“如何使用Logstash收集PHP相关日志”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
这里收集三种日志
PHP的错误日志,PHP-FPM的错误日志和慢查询日志
在php.ini中设置
error_log = /data/app_data/php/logs/php_errors.log
在php-fpm.conf中设置
error_log = /data/app_data/php/logs/php-fpm_error.log
slowlog = /data/app_data/php/logs/php-fpm_slow.log
PHP错误日志如下:
[29-Jan-2015 07:37:44 UTC] PHP Warning: PHP Startup: Unable to load dynamic library '/data/app_platform/php/lib/php/exte nsions/no-debug-non-zts-20100525/redis.so' - /data/app_platform/php/lib/php/extensions/no-debug-non-zts-20100525/redis.so : cannot open shared object file: No such file or directory in Unknown on line 0 [29-Jan-2015 07:37:44 UTC] PHP Warning: PHP Startup: Unable to load dynamic library '/data/app_platform/php/lib/php/exte nsions/no-debug-non-zts-20100525/apc.so' - /data/app_platform/php/lib/php/extensions/no-debug-non-zts-20100525/apc.so: ca nnot open shared object file: No such file or directory in Unknown on line 0 [29-Jan-2015 07:37:44 UTC] PHP Warning: PHP Startup: Unable to load dynamic library '/data/app_platform/php/lib/php/exte nsions/no-debug-non-zts-20100525/mongo.so' - /data/app_platform/php/lib/php/extensions/no-debug-non-zts-20100525/mongo.so : cannot open shared object file: No such file or directory in Unknown on line 0
PHP-FPM错误日志如下:
[30-Jan-2015 10:32:25] ERROR: unable to read what child say: Bad file descriptor (9) [30-Jan-2015 10:32:25] ERROR: unable to read what child say: Bad file descriptor (9) [30-Jan-2015 10:32:25] ERROR: unable to read what child say: Bad file descriptor (9) [30-Jan-2015 10:32:25] ERROR: unable to read what child say: Bad file descriptor (9) [30-Jan-2015 10:32:25] ERROR: unable to read what child say: Bad file descriptor (9) [10-Mar-2015 17:37:11] ERROR: unable to read what child say: Bad file descriptor (9) [10-Mar-2015 17:37:11] ERROR: unable to read what child say: Bad file descriptor (9) [10-Mar-2015 21:31:48] ERROR: unable to read what child say: Bad file descriptor (9)
PHP-FPM的慢查询日志如下:
[11-Mar-2015 16:54:17] [pool www] pid 12873 script_filename = /data//index.php [0x00007f497fa5b620] curl_exec() /data//Account.php:221 [0x00007f497fa5a4e0] call() /data/gintama_app/jidong/game_code/app/controllers/Game.php:31 [0x00007fff29eea180] load() unknown:0 [0x00007f497fa59e18] call_user_func_array() /data/library/BaseCtrl.php:20 [0x00007fff29eea470] handoutAction() unknown:0 [0x00007f497fa59400] run() /data//index.php:30 [11-Mar-2015 16:56:46] [pool www] pid 12881 script_filename = /data/index.php [0x00007f497fa5b620] curl_exec() /data//Account.php:221 [0x00007f497fa5a4e0] call() /data/Game.php:31 [0x00007fff29eea180] load() unknown:0 [0x00007f497fa59e18] call_user_func_array() /data/library/BaseCtrl.php:20 [0x00007fff29eea470] handoutAction() unknown:0 [0x00007f497fa59400] run() /data/index.php:30
添加Logstash的配置文件shipper_php-fpm.conf
input { file { type => "php_errors" path => "/data/app_data/php/logs/php_errors.log" sincedb_path => "/dev/null" # start_position => "beginning" } file { type => "php-fpm_error" path => "/data/app_data/php/logs/php-fpm_error.log" sincedb_path => "/dev/null" # start_position => "beginning" } file { type => "php-fpm_slow" path => "/data/app_data/php/logs/php-fpm_slow.log" sincedb_path => "/dev/null" # start_position => "beginning" } } filter { if [type] == "php_errors" { mutate { add_tag => ["zabbix-sender"] add_field => [ "zabbix_host","%{host}", "zabbix_item","php.errors" # "send_field","%{message}" ] } } if [type] == "php-fpm_errors"{ mutate { add_tag => ["zabbix-sender"] add_field => [ "zabbix_host","%{host}", "zabbix_item","php-fpm.error" # "send_field","%{message}" ] } } if [type] == "php-fpm_slow" { multiline { pattern => "^(\[0x|$|script_filename)" what => "previous" } mutate { add_tag => ["zabbix-sender"] add_field => [ "zabbix_host","%{host}", "zabbix_item","php-fpm.slow" # "send_field","%{message}" ] } } } output { stdout { codec => "rubydebug" } zabbix { tags => "zabbix-sender" host => "10.4.1.125" port => "10051" zabbix_sender => "/usr/local/zabbix/bin/zabbix_sender" } redis { host => "10.4.29.162" data_type => "list" key => "logstash" } }
同理添加zabbixb报警模板
“如何使用Logstash收集PHP相关日志”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。