1、调度原理
通过crontab每1分钟调度一次run_cmdb_exporter “采集启动调度文件”脚本; cmdb_exporter进程(本文cmdb_exporter进程名为:PanWeiDB_exporter_linux_amd64)不存在则每分钟自动拉起,若存在则忽略。
监控采集指标文件:cmdb_query.yaml
2、部署cmdb_exporter
2.1、创建ogexporter库和用户
--1、创建ogexporter库 create database ogexporter DBCOMPATIBILITY='PG' ENCODING = 'UTF8' LC_COLLATE = 'C' LC_CTYPE = 'C'; --panwei1.0,有DBCOMPATIBILITY参数 create database ogexporter ENCODING = 'UTF8' LC_COLLATE = 'C' LC_CTYPE = 'C'; --panwei2.0,无DBCOMPATIBILITY参数 --2、创建用户和授权 CREATE USER pwdb_exporter WITH PASSWORD 'xxxxxxxx' MONADMIN; \c ogexporter grant usage on schema dbe_perf to pwdb_exporter; grant select on pg_stat_replication to pwdb_exporter; grant create on tablespace pg_global to pwdb_exporter; grant usage on schema dbe_perf to cmdb_exporter; grant select on pg_stat_replication to cmdb_exporter; |
2.2、配置cmdb_exporter
cd /database/panweidb/ unzip exporter.zip chmod 750 -R /database/panweidb/exporter vi /database/panweidb/exporter/run_exporter
|
3、配置定时进程监测
crontab -e
*/1 * * * * source /home/omm/.bashrc; sh /database/panweidb/exporter/run_exporter >/dev/null 2>&1 & |
4、验证服务和监控数据
netstat -tulnp | grep 9187 |

curl http://192.168.129.221:9187/metrics | wc -l |

3、排错
3.0、运行用户建议同数据库运行用户
假如数据库程序的运行用户是omm,建议cmdb_exporter的运行用户也必须是omm。同时也需要检查exporter文件或者目录的属主都是omm。
3.1、加密方式参数设置是否与pg_hba.conf一样
cat $PGDATA/postgresql.conf | grep password_encryption_type |

如上可知,数据库的加密方式是“1”,即sha256或md5的方式。
cat $PGDATA/pg_hba.conf |

3.2、检查pwdb_exporter是否过期、密码错误
通过如下脚本来查询:
vi query.sh gs_ssh -c 'gsql -c "show password_effect_time"'; gsql -c " select b.usename,a.passwordtime,a.passwordtime+numtodsinterval(to_number((select setting from pg_settings where name='password_effect_time')),'DAY') as passwordexpiredtime from (select roloid,max(passwordtime) as passwordtime from pg_catalog.pg_auth_history group by roloid) a right join (select usename,usesysid from pg_user where usename='pwdb_exporter') b on a.roloid=b.usesysid;"; gsql -c "select usename,failcount,locktime,rolstatus,passwordexpired from pg_user_status s,pg_user u where s.roloid =u.usesysid and usename='pwdb_exporter'" sh query.sh |

--如上可知,pwdb_exporter正常,未过期、未锁住。
如果账号异常,可以通过尝试登入来验证pwdb_exporter是否正常:
gsql -r -p 17700 -U pwdb_exporter -W xxxxxxx --xxxxxxx为密码 |
3.3、检查日志
run_cmdb_exporter采集启动调度文件脚本中写明日志文件的保存位置,通过查看日志过滤“error”等关键字来定位问题。

举例如下:

--从日志可以很清楚看到监控用户pwdb_exporter被锁。可能是账号过期锁定,解锁即可恢复。
3.4、run_cmdb_exporter采集启动调度文件脚本有误
检查DATA_SOURCE_NAME配置ip是否正确,双引号,以及内容格式是否正确。

3.5、查看监测数据数量是否大于4000条
本次是5071条,如果小于4000,则按本章节来进一步排查问题。
curl http://192.168.129.221:9187/metrics | wc -l |

3.6、前台运行
有时因环境问题无法运行程序,此时可以在前台运行来验证cmdb_exporter包是否可用。

如下直接在前台执行命令:
./PanWeiDB_exporter_linux_amd64 --config=/database/panweidb/exporter/cmdb_query.yaml --log.level=debug --url="host=192.168.129.221 user=pwdb_exporter password=xxxxxxxx port=17700 dbname=ogexporter sslmode=disable" |

--如上,在前台直接打印日志。
4、监控指标采集异常如何分析?
首先找到监控采集指标文件,如下:
ps -ef | grep exporter |

--由上述可知为cmdb_query.yaml
举例:
通常在监控平台上面可以看到采集指标项名称(询问监控方),比如咨询到的采集指标项名称为:cmdb_backup_show;则可以通过如下命令查看指标项详情:
cat cmdb_query.yaml |grep cmdb_backup_show: -A 27 |

--通过查看上方的shell命令(注意到description: 状态值1为正常),直接在前台执行来查看结果,结果如下:

--很明显,status为0,不正常。通过dba管理员正常配置备份后再次查看,最终正常:

description: 状态值1-正常。





