Laravel、Lumen简单的sentry使用

翟鹏
2023-12-01

Laravel、Lumen简单的sentry使用

最近换了家公司,使用的PHP框架从yii2换成了Laravel,由于新公司是个初创公司,一些基本的运维工具还没有搭建起来,由于以前使用sentry关注线上异常成了习惯,没有了很不习惯,决定自己动手搭建一个:

sentry基本搭建

我是在centos上面搭建的,基本都是centos的命令,其他系统仅作参考或自行百度,sentry搭建服务器的内存要够,不然你执行migration的内存不足,程序崩了一脸懵逼,完全不知道为什么(我在搭建开始的时候是用的阿里的1核1G的,一开始执行migration一直中断,由于不知道什么原因,一直重试安装,装了两天,后来一个朋友看了下觉得大概是内存不足。。。。后来把内存升级到4G就好了,我现在用的是1核2G的服务器,加了4G的SWAP已经是OK的了,http://115.159.59.248:9000(1109563194@qq.com,123456),有兴趣的可以玩一玩)

安装步骤:
  • 第一步、安装docker,验证是否安装成功 (可以自行百度)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache fast

yum -y install docker-ce

systemctl start docker

docker run hello-world
  • 第二步、安装python、docker-composer
yum install epel-release

yum  install -y python-pip

pip  install docker-compose
# python2.7 安装这个,否则会报语法错误
pip install docker-compose==1.22.0
  • 第三步、安装git、拉取代码
yum install git

git clone git@github.com:getsentry/onpremise.git
  • 第四步、安装sentry(进入到onpremise目录、直接cat README.md根据里面的命令行直接执行就好了,命令如下)

1、在执行 docker-compose xxxx 的命令的时候记得 systemctl start docker
2、执行 docker-compose run --rm web config generate-secret-key 的命令后生成一个密钥,需要复制到 docker-composer.yml 文件中
3、在23行:SENTRY_SECRET_KEY: ‘’ 这个里面,然后继续其他的命令
4、执行 docker-compose run --rm web upgrade 有几百条 migration,然后会让你填邮箱和密码,这个是初始登录的账号密码,如果没有正常执行完,就是内存不够了(试试加SWAP,或者升级机器)
5、执行 docker-compose up -d 这个命令是启动sentry

mkdir -p data/{sentry,postgres}

docker-compose build

docker-compose run --rm web config generate-secret-key

docker-compose run --rm web upgrade

docker-compose up -d
  • 第五步、laravel的配置

直接在新建项目的地方选择laravel,按照里面的描述,把代码复制进你的laravel项目里面就可以了

  • 问题:sentry邮件发送暂时还没有解决,解决了会在这里继续补充的,如果有解决的同学,也可以教教我

Laravel的Log 打印在sentry上

暂时就写了大概这么个方法,把warning记录到sentry上

class LogHelper
{
    public static function warning($message, $params = [], $tack = false) {
        if (app()->bound('sentry')) {
            app('sentry')->captureMessage($message, $params, 'warning', $tack);
        }
        Log::warning($message);
    }
}

sentry的Client类

主要会调用的两个方法 captureMessage、captureException
captureMessage 上报一个string的字符串
captureException 上报一个异常
具体的在 vendor/sentry/sentry/lib/Raven/Client.php 这个类中查看

添加SWAP

https://blog.csdn.net/loongwong2011/article/details/52712671

 类似资料: