一、开启相关日志
修改后alter一定要重启,才会修改
pg_ctl restart -D /usr/local/pgsql/data -l logfile
按照下面的方法一个个修改。
log_destination = 'csvlog' # 可选
logging_collector = on
log_min_duration_statement = 0
log_line_prefix = '%t [%p]: user=%u,db=%d,app=%a,client=%h '
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
log_autovacuum_min_duration = 0
log_error_verbosity = default
lc_messages='C'
log_filename = 'postgresql-%Y%m%d_%H%M%S.log' # 定义日志文件的名称
log_file_mode = 0600
二、源码编译按照pgbadger
-
下载源码安装包
下载地址:https://github.com/darold/pgbadger/releases
说明文档:https://github.com/darold/pgbadger -
解压,进入pgbadger目录
cd /home/postgres/pgbadger-12.1/
- 编译安装
perl Makefile.PL
出现Writing Makefile for pgBadger,成功进入下一步!
make && make install
三、安装httpd、php
- 安装httpd
yum install httpd
chkconfig httpd on --添加到自动启动
- 启动服务
service httpd start
这里报错
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
解决方法
添加apache用户
groupadd apache
#或
useradd -g apche apache
【知识扩展】
这个错搜的解决方案原因都是端口号冲突,更改80端口号。可是我的端口号并不冲突,未被占用。于是在查找资料过程中,发现通过日志排查错误,于是这里记录一下。
- 无论什么原因导致某服务启动失败,要学会看日志,日志一般都会有详细提示。
查看日志方式有二
- journalctl -xe
- 查看messages(下图截图采用此方法)
方式一[journalctl]
systemctl status httpd.service 或journalctl -xe查看详细
方式二[messages]
messages是系统日志,启动报错这里会有提示,tail -f 指动态查看
cd /var/log
tail -f messages
重新打开一个新的终端窗口,重启或启动httpd服务,输入
systemctl restart httpd
或者
service httpd start
回到第一个日志窗口看最新日志,找到报错信息如下,最后解决。
3. 继续安装php
yum install php
此时,/var目录下多了www目录
四、测试使用
pgbadger /usr/local/pgsql/data/log/postgresql-2023-05-22_092738.log -o pgreport.html
打开html
具体说明查看官方网站https://pgbadger.darold.net/
注:我忘记我之前是什么操作导致/usr/local/pgsql/data/log/下有log日志了,等我想起来再更新。
作者有话说
今天就先到这里,目前进度是成功安装好pgbadger,但还存在一些问题没有弄明白,如pgbadger具体使用用法等,如根据csv如何对应打开html?且打开的html没有数据,还得看看什么操作才会触发有数据浮动?
下篇估计是详细探究版:
- 需要确认一下具体使用用法,命令操作以及显示的html数据浮动问题
- check一下关于pgbadger开源实现这个功能的代码量有多少?
- 调研一下perl语言是否好上手?写成c++语言是否好写?
- check一下关于perl语言实现的pgbadger是如何与pg适配的?我应如何与opengauss适配呢?
- check关于pgbadger组件,在pg内核哪个部分进行的融合?找到接口,og效仿一下
- 调研日志分析,评估整体工作量。
大概下次需要check这么多样子 ?
s