zabbix监控postgresql

参考https://blog.csdn.net/ygqygq2/article/details/60766393#4-%E5%AF%BC%E5%85%A5%E7%9B%91%E6%8E%A7%E6%A8%A1%E6%9D%BF

https://www.zabbix.com/download?zabbix=3.4&os_distribution=centos&os_version=7&db=MySQL

https://www.zabbix.com/download?zabbix=3

.4&os_distribution=centos&os_version=7&db=PostgreSQLhttps://www.zabbix.com/documentation/3.4/manual/installation/install#installing_frontend

RedHat/CentOS7(x86_64) http://cavaliercoder.com/libzbxpgsql/download/

wget http://cdn.cavaliercoder.com/libzbxpgsql/yum/zabbix32/rhel/7/x86_64/libzbxpgsql-1.1.0-1.el7.x86_64.rpm

zabbix监控postgresql_第1张图片

1、安装 zabbix

[root@vlnx107001 ~]# wget  https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm

[root@vlnx107001 ~]# rpm -ivh  https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

[root@vlnx107001 ~]# yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent -y

2、创建用户和初始化库

[postgres@vlnx107001 ~]$ createuser --pwprompt  zabbix

密码:zabbix

[postgres@vlnx107001 ~]$ createdb -O zabbix zabbix

zabbix监控postgresql_第2张图片

#配置 pg白名单 并重新加载

[postgres@vlnx107001 ~]$ /usr/pgsql-9.6/bin/pg_ctl -D /var/lib/pgsql/9.6/data/ reload

 

 

#导入初始架构和数据。

[root@vlnx107001 ~]# zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix /usr/pgsql-9.6/bin/psql zabbix

zabbix监控postgresql_第3张图片

 

3、为Zabbix服务器配置服务器,编辑配置文件

[root@vlnx107001 conf.d]#  vim /etc/zabbix/zabbix_server.conf

DBPassword=zabbix

DBHost=127.0.0.1

DBName=zabbix

DBUser=zabbix

 

** 优化

StartPollers=100

首先把这个主动收集数据进程减少,原来开到700多

 

StartTrappers=200

然后把这个负责处理Agentd推送过来的数据的进程开大一些,就可以了

 

4、为Zabbix前端配置PHP,配置php日期区域

[root@vlnx107001 conf.d]#  vim /etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai

zabbix监控postgresql_第4张图片

 

5、开启Zabbix Server和服务器和代理进程

[root@vlnx107001 conf.d]# systemctl restart zabbix-server zabbix-agent httpd

[root@vlnx107001 conf.d]# systemctl enable zabbix-server zabbix-agent httpd

[root@vlnx107001 conf.d]# ps -ef |grep zabbix

 

zabbix监控postgresql_第5张图片

 

systemctl enable zabbix-server //设置开机启动zabbix-server

systemctl enable httpd //设置开机启动http

修改防火墙添加 

[root@vlnx107001 zabbix]# firewall-cmd --permanent --zone=public --add-port=22/tcp;

[root@vlnx107001 zabbix]# firewall-cmd --permanent --zone=public --add-port=80/tcp;

[root@vlnx107001 zhaowzh]# firewall-cmd --permanent --zone=public --add-port=10050/tcp; #Agent的默认端口

[root@vlnx107001 zabbix]# firewall-cmd --permanent --zone=public --add-port=10051/tcp; #Server的默认端口

[root@vlnx107001 zhaowzh]# firewall-cmd --reload;

Agent采用被动式(默认端口10050)

Server主动连接Agent

Agent采用主动或Trapper方式,会连接Server的10051端口

## 重启agent服务

systemctl enable zabbix-agent.service

systemctl restart zabbix-agent.service

 

#打开浏览器配置WEB界面

http://IP/zabbix (http://172.31.107.1/zabbix)

zabbix监控postgresql_第6张图片

zabbix监控postgresql_第7张图片

zabbix监控postgresql_第8张图片

 

WEB登录界面 默认账号是 Admin (区分大小写),密码是zabbix.

######################代理Agentd 客户端############################

其他服务器上安装代理 并配置

[root@vlnx107002 ~]# yum install zabbix-agent -y

