本篇內容介紹了“如何使用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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。