{"id":42176,"date":"2023-10-27T11:43:42","date_gmt":"2023-01-19T02:48:57","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/"},"modified":"2024-05-04T06:14:39","modified_gmt":"2024-05-03T22:14:39","slug":"%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/","title":{"rendered":"\u642d\u5efapg_monz\u548cFluentd\u7684\u8bd5\u9a8c\u73af\u5883"},"content":{"rendered":"<h1>\u6587\u7ae0\u7684\u6982\u8981<\/h1>\n<p>\u7ed9\u5927\u5bb6\u4ecb\u7ecd\u4e00\u4e2a\u80fd\u591f\u8f7b\u677e\u76d1\u63a7\u548c\u64cd\u4f5c PostgreSQL \u7684\u5de5\u5177\u7684\u6f14\u8bb2\uff0c\u6f14\u8bb2\u662f\u57282015\u5e746\u670813\u65e5\u7684\u5317\u6d77\u9053\u5f00\u6e90\u4f1a\u8bae2015\u4e0a\u8fdb\u884c\u7684\u3002\u5728\u6f14\u8bb2\u4e2d\uff0c\u6211\u4eec\u4ecb\u7ecd\u4e86\u901a\u8fc7\u4f7f\u7528 pg_monz \u548c fluentd \u6765\u6784\u5efa\u76d1\u63a7\u73af\u5883\u7684\u6b65\u9aa4\u3002<\/p>\n<h1>\u6784\u56fe<\/h1>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\u69cb\u6210\u56f3.png\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d4b1a37434c4406cb624e\/3-0.png\" alt=\"\u69cb\u6210\u56f3.png\" \/><\/div>\n<h1>\u670d\u52a1\u5668\u7684\u89d2\u8272<\/h1>\n<div>\n<div class=\"post-table\">\u30b5\u30fc\u30d0\u540dIP\u30a2\u30c9\u30ec\u30b9\u5f79\u5272zabbix192.168.1.20Zabbix\u76e3\u8996\u30b5\u30fc\u30d0,PostgreSQL\u30ed\u30b0\u7ba1\u7406\u30b5\u30fc\u30d0pgpool01192.168.1.11pgpool-II\u7a3c\u50cd\u30b5\u30fc\u30d0\u3002Active\u7528\u306e\u4eee\u60f3IP\u5272\u5f53\u3066\u6e08pqpool02192.168.1.12pgpool-II\u7a3c\u50cd\u30b5\u30fc\u30d0(Standby)pgsql01192.168.1.13PostgreSQL\u7a3c\u50cd\u30b5\u30fc\u30d0\u3002SR\u306eprimarypgsql02192.168.1.14PostgreSQL\u7a3c\u50cd\u30b5\u30fc\u30d0\u3002SR\u306e\u540c\u671fStandbypgsql03192.168.1.15PostgreSQL\u7a3c\u50cd\u30b5\u30fc\u30d0\u3002SR\u306e\u975e\u540c\u671fStandby<\/div>\n<\/div>\n<h1>\u8fd0\u884c\u73af\u5883<\/h1>\n<p>\u4ee5\u4e0b\u662f\u6211\u5728\u4f7f\u7528\u7684\u4ea7\u54c1\u548c\u7b14\u8005\u73af\u5883\u4e2d\u786e\u8ba4\u8fc7\u7684\u7248\u672c\u3002<\/p>\n<h2>\u4e3b\u673a\u7535\u8111<\/h2>\n<div>\n<div class=\"post-table\">\u30d7\u30ed\u30c0\u30af\u30c8\u540d\u30d0\u30fc\u30b8\u30e7\u30f3VirtualBox4.3.26Vagrant1.7.2Ansible1.9.0.1<\/div>\n<\/div>\n<h2>\u5ba2\u5ea7\u64cd\u4f5c\u7cfb\u7edf<\/h2>\n<div>\n<div class=\"post-table\">\u30d7\u30ed\u30c0\u30af\u30c8\u540d\u30d0\u30fc\u30b8\u30e7\u30f3CentOS6.6PostgreSQL9.4.3Zabbix2.4.5Fluentd(td-agent)0.12.7(2.2.0)fluent-plugin-parser0.5.0fluent-plugin-record-reformer0.6.3fluent-plugin-pgjson0.0.7<\/div>\n<\/div>\n<h1>\u6784\u5efa\u8fc7\u7a0b<\/h1>\n<h2>\u4f7f\u7528pgpool-II\u6784\u5efaPostgreSQL SR\u96c6\u7fa4\uff08\u5728\u4e3b\u673aPC\u4e0a\u8fdb\u884c\u5de5\u4f5c\uff09\u3002<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30db\u30b9\u30c8PC\u306bVirtualBox,Vagrant,Ansible\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08\u8a73\u7d30\u7701\u7565\uff09<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Vagrant\u4f5c\u696d\u7528\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3001Vagrantfile\u3092\u751f\u6210<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">mkdir <\/span>PgMonzTest\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cd <\/span>PgMonzTest\r\n<span class=\"nv\">$ <\/span>vagrant init\r\n<\/code><\/pre>\n<ul class=\"post-ul\">Vagrantfile\u3092\u7de8\u96c6<\/ul>\n<pre class=\"post-pre\"><code><span class=\"no\">Vagrant<\/span><span class=\"p\">.<\/span><span class=\"nf\">configure<\/span><span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">)<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">config<\/span><span class=\"o\">|<\/span>\r\n  <span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">define<\/span> <span class=\"ss\">:pgpool01<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">h1<\/span><span class=\"o\">|<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">provider<\/span> <span class=\"s2\">\"virtualbox\"<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">v<\/span><span class=\"o\">|<\/span>\r\n      <span class=\"n\">v<\/span><span class=\"p\">.<\/span><span class=\"nf\">customize<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"modifyvm\"<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:id<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"--memory\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">512<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"k\">end<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">network<\/span> <span class=\"ss\">:private_network<\/span><span class=\"p\">,<\/span> <span class=\"ss\">ip: <\/span><span class=\"s2\">\"192.168.1.11\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">box<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"chef\/centos-6.6\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">hostname<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"pgpool01\"<\/span>\r\n  <span class=\"k\">end<\/span>\r\n  <span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">define<\/span> <span class=\"ss\">:pgpool02<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">h1<\/span><span class=\"o\">|<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">provider<\/span> <span class=\"s2\">\"virtualbox\"<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">v<\/span><span class=\"o\">|<\/span>\r\n      <span class=\"n\">v<\/span><span class=\"p\">.<\/span><span class=\"nf\">customize<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"modifyvm\"<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:id<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"--memory\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">512<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"k\">end<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">network<\/span> <span class=\"ss\">:private_network<\/span><span class=\"p\">,<\/span> <span class=\"ss\">ip: <\/span><span class=\"s2\">\"192.168.1.12\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">box<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"chef\/centos-6.6\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">hostname<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"pgpool02\"<\/span>\r\n  <span class=\"k\">end<\/span>\r\n  <span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">define<\/span> <span class=\"ss\">:pgsql01<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">h1<\/span><span class=\"o\">|<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">provider<\/span> <span class=\"s2\">\"virtualbox\"<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">v<\/span><span class=\"o\">|<\/span>\r\n      <span class=\"n\">v<\/span><span class=\"p\">.<\/span><span class=\"nf\">customize<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"modifyvm\"<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:id<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"--memory\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">512<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"k\">end<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">network<\/span> <span class=\"ss\">:private_network<\/span><span class=\"p\">,<\/span> <span class=\"ss\">ip: <\/span><span class=\"s2\">\"192.168.1.13\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">box<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"chef\/centos-6.6\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">hostname<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"pgsql01\"<\/span>\r\n  <span class=\"k\">end<\/span>\r\n  <span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">define<\/span> <span class=\"ss\">:pgsql02<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">h1<\/span><span class=\"o\">|<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">provider<\/span> <span class=\"s2\">\"virtualbox\"<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">v<\/span><span class=\"o\">|<\/span>\r\n      <span class=\"n\">v<\/span><span class=\"p\">.<\/span><span class=\"nf\">customize<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"modifyvm\"<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:id<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"--memory\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">512<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"k\">end<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">network<\/span> <span class=\"ss\">:private_network<\/span><span class=\"p\">,<\/span> <span class=\"ss\">ip: <\/span><span class=\"s2\">\"192.168.1.14\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">box<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"chef\/centos-6.6\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">hostname<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"pgsql02\"<\/span>\r\n  <span class=\"k\">end<\/span>\r\n  <span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">define<\/span> <span class=\"ss\">:pgsql03<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">h1<\/span><span class=\"o\">|<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">provider<\/span> <span class=\"s2\">\"virtualbox\"<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">v<\/span><span class=\"o\">|<\/span>\r\n      <span class=\"n\">v<\/span><span class=\"p\">.<\/span><span class=\"nf\">customize<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"modifyvm\"<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:id<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"--memory\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">512<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"k\">end<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">network<\/span> <span class=\"ss\">:private_network<\/span><span class=\"p\">,<\/span> <span class=\"ss\">ip: <\/span><span class=\"s2\">\"192.168.1.15\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">box<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"chef\/centos-6.6\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">hostname<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"pgsql03\"<\/span>\r\n  <span class=\"k\">end<\/span>\r\n  <span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">define<\/span> <span class=\"ss\">:zabbix<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">h1<\/span><span class=\"o\">|<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">provider<\/span> <span class=\"s2\">\"virtualbox\"<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">v<\/span><span class=\"o\">|<\/span>\r\n      <span class=\"n\">v<\/span><span class=\"p\">.<\/span><span class=\"nf\">customize<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"modifyvm\"<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:id<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"--memory\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">512<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"k\">end<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">network<\/span> <span class=\"ss\">:private_network<\/span><span class=\"p\">,<\/span> <span class=\"ss\">ip: <\/span><span class=\"s2\">\"192.168.1.20\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">box<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"chef\/centos-6.6\"<\/span>\r\n    <span class=\"n\">h1<\/span><span class=\"p\">.<\/span><span class=\"nf\">vm<\/span><span class=\"p\">.<\/span><span class=\"nf\">hostname<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"zabbix\"<\/span>\r\n  <span class=\"k\">end<\/span>\r\n<span class=\"k\">end<\/span>\r\n<\/code><\/pre>\n<ul class=\"post-ul\">VM \u3092\u8d77\u52d5<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>vagrant up\r\n<span class=\"nv\">$ <\/span>vagrant status\r\nCurrent machine states:\r\n\r\npgpool01                  running <span class=\"o\">(<\/span>virtualbox<span class=\"o\">)<\/span>\r\npgpool02                  running <span class=\"o\">(<\/span>virtualbox<span class=\"o\">)<\/span>\r\npgsql01                   running <span class=\"o\">(<\/span>virtualbox<span class=\"o\">)<\/span>\r\npgsql02                   running <span class=\"o\">(<\/span>virtualbox<span class=\"o\">)<\/span>\r\npgsql03                   running <span class=\"o\">(<\/span>virtualbox<span class=\"o\">)<\/span>\r\nzabbix                    running <span class=\"o\">(<\/span>virtualbox<span class=\"o\">)<\/span>\r\n<\/code><\/pre>\n<ul class=\"post-ul\">pgpool-II,PostgreSQL SR\u30af\u30e9\u30b9\u30bf\u3092\u69cb\u7bc9\u3059\u308bAnsible Playbook\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>git clone https:\/\/github.com\/pg-monz\/ansible-pgool-pgsql-cluster.git\r\n<\/code><\/pre>\n<ul class=\"post-ul\">group_vars\/all.yml\u3092\u7de8\u96c6<\/ul>\n<pre class=\"post-pre\"><code><span class=\"c1\"># \u7de8\u96c6\u7b87\u6240\r\n<\/span><span class=\"n\">synchronous_standby_names<\/span><span class=\"p\">:<\/span> <span class=\"s\">'192.168.1.14,192.168.1.15'<\/span>\r\n<span class=\"n\">vip<\/span><span class=\"p\">:<\/span> <span class=\"mf\">192.168<\/span><span class=\"p\">.<\/span><span class=\"mf\">1.100<\/span>\r\n<span class=\"n\">pgpool_active_ip<\/span><span class=\"p\">:<\/span> <span class=\"mf\">192.168<\/span><span class=\"p\">.<\/span><span class=\"mf\">1.11<\/span>\r\n<span class=\"n\">pgpool_standby_ip<\/span><span class=\"p\">:<\/span> <span class=\"mf\">192.168<\/span><span class=\"p\">.<\/span><span class=\"mf\">1.12<\/span>\r\n<span class=\"n\">pgsql_primary_ip<\/span><span class=\"p\">:<\/span> <span class=\"mf\">192.168<\/span><span class=\"p\">.<\/span><span class=\"mf\">1.13<\/span>\r\n<span class=\"n\">pgsql_standby01_ip<\/span><span class=\"p\">:<\/span> <span class=\"mf\">192.168<\/span><span class=\"p\">.<\/span><span class=\"mf\">1.14<\/span>\r\n<span class=\"n\">pgsql_standby02_ip<\/span><span class=\"p\">:<\/span> <span class=\"mf\">192.168<\/span><span class=\"p\">.<\/span><span class=\"mf\">1.15<\/span>\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\u305d\u306e\u307e\u307e\u3067\u306f\u3046\u307e\u304f\u52d5\u304b\u306a\u3044\u90e8\u5206\u304c\u3042\u3063\u305f\u306e\u3067Playbook\u3092\u4fee\u6b63<\/ul>\n<pre class=\"post-pre\"><code><span class=\"c1\"># roles\/spred_selinux_settings\/tasks\/main.yml\u3092\u65b0\u898f\u4f5c\u6210\r\n<\/span><span class=\"o\">---<\/span>\r\n<span class=\"o\">-<\/span> <span class=\"n\">name<\/span><span class=\"p\">:<\/span> <span class=\"n\">Check<\/span> <span class=\"k\">if<\/span> <span class=\"n\">selinux<\/span> <span class=\"ow\">is<\/span> <span class=\"n\">installed<\/span>\r\n  <span class=\"n\">command<\/span><span class=\"p\">:<\/span> <span class=\"n\">getenforce<\/span>\r\n  <span class=\"n\">register<\/span><span class=\"p\">:<\/span> <span class=\"n\">command_result<\/span>\r\n  <span class=\"n\">ignore_errors<\/span><span class=\"p\">:<\/span> <span class=\"bp\">True<\/span>\r\n\r\n<span class=\"o\">-<\/span> <span class=\"n\">name<\/span><span class=\"p\">:<\/span> <span class=\"n\">Install<\/span> <span class=\"n\">libselinux<\/span><span class=\"o\">-<\/span><span class=\"n\">python<\/span>\r\n  <span class=\"n\">yum<\/span><span class=\"p\">:<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"p\">{{<\/span> <span class=\"n\">item<\/span> <span class=\"p\">}}<\/span>\r\n  <span class=\"n\">with_items<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"o\">-<\/span> <span class=\"n\">epel<\/span><span class=\"o\">-<\/span><span class=\"n\">release<\/span>\r\n    <span class=\"o\">-<\/span> <span class=\"n\">libselinux<\/span><span class=\"o\">-<\/span><span class=\"n\">python<\/span>\r\n  <span class=\"n\">when<\/span><span class=\"p\">:<\/span> <span class=\"n\">command_result<\/span><span class=\"o\">|<\/span><span class=\"n\">success<\/span> <span class=\"ow\">and<\/span> <span class=\"n\">command_result<\/span><span class=\"p\">.<\/span><span class=\"n\">stdout<\/span> <span class=\"o\">!=<\/span> <span class=\"s\">'Disabled'<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"c1\"># prepare.yml\u306bspred_selinux_settings\u3092\u8ffd\u52a0\r\n<\/span><span class=\"o\">---<\/span>\r\n<span class=\"o\">-<\/span> <span class=\"n\">hosts<\/span><span class=\"p\">:<\/span> <span class=\"nb\">all<\/span>\r\n  <span class=\"n\">sudo<\/span><span class=\"p\">:<\/span> <span class=\"n\">yes<\/span>\r\n  <span class=\"n\">gather_facts<\/span><span class=\"p\">:<\/span> <span class=\"n\">no<\/span>\r\n  <span class=\"n\">roles<\/span><span class=\"p\">:<\/span>\r\n   <span class=\"o\">-<\/span> <span class=\"n\">spred_selinux_settings<\/span>\r\n   <span class=\"o\">-<\/span> <span class=\"n\">spred_ssh_settings<\/span>\r\n   <span class=\"o\">-<\/span> <span class=\"n\">spred_pgdg_rpms<\/span>\r\n   <span class=\"o\">-<\/span> <span class=\"n\">spred_pgpool_src<\/span>\r\n   <span class=\"o\">-<\/span> <span class=\"n\">spred_os_cmd<\/span>\r\n<\/code><\/pre>\n<ul class=\"post-ul\">Playbook\u3092\u5b9f\u884c<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>ansible-playbook <span class=\"nt\">--ask-pass<\/span> <span class=\"nt\">--ask-sudo-pass<\/span> <span class=\"nt\">-i<\/span> hosts site.yml\r\n<\/code><\/pre>\n<h2>\u5728\u4e2d\u6587\u4e2d\uff0c\u53ef\u4ee5\u8fd9\u6837\u8868\u8fbe\uff1a<\/h2>\n<p>Zabbix\u670d\u52a1\u5668\u7684\u5efa\u8bbe\uff08Zabbix\u670d\u52a1\u5668\u7684\u5de5\u4f5c\uff09\u3002<\/p>\n<ul class=\"post-ul\">\u30b5\u30fc\u30d0 zabbix \u306b\u30ed\u30b0\u30a4\u30f3\u3002\u5f8c\u306e\u4f5c\u696d\u306f\u57fa\u672c\u7684\u306broot\u30e6\u30fc\u30b6\u3067\u5b9f\u884c\u3059\u308b\u3002<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>vagrant ssh zabbix\r\n<span class=\"nv\">$ <\/span>su\r\n<\/code><\/pre>\n<ul class=\"post-ul\">PostgreSQL\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>wget http:\/\/yum.postgresql.org\/9.4\/redhat\/rhel-6-x86_64\/pgdg-centos94-9.4-1.noarch.rpm\r\n<span class=\"nv\">$ <\/span>rpm <span class=\"nt\">-ivh<\/span> pgdg-centos94-9.4-1.noarch.rpm\r\n<span class=\"nv\">$ <\/span>yum <span class=\"nb\">install <\/span>postgresql94 postgresql94-server postgresql94-contrib\r\n<span class=\"nv\">$ <\/span>su - postgres\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cd<\/span> \/var\/lib\/pgsql\/9.4\/data\r\n<span class=\"nv\">$ <\/span>\/usr\/pgsql-9.4\/bin\/initdb <span class=\"nt\">--encoding<\/span><span class=\"o\">=<\/span>UTF8 <span class=\"nt\">--no-locale<\/span>\r\n<span class=\"c\"># \u30e6\u30fc\u30b6\u3092 root \u306b\u623b\u3059<\/span>\r\n<span class=\"nv\">$ <\/span>service postgresql-9.4 start\r\n<\/code><\/pre>\n<ul class=\"post-ul\">Zabbix Server\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>wget http:\/\/repo.zabbix.com\/zabbix\/2.4\/rhel\/6\/x86_64\/zabbix-release-2.4-1.el6.noarch.rpm\r\n<span class=\"nv\">$ <\/span>rpm <span class=\"nt\">-ivh<\/span> zabbix-release-2.4-1.el6.noarch.rpm\r\n<span class=\"nv\">$ <\/span>yum <span class=\"nb\">install <\/span>zabbix zabbix-server-pgsql zabbix-server zabbix-sender zabbix-get\r\n<span class=\"nv\">$ <\/span>yum <span class=\"nb\">install <\/span>zabbix-web-pgsql zabbix-web zabbix-web-japanese\r\n<\/code><\/pre>\n<ul class=\"post-ul\">zabbix\u3068\u3044\u3046\u540d\u524d\u306e\u30e6\u30fc\u30b6,\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f5c\u6210<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>su - postgres\r\n<span class=\"nv\">$ <\/span>psql\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"o\">#<\/span> <span class=\"k\">create<\/span> <span class=\"k\">user<\/span> <span class=\"n\">zabbix<\/span> <span class=\"k\">with<\/span> <span class=\"k\">encrypted<\/span> <span class=\"n\">password<\/span> <span class=\"s1\">'zabbix'<\/span> <span class=\"k\">nocreatedb<\/span> <span class=\"k\">nocreateuser<\/span><span class=\"p\">;<\/span>\r\n<span class=\"o\">#<\/span> <span class=\"k\">create<\/span> <span class=\"k\">database<\/span> <span class=\"n\">zabbix<\/span> <span class=\"k\">owner<\/span> <span class=\"n\">zabbix<\/span><span class=\"p\">;<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>psql <span class=\"nt\">-U<\/span> zabbix zabbix &lt; \/usr\/share\/doc\/zabbix-server-pgsql-2.4.5\/create\/schema.sql\r\n<span class=\"nv\">$ <\/span>psql <span class=\"nt\">-U<\/span> zabbix zabbix &lt; \/usr\/share\/doc\/zabbix-server-pgsql-2.4.5\/create\/images.sql\r\n<span class=\"nv\">$ <\/span>psql <span class=\"nt\">-U<\/span> zabbix zabbix &lt; \/usr\/share\/doc\/zabbix-server-pgsql-2.4.5\/create\/data.sql\r\n<\/code><\/pre>\n<ul class=\"post-ul\">Zabbix\u30b5\u30fc\u30d0\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u3066\u8d77\u52d5<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>vi \/etc\/zabbix\/zabbix_server.conf\r\n<\/code><\/pre>\n<blockquote><p>\u203b\u4fee\u6539\u90e8\u5206<br \/>\nDB\u7aef\u53e3=5432<\/p><\/blockquote>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>vi \/etc\/php.ini\r\n<\/code><\/pre>\n<blockquote><p>\u203b\u7f16\u8f91\u90e8\u5206<br \/>\n\u65e5\u671f\u65f6\u533a = \u4e9a\u6d32\/\u4e1c\u4eac<\/p><\/blockquote>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>service zabbix-server start\r\n<span class=\"nv\">$ <\/span>service httpd start\r\n<\/code><\/pre>\n<p>Zabbix Web\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3001\u521d\u671f\u8a2d\u5b9a\u30a6\u30a3\u30b6\u30fc\u30c9\u3092\u8d77\u52d5<\/p>\n<p>3. Configure DB connection \u753b\u9762\u3067DB\u306e\u63a5\u7d9a\u60c5\u5831\u5165\u529b<\/p>\n<blockquote><p>\u6570\u636e\u5e93\u540d\u79f0\uff1azabbix<br \/>\n\u7528\u6237\uff1azabbix<br \/>\n\u5bc6\u7801\uff1azabbix<\/p><\/blockquote>\n<ul class=\"post-ul\">pg_monz \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>git clone https:\/\/github.com\/pg-monz\/pg_monz.git\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">template\u30d5\u30a9\u30eb\u30c0\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8(.xml)\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8Template App PostgreSQL\u306e\u30de\u30af\u30ed\u3092\u7de8\u96c6<\/ul>\n<blockquote><p>{$PGLOGDIR}\u7684\u503c\u4e3a\/var\/log\/pgsql\u3002<\/p><\/blockquote>\n<ul class=\"post-ul\">\u30db\u30b9\u30c8\u3092\u4f5c\u6210\u3057\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u5272\u308a\u5f53\u3066\u308b\u3002<\/ul>\n<div>\n<div class=\"post-table\">\u30db\u30b9\u30c8\u540d\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u540dpgpool01,pgpool02Template App pgpool-IIpgsql01,pgsql02,pgsql03Template App PostgreSQL SRPostgreSQL ClusterTemplate App pgpool-II watchdog, Template App PostgreSQL SR Cluster<\/div>\n<\/div>\n<ul class=\"post-ul\">\u30db\u30b9\u30c8\u30b0\u30eb\u30fc\u30d7\u3092\u4f5c\u6210\u3059\u308b\u3002<\/ul>\n<div>\n<div class=\"post-table\">\u30db\u30b9\u30c8\u30b0\u30eb\u30fc\u30d7\u540d\u30db\u30b9\u30c8\u540dpgpoolpgpool01,pgpool02PostgreSQLpgsql01,pgsql02,pgsql03PostgreSQL ClusterPostgreSQL Cluster<\/div>\n<\/div>\n<h2>\u5728\u9664\u4e86Zabbix\u670d\u52a1\u5668\u4ee5\u5916\u7684\u6240\u6709\u670d\u52a1\u5668\u4e0a\u5b89\u88c5Zabbix\u4ee3\u7406\uff08\u64cd\u4f5c\uff09<\/h2>\n<ul class=\"post-ul\">Zabbix\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>wget http:\/\/repo.zabbix.com\/zabbix\/2.4\/rhel\/6\/x86_64\/zabbix-release-2.4-1.el6.noarch.rpm\r\n<span class=\"nv\">$ <\/span>rpm <span class=\"nt\">-ivh<\/span> zabbix-release-2.4-1.el6.noarch.rpm\r\n<span class=\"nv\">$ <\/span>yum <span class=\"nb\">install <\/span>zabbix-agent zabbix-sender\r\n<\/code><\/pre>\n<ul class=\"post-ul\">Zabbix\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u3066\u8d77\u52d5<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>vi \/etc\/zabbix\/zabbix_agentd.conf\r\n<\/code><\/pre>\n<blockquote><p>\u203b\u4e0b\u9762\u662f\u9700\u8981\u7f16\u8f91\u7684\u90e8\u5206\uff08\u8bf7\u5728\u6bcf\u4e2a\u670d\u52a1\u5668\u7684\u4e3b\u673a\u540d\u4e0b\u9762\u8fdb\u884c\u586b\u5199\uff09<br \/>\nServer=192.168.1.20<br \/>\nServerActive=192.168.1.20<br \/>\nHostname=pgpool01<br \/>\nAllowRoot=1<\/p><\/blockquote>\n<ul class=\"post-ul\">pg_monz \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3001\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u914d\u7f6e\u3057\u3001Zabbix\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u8d77\u52d5<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>git clone https:\/\/github.com\/pg-monz\/pg_monz.git\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cd <\/span>pg_monz\/pg_monz\/\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cp <\/span>usr-local-etc\/<span class=\"k\">*<\/span> \/usr\/local\/etc\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cp <\/span>usr-local-bin\/<span class=\"k\">*<\/span> \/usr\/local\/bin\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">chmod<\/span> +x \/usr\/local\/bin\/<span class=\"k\">*<\/span>.sh\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cp <\/span>zabbix_agentd.d\/userparameter_pgsql.conf \/etc\/zabbix\/zabbix_agentd.d\/\r\n<span class=\"nv\">$ <\/span>service zabbix-agent start\r\n<\/code><\/pre>\n<h2>\u6d41\u5229\u7684\u5c0e\u5165<\/h2>\n<ul class=\"post-ul\">td-agent\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08\u30b5\u30fc\u30d0zabbix,pgsql01,pgsql02,pgsql03\u3067\u306e\u4f5c\u696d\uff09<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>curl <span class=\"nt\">-L<\/span> https:\/\/td-toolbelt.herokuapp.com\/sh\/install-redhat-td-agent2.sh | sh\r\n<\/code><\/pre>\n<ul class=\"post-ul\">fluentd\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08\u30b5\u30fc\u30d0pgsql01,pgsql02,pgsql03\uff09<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>td-agent-gem <span class=\"nb\">install <\/span>fluent-plugin-parser\r\n<span class=\"nv\">$ <\/span>td-agent-gem <span class=\"nb\">install <\/span>fluent-plugin-record-reformer\r\n<\/code><\/pre>\n<ul class=\"post-ul\">fluentd\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08\u30b5\u30fc\u30d0zabbix\uff09<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>yum <span class=\"nb\">install <\/span>gcc\r\n<span class=\"nv\">$ <\/span>yum <span class=\"nb\">install <\/span>postgresql9.4-devel\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">export <\/span><span class=\"nv\">PATH<\/span><span class=\"o\">=<\/span>\/usr\/pgsql-9.4\/bin:<span class=\"nv\">$PATH<\/span>\r\n<span class=\"nv\">$ <\/span>td-agent-gem <span class=\"nb\">install <\/span>fluent-plugin-pgjson\r\n<\/code><\/pre>\n<h2>\u4fee\u6539 PostgreSQL \u7684\u65e5\u5fd7\u8bbe\u7f6e<\/h2>\n<ul class=\"post-ul\">\/var\/lib\/pgsql\/9.4\/data\/postgresql.conf\u3092\u7de8\u96c6\u3057\u3001\u518d\u8aad\u307f\u8fbc\u307f\uff08\u30b5\u30fc\u30d0pgsql01,pgsql02,pgsql03\u3067\u306e\u4f5c\u696d\uff09<\/ul>\n<blockquote><p>\u203b\u7f16\u8f91\u5185\u5bb9<br \/>\nlog_destination = &#8216;stderr,csvlog&#8217;<br \/>\nlog_line_prefix = &#8216;[%t][%p][%c-%l][%x][%e]%q (%u, %d, %r, %a)&#8217;<br \/>\nlog_filename = &#8216;postgresql.log&#8217;<br \/>\nlog_rotation_age = 0<br \/>\nlog_min_duration_statement = &#8216;1s&#8217;<br \/>\nlog_checkpoints = on<br \/>\nlog_lock_waits = on<br \/>\nlog_temp_files = 0<\/p>\n<p>\u203b\u7f16\u8f91\u90e8\u5206<br \/>\nlog_destination = &#8216;stderr,csvlog&#8217;<br \/>\nlog_line_prefix = &#8216;[%t][%p][%c-%l][%x][%e]%q (%u, %d, %r, %a)&#8217;<br \/>\nlog_filename = &#8216;postgresql.log&#8217;<br \/>\nlog_rotation_age = 0<br \/>\nlog_min_duration_statement = &#8216;1s&#8217;<br \/>\nlog_checkpoints = \u6253\u5f00<br \/>\nlog_lock_waits = \u6253\u5f00<br \/>\nlog_temp_files = 0<\/p><\/blockquote>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>service postgresql-9.4 reload\r\n<\/code><\/pre>\n<h2>\u4fee\u6539Fluentd\u7684\u914d\u7f6e<\/h2>\n<ul class=\"post-ul\">\/etc\/td-agent\/td-agent.conf \u306b\u8a2d\u5b9a\u3092\u8ffd\u8a18\uff08\u30b5\u30fc\u30d0pgsql01,pgsql02,pgsql03\u3067\u306e\u4f5c\u696d\uff09<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nt\">&lt;source&gt;<\/span>\r\n  type      tail\r\n  path      \/var\/log\/pgsql\/postgresql.csv\r\n  pos_file   \/var\/log\/td-agent\/postgresql.log.pos\r\n  tag       postgresql\r\n  format    multiline\r\n  format_firstline  \/^\\d{4}-\\d{2}-\\d{2}\/\r\n  format1   \/^(?<span class=\"nt\">&lt;time&gt;<\/span>[^\",]*),\"?(?<span class=\"nt\">&lt;user_name&gt;<\/span>(?:[^\",]|\"\")*)\"?,\"?(?<span class=\"nt\">&lt;database_name&gt;<\/span>(?:[^\",]|\"\")*)\"?,(?<span class=\"nt\">&lt;process_id&gt;<\/span>[^\",]*),\"?(?<span class=\"nt\">&lt;connection_from&gt;<\/span>(?:[^\",]|\"\")*)\"?,(?<span class=\"nt\">&lt;session_id&gt;<\/span>[^\",]*),(?<span class=\"nt\">&lt;session_line_num&gt;<\/span>[^\",]*),\"?(?<span class=\"nt\">&lt;command_tag&gt;<\/span>(?:[^\",]|\"\")*)\"?,(?<span class=\"nt\">&lt;session_start_time&gt;<\/span>[^\",]*),(?<span class=\"nt\">&lt;virtual_transaction_id&gt;<\/span>[^\",]*),(?<span class=\"nt\">&lt;transaction_id&gt;<\/span>[^\",]*),(?<span class=\"nt\">&lt;error_severity&gt;<\/span>[^\",]*),(?<span class=\"nt\">&lt;sql_state_code&gt;<\/span>[^\",]*),\"?(?<span class=\"nt\">&lt;message&gt;<\/span>(?:[^\"]|\"\")*)\"?,(?<span class=\"nt\">&lt;detail&gt;<\/span>[^\",]*),\"?(?<span class=\"nt\">&lt;hint&gt;<\/span>(?:[^\",]|\"\")*)\"?,(?<span class=\"nt\">&lt;internal_query&gt;<\/span>[^\",]*),(?<span class=\"nt\">&lt;internal_query_pos&gt;<\/span>[^\",]*),(?<span class=\"nt\">&lt;context&gt;<\/span>[^\",]*),\"?(?<span class=\"nt\">&lt;query&gt;<\/span>(?:[^\"]|\"\")*)\"?,(?<span class=\"nt\">&lt;query_pos&gt;<\/span>[^\",]*),(?<span class=\"nt\">&lt;location&gt;<\/span>[^\",]*),\"?(?<span class=\"nt\">&lt;application_name&gt;<\/span>(?:[^\",]|\"\")*)\"?$\/\r\n<span class=\"nt\">&lt;\/source&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;match<\/span> <span class=\"err\">postgresql<\/span><span class=\"nt\">&gt;<\/span>\r\n  type rewrite_tag_filter\r\n  rewriterule1  message  ^duration:                             raw.postgresql.slow_query\r\n  rewriterule2  message  ^checkpoints\\sare\\soccurring\\stoo\\sfrequently                                                                                  postgresql.checkpoints.frequently\r\n  rewriterule3  message  ^checkpoint\\sstarting:                 postgresql.checkpoint.start\r\n  rewriterule4  message  ^checkpoint\\scomplete:                 postgresql.checkpoint.complete\r\n  rewriterule5  message  ^automatic                             postgresql.vacuum\r\n  rewriterule6  message  ^temporary file:                       postgresql.tempfiles\r\n  rewriterule7  message  ^process.*detected\\sdeadlock           postgresql.deadlock\r\n  rewriterule8  message  ^process.*(still waiting|acquired)     postgresql.lockwait\r\n  rewriterule9  message  .*                                     postgresql.others\r\n<span class=\"nt\">&lt;\/match&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;match<\/span> <span class=\"err\">raw.postgresql.slow_query<\/span><span class=\"nt\">&gt;<\/span>\r\n  type parser\r\n  remove_prefix raw\r\n  reserve_data  yes\r\n  key_name      message\r\n  format        \/^duration: (?<span class=\"nt\">&lt;duration&gt;<\/span>[0-9\\.]+) ms  statement: (?<span class=\"nt\">&lt;statement&gt;<\/span>.+)$\/\r\n<span class=\"nt\">&lt;\/match&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;match<\/span> <span class=\"err\">{postgresql.**}<\/span><span class=\"nt\">&gt;<\/span>\r\n  type record_reformer\r\n  renew_record false\r\n  enable_ruby true\r\n  tag pgsql.${tag_suffix[1]}\r\n  <span class=\"nt\">&lt;record&gt;<\/span>\r\n    hostname ${hostname}\r\n  <span class=\"nt\">&lt;\/record&gt;<\/span>\r\n<span class=\"nt\">&lt;\/match&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;match<\/span> <span class=\"err\">{pgsql.**}<\/span><span class=\"nt\">&gt;<\/span>\r\n  type forward\r\n  <span class=\"nt\">&lt;server&gt;<\/span>\r\n    host 192.168.1.20\r\n    port 29680\r\n  <span class=\"nt\">&lt;\/server&gt;<\/span>\r\n  flush_interval 10s\r\n<span class=\"nt\">&lt;\/match&gt;<\/span>\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\/etc\/td-agent\/td-agent.conf \u306b\u8a2d\u5b9a\u3092\u8ffd\u8a18\uff08\u30b5\u30fc\u30d0zabbix\u3067\u306e\u4f5c\u696d\uff09<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nt\">&lt;source&gt;<\/span>\r\n  type forward\r\n  port 29680\r\n<span class=\"nt\">&lt;\/source&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;match<\/span> <span class=\"err\">{pgsql.**}<\/span><span class=\"nt\">&gt;<\/span>\r\n  type          pgjson\r\n  host          localhost\r\n  port          5432\r\n  sslmode       prefer\r\n  database      fluentd\r\n  table         fluentd\r\n  user          postgres\r\n  password      postgres\r\n  time_col      time\r\n  tag_col       tag\r\n  record_col    record\r\n<span class=\"nt\">&lt;\/match&gt;<\/span>\r\n<\/code><\/pre>\n<h2>\u521b\u5efa\u7528\u4e8e\u5b58\u50a8\u65e5\u5fd7\u6570\u636e\u7684\u8868\uff08Zabbix\u670d\u52a1\u5668\uff09\u3002<\/h2>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>su - postgres\r\n<span class=\"nv\">$ <\/span>psql\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"o\">#<\/span> <span class=\"k\">CREATE<\/span> <span class=\"k\">DATABASE<\/span> <span class=\"n\">fluentd<\/span><span class=\"p\">;<\/span>\r\n<span class=\"o\">#<\/span> <span class=\"err\">\u00a5<\/span><span class=\"k\">c<\/span> <span class=\"n\">fluentd<\/span>\r\n<span class=\"o\">#<\/span> <span class=\"k\">CREATE<\/span> <span class=\"k\">TABLE<\/span> <span class=\"n\">fluentd<\/span> <span class=\"p\">(<\/span><span class=\"n\">tag<\/span> <span class=\"nb\">Text<\/span><span class=\"p\">,<\/span> <span class=\"nb\">time<\/span> <span class=\"n\">Timestamptz<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span> <span class=\"n\">Jsonb<\/span><span class=\"p\">);<\/span>\r\n<\/code><\/pre>\n<h2>\u5728Zabbix\u3001pgsql01\u3001pgsql02\u548cpgsql03\u4e0a\u542f\u52a8Fluentd\u3002<\/h2>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>service td-agent start\r\n<\/code><\/pre>\n<h1>\u7528\u4e8e\u5b58\u50a8\u767b\u5f55\u6570\u636e\u7684\u8868\u7684SQL\u793a\u4f8b\u3002<\/h1>\n<h2>\u641c\u7d22\u6162\u67e5\u8be2\uff08\u8017\u65f6\u957f\u7684\u524d10\u9879\uff09\u3002<\/h2>\n<pre class=\"post-pre\"><code><span class=\"o\">#<\/span> <span class=\"k\">select<\/span> <span class=\"nb\">time<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span><span class=\"o\">#&gt;&gt;<\/span><span class=\"s1\">'{hostname}'<\/span> <span class=\"k\">as<\/span> <span class=\"k\">host<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span><span class=\"o\">#&gt;&gt;<\/span><span class=\"s1\">'{user_name}'<\/span> <span class=\"k\">as<\/span> <span class=\"k\">user<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span><span class=\"o\">#&gt;&gt;<\/span><span class=\"s1\">'{database_name}'<\/span> <span class=\"k\">as<\/span> <span class=\"n\">db<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span><span class=\"o\">#&gt;&gt;<\/span><span class=\"s1\">'{duration}'<\/span> <span class=\"k\">as<\/span> <span class=\"n\">duration<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span><span class=\"o\">#&gt;&gt;<\/span><span class=\"s1\">'{statement}'<\/span> <span class=\"k\">as<\/span> <span class=\"k\">statement<\/span> <span class=\"k\">from<\/span> <span class=\"n\">fluentd<\/span> <span class=\"k\">where<\/span> <span class=\"n\">tag<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'pgsql.slow_query'<\/span> <span class=\"k\">ORDER<\/span> <span class=\"k\">BY<\/span> <span class=\"p\">(<\/span><span class=\"n\">record<\/span><span class=\"o\">#&gt;<\/span><span class=\"s1\">'{duration}'<\/span><span class=\"p\">)<\/span> <span class=\"k\">desc<\/span> <span class=\"k\">LIMIT<\/span> <span class=\"mi\">10<\/span><span class=\"p\">;<\/span>\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u6587\u7ae0\u7684\u6982\u8981 \u7ed9\u5927\u5bb6\u4ecb\u7ecd\u4e00\u4e2a\u80fd\u591f\u8f7b\u677e\u76d1\u63a7\u548c\u64cd\u4f5c PostgreSQL \u7684\u5de5\u5177\u7684\u6f14\u8bb2\uff0c\u6f14\u8bb2\u662f\u57282015\u5e746\u670813\u65e5 [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-42176","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u642d\u5efapg_monz\u548cFluentd\u7684\u8bd5\u9a8c\u73af\u5883 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u642d\u5efapg_monz\u548cfluentd\u7684\u8bd5\u9a8c\u73af\u5883\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u642d\u5efapg_monz\u548cFluentd\u7684\u8bd5\u9a8c\u73af\u5883\" \/>\n<meta property=\"og:description\" content=\"\u6587\u7ae0\u7684\u6982\u8981 \u7ed9\u5927\u5bb6\u4ecb\u7ecd\u4e00\u4e2a\u80fd\u591f\u8f7b\u677e\u76d1\u63a7\u548c\u64cd\u4f5c PostgreSQL \u7684\u5de5\u5177\u7684\u6f14\u8bb2\uff0c\u6f14\u8bb2\u662f\u57282015\u5e746\u670813\u65e5 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u642d\u5efapg_monz\u548cfluentd\u7684\u8bd5\u9a8c\u73af\u5883\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-19T02:48:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-03T22:14:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d4b1a37434c4406cb624e\/3-0.png\" \/>\n<meta name=\"author\" content=\"\u6e05, \u626c\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u626c\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/\",\"name\":\"\u642d\u5efapg_monz\u548cFluentd\u7684\u8bd5\u9a8c\u73af\u5883 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-01-19T02:48:57+00:00\",\"dateModified\":\"2024-05-03T22:14:39+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u642d\u5efapg_monz\u548cFluentd\u7684\u8bd5\u9a8c\u73af\u5883\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\",\"name\":\"\u6e05, \u626c\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u626c\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u642d\u5efapg_monz\u548cFluentd\u7684\u8bd5\u9a8c\u73af\u5883 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u642d\u5efapg_monz\u548cfluentd\u7684\u8bd5\u9a8c\u73af\u5883\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u642d\u5efapg_monz\u548cFluentd\u7684\u8bd5\u9a8c\u73af\u5883","og_description":"\u6587\u7ae0\u7684\u6982\u8981 \u7ed9\u5927\u5bb6\u4ecb\u7ecd\u4e00\u4e2a\u80fd\u591f\u8f7b\u677e\u76d1\u63a7\u548c\u64cd\u4f5c PostgreSQL \u7684\u5de5\u5177\u7684\u6f14\u8bb2\uff0c\u6f14\u8bb2\u662f\u57282015\u5e746\u670813\u65e5 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u642d\u5efapg_monz\u548cfluentd\u7684\u8bd5\u9a8c\u73af\u5883\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-01-19T02:48:57+00:00","article_modified_time":"2024-05-03T22:14:39+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d4b1a37434c4406cb624e\/3-0.png"}],"author":"\u6e05, \u626c","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u626c","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"6 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/","name":"\u642d\u5efapg_monz\u548cFluentd\u7684\u8bd5\u9a8c\u73af\u5883 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-01-19T02:48:57+00:00","dateModified":"2024-05-03T22:14:39+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u642d\u5efapg_monz\u548cFluentd\u7684\u8bd5\u9a8c\u73af\u5883"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461","name":"\u6e05, \u626c","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","caption":"\u6e05, \u626c"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bapg_monz%e5%92%8cfluentd%e7%9a%84%e8%af%95%e9%aa%8c%e7%8e%af%e5%a2%83%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=42176"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42176\/revisions"}],"predecessor-version":[{"id":96606,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42176\/revisions\/96606"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=42176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=42176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=42176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}