本文主要介绍在centos7 下通过docker安装sentry 1. docker 安装(方法一) 1.确保yum packages 是最新的 $ sudo yum update 2.添加yum repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ smtp \ --env SENTRY_SECRET_KEY=${SENTRY_SECRET_KEY} \ --name sentry-cron \ sentry-onpremise run cron 7.
php.ini中日志相关的配置 ;将错误输入到日志文件 (服务器指定的log,stderr或者以下error_log指定的位置) log_errors = On ;错误日志文件位置 error_log = /tmp/php-error.log ;是否将错误打印出来(程序中的错误,如代码语法错误) display_errors = Off ;Note: ;尽管 display_errors 也可以在运行时设置 (使用 ini_set()), 但是脚本出现致命错误时任何运行时的设置都是无效的。 ;PHP启动过程中的错误信息 display_startup_errors = Off ;错误日志级别 ;开发环境可以考虑开机所有级别错误 error_reporting = E_ALL 注: nginx
简介 sentry 是一个开源的实时错误监控的项目,它支持很多端的配置,包括 web 前端、服务器端、移动端及其游戏端。 支持语言多 image.png 部署Sentry Docker 19.03.6+ Compose 1.24.1+ 4 CPU Cores 8 GB RAM 20 GB Free Disk Space 实时日志平台 (错误日志收集) image.png 部署docker mkdir /etc/docker yum -y localinstall containerd.io-1.2.10-3.2.fc30.x86 _64.rpm docker-ce-cli-19.03.6-3.fc30.x86_64.rpm docker-ce-19.03.1-3.el7.x86_64.rpm tee /etc/docker/daemon.json 3 hours ago 401MB getsentry/snuba <none> 4dcd02402a7c
DJango错误日志生成 setting.py设置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters ,日志文件名,日志保存目录必须手动创建,注:这里的文件路径要注意BASE_DIR 'filename': os.path.join(os.path.dirname(BASE_DIR # 日志文件的数量,设置最大日志数量为10 'backupCount': 10, # 日志格式:详细格式 'formatter': 'verbose', # 编码 'encoding': 'utf-8' }, }, # 日志对象 'loggers 'level': 'INFO', 'handlers': ['console', 'file'], 'propagate': True, # 是否让日志信息继续冒泡给其他的日志处理系统
日志描述:用户密码错误。 解决方案: # 设置密码为panda config set requirepass panda # 使用密码 auth panda 日志输出 OK ,便成功。 日志描述:(错误)misconf redis被配置以保存数据库快照,但misconf redis目前不能在硬盘上持久化。用来修改数据集合的命令不能用,请使用日志的错误详细信息。
类
using System.Text;
using System.IO;
namespace命名空间
{
public class Log
{
#region 记录错误日志 ///
错误日志支持INSERT, UPDATE, MERGE, and DELETE这些操作。 另一个可选参数,是reject limit,定义了INSERT操作报错前,日志表记录最大值,可以设置为UNLIMITED,默认只是0,意思是碰见第一个错误,就记录日志表,并且回滚语句。 以下操作错误,不会记录日志, Violated deferred constraints. 错误日志表,可以记录DML一些操作错误,当然有一些限制。 2. 错误日志表,有些数据类型不支持,可以使用标签,以及reject limit设置一些错误记录的属性。
错误日志告警实战 1.1. 需求 为了更方便的实时了解系统报错情况,我开始寻找告警解决方案 1.2. 思路 1.2.1. 不差钱的方案 如果不差钱,更系统更完善的解决方案,我首先想到的是CAT,它不但能实现错误告警,且更加智能,告警的错误间隔,错误告警内容,QPS告警等等方式更多样化,还能查看接口QPS流量等等,奈何经费有限 到这一步,只要我们打印log.error日志就会把错误日志都发到指定邮件上了,但这样肯定还不够,我们需要配合@ControllerAdvice可以做到只要报异常,就可以统一进行日志邮件发送,同时我们又会有特殊的需求 ,比如个别的错误日志频繁且不可避免,而且不需要处理,那么我们可以稍稍做些扩展,定义个接口注入,在业务代码中去处理是否不需要发送错误邮件 1.5. 总结 至此已经完全实现错误告警方案,后续就是优化工作了,实现效果如下 错误邮件列表 ? 错误邮件内容 ?
java 时区错误 解决方法 问题 参考链接 电脑上所有 java 应用、项目时间都不对。 核心业务系统启动后日志时间和当前系统时间差11个小时30分钟,电脑用的是云桌面系统有严格的权限控制,找相关人和同事弄了几次没好;都知道是时区问题,但没注意到系统桌面右下角的提示。 看testTimeZone方法,断点进去后最后到一个关键方法getSystemTimeZoneID() (下面的图片是修改正确后的拍照截图,没拍错误的) getSystemTimeZoneID 至于为什么错误的会是 user.timezone=America/Bahia 等找到完整的 native 方法 getSystemTimeZoneID() 搭个环境,再打断点看看。 参考链接 https://www.jb51.net/os/windows/293509.html http://www.xitongtiandi.net/wenzhang/win7/2015-10-05
存储过程 sp_readerrorlog 作用:查询mssql的错误日志 查看AdventureWorks2019的全部errlog use master; exec sp_readerrorlog view=sql-server-ver16 存储过程 sp_cycle_errorlog 作用: 清空错误日志 EXEC sp_cycle_errorlog ; -- 再次查询错误日志,可以看到只剩
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。 对于存在MySQL复制的情形下,从复制服务器将维护更多日志文件,被称为接替日志。 2、错误日志 错误日志是一个文本文件。 错误日志记录了MySQL Server每次启动和关闭的详细信息以及运行过程中所有较为严重的警告和错误信息。 可以用--log-error[=file_name]选项来开启mysql错误日志,该选项指定mysqld保存错误日志文件的位置。 ,错误日志文件的格式,通常如下: 时间 [错误级别] 错误信息 有些日志信息不一定包含错误级别
常见的日志轮转配置问题及解决方案2.1 配置文件语法错误问题:日志轮转配置文件语法错误,导致配置无法生效。解决方案:检查并修复配置文件语法。 示例:调整轮转频率为每天:# /etc/logrotate.conf dailyrotate 7compressdelaycompressmissingoknotifemptycreate 640 root rotate 7 compress delaycompress missingok notifempty create 640 root adm }2.3 轮转次数设置不当问题 /$(date +%Y%m%d).tar.gz /var/log/ # 删除旧的备份文件(保留最近7天的备份)find $backup_dir -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;保存脚本并运行:chmod +x backup_logs.sh .
// MySQL错误日志激增案例 // 今天中午,搭建好的一套主从环境中磁盘报警,登陆到相关环境,发现是MySQL的错误日志量非常大,于是使用tail -f命令查看了日志文件,发现该错误日志增长的速度非常快 : [Note] Slave SQL for channel '': Worker failed executing transaction '6d2f744e-XXXX-11e8-83f2-7cd30aeb120c log_warnings 为1, 表示告警信息写入错误日志。 log_warnings 大于1, 表示记录各类告警信息,包含一些连接被拒绝或者异常终止的连接信息。 官方文档上写到:该参数表示了服务器将错误、警告和注释消息写入错误日志的详细程度。 (errors only), 2 (errors and warnings), 3 (errors, warnings, and notes) 看到这里,答案就比较明显了,该参数默认值是3,往错误日志里面写入错误
有时候启动或操作sap会出现故障,只是察看sap用户当前目录下的日志文件可能不得要领,此时有必要察看work目录下的一些trace. 以Linux系统为例,其他的也差不多。 有个简单的方法就是察看这些文件的修改时间,如果是错误发生时被更新的,那就有关了。 ll -t 可以排序这些文件。 比如我这回碰到说SCS01启动失败,察看这个更新的文件中有一个dev_ms.new, 有如下错误信息 MsSInit died: address in use 可以看到这个MS启动时绑定port失败,说已经被用了
语法:error_log file level ; # error_log 是关键字,file 是保存错误日志的文件路径,level 是错误日志级别 位置:错误日志可以配置在 Main 区块, 也可以配置在虚拟主机配置文件中 日志级别:debug | info | notice | warn | error | crit | alert | emerg ,级别越高,记录的信息越少 ?
错误日志(Error log) 慢查询日志(Slow query log) 二进制日志 查询日志 二、错误日志详解:MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL 【查看MySQL数据库错误日志存放的位置】 ? 三、慢查询日志详解:MySQL慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指SQL语句运行时间超过long_query_time值的SQL,则会被记录到慢查询日志文件中 慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表中,当然,这些情况你必须得一个一个来手动设置才行。 【查看MySQL数据库默认的阀值时间】 ? 更该慢查询日志的存储方式,因为默认是将慢查询日志记录到文件类型中的,如果你想将这些日志记录到数据表中,则可以通过如下设置。 【查看慢查询日志的默认存储方式】 ?
常见的日志有以下几个: 1、错误日志(error log); 2、慢查询日志(slow query log); 3、二进制日志(binlog); 4、查询日志(log); 二、错误日志 1、官方介绍文档 : https://dev.mysql.com/doc/refman/5.7/en/error-log.html 2、MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL 可以通过命令查看MySQL错误日志文件位置: mysql> show variables like 'log_error'\G; ? 查看如下: ? 慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。 7、更改慢查询的存储方式 首先,通过命令查看日志的默认存储方式: mysql> show variables like 'log_output'\G; ?
/var/log/audit/audit.log : 默认日志路径 1、监控文件或者目录的更改 auditctl -w /etc/passwd -p rwxa -w path : 指定要监控的路径,上面的命令指定了监控的文件路径 2、查找日志ausearch -a number #只显示事件ID为指定数字的日志信息,如只显示926事件:ausearch -a 926 -c commond #只显示和指定命令有关的事件,如只显示rm 命令产生的事件:auserach -c rm -i #显示出的信息更清晰,如事件时间、相关用户名都会直接显示出来,而不再是数字形式 -k #显示出和之前auditctl -k所定义的关键词相匹配的事件信息 3、日志字段说明
function makeErrorLog($filename,$errormsg) { $fp = fopen($filename,'a');//模式是写入方式打开 $str = "错误日期 ==错误内容:". ; } $sql = "select * fro1m voto";//首先数据库要链接成功,sql语句错误才行哦 $result = mysql_query($sql); $arr = mysql_fetch_assoc($result); if($arr){ print_r($arr); }else{ makeErrorLog('conn.log','SQL语句执行错误
---OceanBase 运行时会产生很多各种级别的日志,如果出现了错误,想要从数量繁多的错误日志中定位到错误原因,是件不太容易的事。 错误日志是我们定位错误原因的主要途径,本文我们就来聊聊怎么从 OceanBase 错误日志中找到我们想要的错误信息。1. WARN log_user_error_and_warn (ob_rpc_proxy.cpp:300) [13567][2307][YB420ABA3C91-0005E98FC5C48785] [lt=7] 小节可以看到,根据错误码或者错误信息也能过滤出很多错误日志,为什么还要多此一举,再根据 trace_id 查找错误日志? 如果能够在每条错误日志中记录触发打印当前日志的方法的调用层级,我们运维过程中就能够快速找到产生错误的方法,从而提升定位错误原因的效率。