내 postgres 서버를 모니터링해야합니다. 주어진 시간 후에 특정 테이블에 변화가 없다면 나는 경보를해야합니다. 나는 이것을하기 위해 크 시몬과 나기 오스를 얻으려고 노력해 왔지만 나는 할 수 없었다. 도와주세요모니터 Postgres 테이블 활동
답변
먼저 수정 문 (INSERT/UPDATE/DELETE)에서 활성화되는 테이블에 trigger을 만듭니다. 이 트리거는 어딘가에 (예 : 다른 제어 테이블의 필드) '마지막으로 변경된'시간 소인을 업데이트해야합니다.
그런 다음 외부 수단 (예 : Unix에서는 cron)에 의해 정기적으로 시작되는 별도의 프로세스가 필요합니다. 이 프로세스는 예를 들어 10 분마다 또는 매시간 - 필요한 모든 세밀도. 마지막으로 변경된 시간 소인을 점검하여 최종 점검 이후의 기간에 활동이 있었는지 여부를 판별합니다.
무료 솔루션은 아니지만 LogicMonitor의 postgres monitoring은이를 쉽게 수행 할 수 있습니다.
파일이 얼마 동안 변경되지 않을 때 알림을받을 수있는 방법이 있으면 우아하지만 덜 간단한 해결책이 있습니다. Postgres가 해당 테이블을 저장하는 파일 이름을 찾으십시오 (누군가 Postgres의 시스템 테이블을 파헤쳐 야합니다. 아마도 별도의 질문으로이 질문을 던지십시오.) 그런 다음 모니터링 도구가 해당 파일의 수정 시간을 볼 수 있도록 설정하십시오.
두 가지 이유로 작동하지 않습니다. 이 파일은 VACUUM과 같은 시스템 프로세스와 힌트 비트 업데이트라는 프로세스에 의해 수정됩니다.이 프로세스는 실제 데이터 변경없이 테이블에 쓰고 수정 시간을 업데이트합니다. pg_class 및 pg_databsae와 같은 시스템 카탈로그의 내용을보고 테이블에 해당하는 디렉토리를 쉽게 찾을 수 있습니다. 디렉토리와 파일 이름이 일치하는 oid라는 저비용 필드가 있습니다. 그러나 실제 파일은 1GB 청크에 있으므로 데이터베이스가 커질수록 사용 된 파일 이름이 변경됩니다. –
네, 위의 모든 사실입니다, 거기에 거짓말입니다. 다른 답변에 설명 된 솔루션을 수행 할 수 있다면 그렇게하지 마십시오. –
아마도 pg_stat_user_tables를보고 행 삽입/삭제/업데이트에 대한 통계가 테이블에 대해 변경되었는지 확인하고 싶을 것입니다. 이것이 소프트웨어 모니터링에서 이러한 종류의 활동을 확인하는 가장 쉬운 방법입니다. check_postgres이
- 1. ASP.NET 라이브 활동 모니터
- 2. 활동 모니터 악기 ios
- 3. 모니터 인터넷 활동
- 4. SQL Server 2005의 활동 모니터 문제
- 5. 디버깅 postgres 9.0.1 테이블 손상
- 6. ActiveRecord, Postgres 및 파티션 테이블
- 7. Postgres 테이블 필드 이름 제한을 변경하는 방법?
- 8. Postgres 테이블 인덱스에 여러 필드 포함하기
- 9. Postgres ANTI-JOIN에 테이블 스캔이 필요합니까?
- 10. SQL 프로파일 러에서 개별 sql 사용자 식별 및 활동 모니터
- 11. 예약 보고서 (작업) 모니터
- 12. Postgres 편집 유니온보기
- 13. 모니터 변경
- 14. Postgres 함수
- 15. Postgres replication
- 16. python postgres
- 17. postgres - 여러 열을 기준으로 그룹화 - 마스터/상세 유형 테이블
- 18. 테이블 생성시 Postgres 열 저장 유형을 지정할 수 있습니까?
- 19. 다른 테이블의 일일 데이터를 사용하는 테이블 업데이트 Postgres/Python
- 20. 내용에 따라 Postgres 테이블 데이터를 변경하는 방법은 무엇입니까?
- 21. SQLAlchemy (Postgres) 및 트랜잭션
- 22. 활동 내 활동 내역
- 23. 활동
- 24. 성능 최적화 - Postgres
- 25. SQLAlchemy를 사용하는 Postgres 상속
- 26. Postgres : 여러 개의 열이있는 테이블 또는 더 적은 수의 열이있는 여러 개의 테이블?
- 27. SQL Natural Join Postgres
- 28. 활동 그룹 시작 타사 활동
- 29. 활동 스택에서 활동 위치 찾기
- 30. 활동 모니터가 프로세스 이름을 표시하지 않습니다.
때 모든 트랜잭션에 트리거의 비용을 지불하지 않는다 :
또한 PostgreSQL을 모니터링 플러그인의 Nagios의 하나의 최선을 소스 코드보고에서이 분야의 아이디어를 얻을 수 있습니다 데이터베이스는 이미이를 추적합니다. 그렉 스미스의 대답을 참조하십시오. – hgmnz
@hgimenez : 확실히 고려해 볼만한 가치가 있지만,'stats_row_level' 통계 수집은 기본적으로 8.2까지 비활성화되어 있으며, 2008 년에만 8.3이 나왔다는 것을 명심하십시오.이 기능을 사용하려면 자체 비용이 필요하며 모든 테이블에 대해 전체적으로 수행 할 수 있습니다 . 몇 개의 테이블 만 모니터링해야하는 경우 트리거를 사용하면 오버 헤드가 줄어들 수 있습니다. –