[root@vlnx107002 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

 

Server= ip.ip.ip.ip        

 #服务端ip地址. 被动模式,允许哪些服务器连接Agent (例如Server=127.0.0.1,172.31.107.1)表示Server的IP为 127.0.0.1和 172.31.107.1这俩台Zabbix-Server服务器端可以获取此Agent端的监控数据。 

即一个Agent是可以同时向多个服务器端发送数据的,多个IP用逗号分隔即可。

 

ServerActive= ip.ip.ip.ip    #服务端ip地址(主动模式)

#主动模式,向哪些服务器传送数据

主动模式:zabbix_agent主动收集主机上面的信息,将它提交给server端

被动模式:zabbix_server主动去zabbix_agent上面抓取数据信息

Hostname则是显示这个数据是由谁发送的。

ServerActive这个参数指的是客户端将自己收集到的数据发送给谁.

在zabbix添加和安装的时候就有强调web界面和配置文件中Hostname主机名必须保持一致,否则zabbix WEB界面有可能接收不到数据

Hostname=client01             #该值跟zabbix web上配置的主机名称要一致(配置-》主机-》主机名称)

主动模式Active 指Agent将采集到的数据主动发送给Server,而不需要Server每次连接Agent等待采集,所以采用主动模式会使得Zabbix-server具有最好的性能。

#启动代理Agentd

systemctl start zabbix-agent.service

#开启防火墙

zabbix监控postgresql_第9张图片

 

Zabbix-Get使用

Zabbix-Get 是用于Zabbix-Server和Zabbix-Agent的数据获取,通常可以用来检测验证Agent的配置是否正确

语法:

zabbix-get [-hV] -s [-p ] [-I ] -k

 

-s:远程Zabbix-Agent的IP地址或主机名

-p:远程Zappix-Agent的端口

-I:本机出去的IP地址,用于一台服务器中有多个网卡的情况;

-k:获取远程Zabbix-Agent数据所使用的Key;

例如:

[postgres@vlnx107001 data]$ zabbix_get -s 172.31.107.3 -p 10050 -I 172.31.107.1 -k system.uname

zabbix监控postgresql_第10张图片

 

二、配置监控psql模板

方法1:使用 libzbxpgsql模板监控

http://cavaliercoder.com/libzbxpgsql/download/

wget http://cdn.cavaliercoder.com/libzbxpgsql/yum/zabbix32/rhel/7/x86_64/libzbxpgsql-1.1.0-1.el7.x86_64.rpm

不需要配置 白名单pg_hba

[root@vlnx107001 ~]# rpm -ivh /home/zhaowzh/libzbxpgsql-1.1.0-1.el7.x86_64.rpm --force --nodeps

zabbix监控postgresql_第11张图片

 

[root@vlnx107002 local]# find / -name libzbxpgsql.so

[root@vlnx107002 local]# mkdir -p /usr/local/zabbix/lib

[root@vlnx107002 local]# cp /usr/lib64/zabbix/modules/libzbxpgsql.so /usr/local/zabbix/lib/

 

 

配置zabbix配置文件zabbix_agentd.conf

[root@vlnx107002 local]# vim /etc/zabbix/zabbix_agentd.conf

LoadModulePath=/usr/local/zabbix/lib/

LoadModule=libzbxpgsql.so

Include=/etc/zabbix/zabbix_agentd.d/*.conf  #agent 配置文件中配置

zabbix监控postgresql_第12张图片

查看zabbix agent插件是否生效

[root@vlnx107002 zabbix]# zabbix_agentd -t pg.modver

 

重启代理

systemctl restart zabbix-agent.service

解决方案

关闭 SELinux 即可

zabbix监控postgresql_第13张图片

 

错误2及解决方法

错误原因: kernel.sem参数过小,功效内存信号量设置

可以通过 ipcs -lm 命令查看目前系统共享内存的参数限制 或

cat /proc/sys/kernel/sem

 

解决方法

echo 'kernel.sem = 500        64000   64      256'>>/etc/sysctl.conf

或 vim  /etc/sysctl.conf

SEMMSL  

The maximum semaphores per semaphore set.

第一列,表示每个信号集中的最大信号量数目。

SEMMNS  

A system-wide limit on the number of semaphores in all semaphore sets.

第二列,表示系统范围内的最大信号量总数目。

SEMOPM 

The maximum number of operations that may be specified in a semop(2) call.

第三列,表示每个信号发生时的最大系统操作数目。

SEMMNI   

A system-wide limit on the maximum number of semaphore identifiers

第四列,表示系统范围内的最大信号集总数目。

信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。Semaphore就像可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。Semaphore的属性如下:

SEMMSL

含义:每个信号量set中信号量最大个数 设置:最小250;对于processes参数设置较大的系统建议设置为processes+10

SEMMNI

含义:linux系统信号量set最大个数 设置:最少128

SEMMNS

含义:linux系统中信号量最大个数 设置:至少32000;SEMMSL * SEMMNI

SEMOPM

含义:semop系统调用允许的信号量最大个数设置:至少100;或者等于SEMMSL

 

zabbix监控postgresql_第14张图片

使其生效   sysctl -p

 

方法2:使用 pg_monz模板监控(在Agent端安装)

http://pg-monz.github.io/pg_monz/index-en.html

https://github.com/pg-monz/pg_monz/releases

需要配置 白名单 pg_hba

[root@vlnx107001 zhaowzh]# wget https://codeload.github.com/pg-monz/pg_monz/zip/2.1

[root@vlnx107001 zhaowzh]# unzip 2.1

zabbix监控postgresql_第15张图片

 

[root@vlnx107001 usr-local-bin]# cp * /usr/local/bin

[root@vlnx107001 usr-local-etc]# cp * /usr/local/etc

[root@vlnx107001 zabbix_agentd.d]# cp /root/pg_monz-2.1/pg_monz/zabbix_agentd.d/userparameter_pgsql.conf  /etc/zabbix/zabbix_agentd.d/

[root@vlnx107001 ] systemctl restart zabbix-agent.service

在Zabbix GUI界面导入对应的模板即可

zabbix监控postgresql_第16张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Postgresql)