zabbix监控postgreSQL最简单方式(成功应用)
来源:互联网 发布:淘宝差评能追加评价吗 编辑:程序博客网 时间:2024/05/29 12:48
采用zabbix agent代理的模式来做这个事情
1、cd zabbix_agentd.d,新增自定义key
vi userparameter_pgsql.conf
UserParameter=postgresql.get[*],zabbix目录/alertscripts/pgsqlMonitor.sh $1 $2
当然要让这个配置生效,必须修改zabbix_agentd.conf文件,设置Include=zabbix目录/zabbix_agentd.d/*.conf
2、cd alertscripts
vi pgsqlMonitor.sh
#!/bin/sh ####################################### # Name:pgsqlMonitor.sh # # Checks PostgreSQL activity . # # Author:akqjxx # # Version: 1.0 # ####################################### zapostver="1.0" rval=0 sql="" case $1 in 'totalsize') # 查数据库总大小(占用磁盘空间) sql="select sum(pg_database_size(datid)) as total_size from pg_stat_database" ;; 'db_cache') # 缓存 if [ ! -z $2 ]; then shift sql="select cast(blks_hit/(blks_read+blks_hit+0.000001)*100.0 as numeric(5,2)) as cache from pg_stat_database where datname = '$2'" fi ;; 'db_success') # 成功率 if [ ! -z $2 ]; then shift sql="select cast(xact_commit/(xact_rollback+xact_commit+0.000001)*100.0 as numeric(5,2)) as success from pg_stat_database where datname = '$2'" fi ;; 'server_processes') #数据库所有连接数 sql="select sum(numbackends) from pg_stat_database" ;; 'tx_commited') #提交数 sql="select sum(xact_commit) from pg_stat_database" ;; 'tx_rolledback') #回滚数 sql="select sum(xact_rollback) from pg_stat_database" ;; 'db_size') # 查数据库总大小(占用磁盘空间) if [ ! -z $2 ]; then shift sql="select pg_database_size('$2')" #as size" fi ;; 'db_connections') # 当前连接数 if [ ! -z $2 ]; then shift sql="select numbackends from pg_stat_database where datname = '$2'" fi ;; 'max_connections') # 最大连接数 if [ ! -z $2 ]; then shift sql="show max_connections" fi ;; 'db_returned') # 呈现这些数据要返回给客户的端的行数 if [ ! -z $2 ]; then shift sql="select tup_returned from pg_stat_database where datname = '$2'" fi ;; 'db_fetched') # 呈现给用户的行数 if [ ! -z $2 ]; then shift sql="select tup_fetched from pg_stat_database where datname = '$2'" fi ;; 'db_inserted') # 插入记录数 if [ ! -z $2 ]; then shift sql="select tup_inserted from pg_stat_database where datname = '$2'" fi ;; 'db_updated') # 更新记录数 if [ ! -z $2 ]; then shift sql="select tup_updated from pg_stat_database where datname = '$2'" fi ;; 'db_deleted') # 删除记录数 if [ ! -z $2 ]; then shift sql="select tup_deleted from pg_stat_database where datname = '$2'" fi ;; 'db_commited') # 提交记录数 if [ ! -z $2 ]; then shift sql="select xact_commit from pg_stat_database where datname = '$2'" fi ;; 'db_rolled') # 回滚记录数 if [ ! -z $2 ]; then shift sql="select xact_rollback from pg_stat_database where datname = '$2'" fi ;; 'version') #数据库版本 sql="version" ;; 'zapostver') # echo "$zapostver" exit $rval ;; *) echo " 参数错误......." exit $rval ;; esac if [ "$sql" != "" ]; then if [ "$sql" == "version" ]; then psql --version|head -n1 rval=$? else /usr/local/pgsql/bin/psql -h 主机 -p 端口 数据库 用户名 -t -c "$sql" rval=$? fi fi if [ "$rval" -ne 0 ]; then echo "错误"fiexit $rval## end pgsqlMonitor.sh
3、当然,在最后psql连接数据库的地方没有数据库密码,这个时候需要单独做配置
切换到zabbix用户下su - zabbixvi .pgpass 加入下面的数据库配置ip:端口:数据库:用户名:密码
4、最后一步:
使用
zabbix_get -s ip -p 10050 -k "postgresql.get[totalsize]" 如果返回结果,且不报错,说明一切ok。
5、如果要取数据库其他数据,只需要在上面的shell脚本中新增case即可。
6、说明,上面的shell脚本部分非原创,在什么网站上抄袭的,已经记不得了。
阅读全文
0 0
- zabbix监控postgreSQL最简单方式(成功应用)
- Zabbix监控PostgreSQL
- zabbix监控mysql最简单的方法
- PostgreSQL的监控三(zabbix)
- PostgreSQL 监控脚本[from zabbix.org]
- 企业应用监控利器-ZABBIX
- 企业应用监控利器-ZABBIX
- Zabbix 监控软件简单安装
- Zabbix 监控软件简单安装
- zabbix监控vmware的数据结构、业务逻辑和最简单原型代码
- Zabbix监控组件介绍、工作原理、监控方式、监控概念
- 用Zabbix通过JMX方式监控weblogic
- zabbix监控tomcat两种配置方式
- 用Zabbix通过JMX方式监控tomcat
- Zabbix 使用 JMX 方式监控 Tomcat
- Zabbix支持的主要监控方式
- Zabbix支持的主要监控方式
- 利用zabbix 监控mysql --简单翻译自zabbix w
- storm
- JS正则表达式验证数字非常全
- 人机混合智能的哲学思考
- 破冰!悬镜安全95后小伙伴在贵阳网络安全攻防演练中斩获佳绩!
- Python薪资又涨了,这可咋办啊!
- zabbix监控postgreSQL最简单方式(成功应用)
- PostgreSQL 数据操作和查询(四)
- 总结一下JS数组、字符串的方法
- 现代软件工程_团队项目_阿尔法阶段_前端及后端新增功能_v1.0.1_2017.11.29
- 将echarts图调成响应式的代码
- cs/bs 的区别与作用
- Tensorflow1.4.0实现条件随机场(CRF)
- Windows通过计划任务定时执行bat文件
- 实现图的邻接矩阵和邻接表的存储