{"id":46297,"date":"2024-05-23T01:05:34","date_gmt":"2024-05-23T01:05:34","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=46297"},"modified":"2024-05-23T01:05:34","modified_gmt":"2024-05-23T01:05:34","slug":"step-by-step-guide-to-monitor-postgresql-using-zabbix-agent","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/step-by-step-guide-to-monitor-postgresql-using-zabbix-agent\/","title":{"rendered":"Step by Step Guide to Monitor PostGreSQL using Zabbix Agent"},"content":{"rendered":"<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># Step 1: Install Zabbix Agent on the PostgreSQL Server<\/span>\n\n<span class=\"hljs-comment\"># Install Zabbix repository (Ubuntu example)<\/span>\nsudo wget https:<span class=\"hljs-comment\">\/\/repo.zabbix.com\/zabbix\/6.0\/ubuntu\/pool\/main\/z\/zabbix-release\/zabbix-release_6.0-1+ubuntu20.04_all.deb<\/span>\nsudo dpkg -i zabbix-release_6<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">-1<\/span>+ubuntu20<span class=\"hljs-number\">.04<\/span>_all.deb\nsudo apt update\n\n<span class=\"hljs-comment\"># Install Zabbix Agent<\/span>\nsudo apt install zabbix-agent\n\n<span class=\"hljs-comment\"># Step 2: Configure Zabbix Agent<\/span>\n\n<span class=\"hljs-comment\"># Edit Zabbix agent configuration<\/span>\nsudo nano \/etc\/zabbix\/zabbix_agentd.conf\n<span class=\"hljs-comment\"># Make changes to the file:<\/span>\n<span class=\"hljs-comment\"># Server=&lt;Zabbix server IP&gt;<\/span>\n<span class=\"hljs-comment\"># ServerActive=&lt;Zabbix server IP&gt;<\/span>\n<span class=\"hljs-comment\"># Hostname=&lt;Name of the PostgreSQL server&gt;<\/span>\n\n<span class=\"hljs-comment\"># Restart Zabbix Agent<\/span>\nsudo systemctl restart zabbix-agent\n\n<span class=\"hljs-comment\"># Step 3: Configure PostgreSQL for Monitoring<\/span>\n\n<span class=\"hljs-comment\"># Edit PostgreSQL configuration file<\/span>\nsudo nano \/etc\/postgresql\/<span class=\"hljs-number\">12<\/span>\/main\/postgresql.conf\n<span class=\"hljs-comment\"># Add or uncomment the following lines:<\/span>\n<span class=\"hljs-comment\"># shared_preload_libraries = 'pg_stat_statements'<\/span>\n<span class=\"hljs-comment\"># pg_stat_statements.track = all<\/span>\n\n<span class=\"hljs-comment\"># Restart PostgreSQL to apply changes<\/span>\nsudo systemctl restart postgresql\n\n<span class=\"hljs-comment\"># Create a monitoring role in PostgreSQL<\/span>\nsudo -u postgres psql -c <span class=\"hljs-string\">\"CREATE ROLE zabbix WITH LOGIN PASSWORD 'zabbix_password';\"<\/span>\nsudo -u postgres psql -c <span class=\"hljs-string\">\"GRANT SELECT ON ALL TABLES IN SCHEMA public TO zabbix;\"<\/span>\n\n<span class=\"hljs-comment\"># Step 4: Set up the Zabbix Template and Items<\/span>\n\n<span class=\"hljs-comment\"># Import PostgreSQL monitoring template in Zabbix server (manually via Zabbix UI)<\/span>\n<span class=\"hljs-comment\"># Path: Configuration &gt; Templates &gt; Import<\/span>\n\n<span class=\"hljs-comment\"># Link the template to your host in Zabbix server<\/span>\n<span class=\"hljs-comment\"># Path: Configuration &gt; Hosts &gt; select your host &gt; Templates tab &gt; Add the PostgreSQL template &gt; Update<\/span>\n\n<span class=\"hljs-comment\"># Step 5: Test and Validate<\/span>\n\n<span class=\"hljs-comment\"># Check if data is being collected in Zabbix server<\/span>\n<span class=\"hljs-comment\"># Path: Monitoring &gt; Latest Data &gt; Filter by your PostgreSQL server's name<\/span>\n\n<span class=\"hljs-comment\"># Troubleshoot any issues by checking logs<\/span>\n<span class=\"hljs-comment\"># Check Zabbix Agent logs<\/span>\ncat \/<span class=\"hljs-keyword\">var<\/span>\/log\/zabbix\/zabbix_agentd.log\n<span class=\"hljs-comment\"># Check PostgreSQL logs<\/span>\ncat \/<span class=\"hljs-keyword\">var<\/span>\/log\/postgresql\/postgresql<span class=\"hljs-number\">-12<\/span>-main.log\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-46297","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/46297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=46297"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/46297\/revisions"}],"predecessor-version":[{"id":46298,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/46297\/revisions\/46298"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=46297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=46297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=46297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}