postgresql10监控-使用EXTENSIONS模式

本文介绍了如何使用EXTENSIONS模式对postgresql10进行监控,包括配置postgres,安装postgresql10-contrib,修改配置文件,添加extension,以及设置zabbix客户端,特别是导入temperature扩展以实现有效的监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

postgres配置

需要安装postgresql10-contrib

在/var/lib/pgsql/10/data/postgresql.conf最后添加

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.max = 10000
pg_stat_statements.track = all

在/var/lib/pgsql/10/data/pg_hba.conf添加

host    all             postgres        127.0.0.1/32            trust
host    all             postgres        ::1/128                 trust

创建extension

psql
    CREATE EXTENSION pg_buffercache;
    \c zabbix
    create extension pg_buffercache;

    create extension pg_stat_statements;
    \c zabbix
    create extension pg_stat_statements;

zabbix客户端配置

# EXTERNAL EXTENSIONS #
UserParameter=pgsql.buffercache.clear[*],psql -qAtX $1 -c "select count(*) from pg_buffercache where not isdirty"
UserParameter=pgsql.buffercache.dirty[*],psql -qAtX $1 -c "select count(*) from pg_buffercache where isdirty"
UserParameter=pgsql.buffercache.used[*],psql -qAtX $1 -c "select count(*) from pg_buffercache where reldatabase is not null"
UserParameter=pgsql.buffercache.total[*],psql -qAtX $1 -c "select count(*) from pg_buffercache"

# SIMPLE DISCOVERY #
UserParameter=pgsql.db.discovery[*],/bin/echo -n '{"data":['; for db in $(psql -qAtX $1 -c "select datname from pg_database where not datistemplate and datallowconn and datname!='postgres'"); do /bin/echo -n "{\"{#DBNAME}\": \"$db\"},"; done |sed -e 's:,$::'; /bin/echo -n ']}'
UserParameter=pgsql.table.discovery[*],/bin/echo -n '{"data":['; for table in $(psql -qAtX -F. $1 -c "select n.nspname,c.relname from pg_catalog.pg_class c left join pg_catalog.pg_namespace n on n.oid = c.relnamespace where c.relkind in ('r','s','') and n.nspname not in ('^pg_toast','information_schema','pg_catalog')"); do /bin/echo -n "{\"{#TABLENAME}\": \"$table\"},"; done |sed -e 's:\},$:\}:'; /bin/echo -n ']}'
UserParameter=pgsql.streaming.discovery[*],/bin/echo -n '{"data":['; for replica in $(psql -qAtX $1 -c "select client_addr from pg_stat_replication"); do /bin/echo -n "{\"{#HOTSTANDBY}\": \"$replica\"},"; done |sed -e 's:,$::'; /bin/echo -n ']}'

# GENERAL INFORMATION #
UserParameter=pgsql.ping[*],/bin/echo -e "\\\timing \n select 1" | psql -qAtX $1 | tail -1 | sed 's/:/ /g;s/:/ /g' | cut -d' ' -f2
UserParameter=pgsql.uptime[*],psql -qAtX $1 -c "select date_part('epoch', now() - pg_postmaster_start_time())::int"
UserParameter=pgsql.cache.hit[*],psql -qAtX $1 -c "select round(sum(blks_hit)*100/sum(blks_hit+blks_read), 2) from pg_stat_database"
UserParameter=pgsql.version[*],psql -qAtX $1 -c "SELECT version() AS pg_version"

# OTHER INFORMATION #
UserParameter=pgsql.table.tuples[*],psql -qAtX $1 -c "select count(*) from $2"
UserParameter=pgsql.setting[*],psql -qAtX $1 -c "select current_setting('$2')"
UserParameter=pgsql.trigger[*],psql -qAtX $1 -c "select count(*) from pg_trigger where tgenabled='O' and tgname='$2'"
UserParameter=pgsql.wal.write[*],psql -qAtX $1 -c "select pg_xlog_location_diff(pg_current_xlog_location(),'0/00000000')"
UserParameter=pgsql.wal.count[*],psql -qAtX $1 -c "select count(*) from pg_ls_dir('pg_wal')"

# BACKGROUND WRITER STATS #
UserParameter=pgsql.bgwriter.checkpoints_timed[*],psql -qAtX $1 -c "select checkpoints_timed from pg_stat_bgwriter"
UserParameter=pgsql.bgwriter.checkpoints_req[*],psql -qAtX $1 -c "select checkpoints_req from pg_stat_bgwriter"
UserParameter=pgsql.bgwriter.checkpoint_write_time[*],psql -qAtX $1 -c "select checkpoint_write_time from pg_stat_bgwriter"
UserParameter=pgsql.bgwriter.checkpoint_sync_time[*],psql -qAtX $1 -c "select checkpoint_sync_time from pg_stat_bgwriter"
UserParameter=pgsql.bgwriter.buffers_checkpoint[*],psql -qAtX $1 -c "select buffers_checkpoint from pg_stat_bgwriter"
UserParameter=pgsql.bgwriter.buffers_clean[*],psql -qAtX $1 -c "select buffers_clean from pg_stat_bgwriter"
UserParameter=pgsql.bgwriter.maxwritten_clean[*],psql -qAtX $1 -c "select maxwritten_clean from pg_stat_bgwriter"
UserParameter=pgsql.bgwriter.buffers_backend[*],psql -qAtX $1 -c "select buffers_backend from pg_stat_bgwriter"
UserParameter=pgsql.bgwriter.buffers_backend_fsync[*],psql -qAtX $1 -c "select buffers_backend_fsync from pg_stat_bgwriter"
UserParameter=pgsql.bgwriter.buffers_alloc[*],psql -qAtX $1 -c "select buffers_alloc from pg_stat_bgwriter"

# CONNECTIONS #
UserParameter=pgsql.connections.active[*],psql -qAtX $1 -c "select count(*) from pg_stat_activity where state = 'active'"
UserParameter=pgsql.connections.idle[*],psql -qAtX $1 -c "select count(*) from pg_stat_activity where state = 'idle'"
UserParameter=pgsql.connections.idle_in_transaction[*],psql -qAtX $1 -c "select count(*) from pg_stat_activity where state = 'idle in transaction'"
UserParameter=pgsql.connections.total[*],psql -qAtX $1 -c "select count(*) from pg_stat_activity"
UserParameter=pgsql.connections.total_pct[*],psql -qAtX $1 -c "select count(*)*100/(select current_setting('max_connections')::int) from pg_stat_activity"
UserParameter=pgsql.connections.waiting[*],psql -qAtX $1 -c "select count (*) from pg_stat_activity where wait_event IS NOT NULL"
UserParameter=pgsql.connections.prepared[*],psql -qAtX $1 -c "select count(*) from pg_prepared_xacts"

# TRANSACTIONS #
UserParameter=pgsql.transactions.idle[*],psql -qAtX $1 -c "select coalesce(extract(epoch from max(age(now(), query_start))), 0) from pg_stat_activity where state='idle in transaction'"
UserParameter=pgsql.transactions.active[*],psql -qAtX $1 -c "select coalesce(extract(epoch from max(age(now(), query_start))), 0) from pg_stat_activity where state <> 'idle in transaction' and state <> 'idle'"
UserParameter=pgsql.transactions.waiting[*],psql -qAtX $1 -c "select coalesce(extract(epoch from max(age(now(), query_start))), 0) from pg_stat_activity where wait_event IS NOT NULL"
UserParameter=pgsql.transactions.prepared[*],psql -qAtX $1 -c "select coalesce(extract(epoch from max(age(now(), prepared))), 0) from pg_prepared_xacts"
UserParameter=pgsql.pgstatstatements.avg_query_time[*],psql -qAtX $1 -c "select round((sum(total_time) / sum(calls))::numeric,2) from pg_stat_statements"

# SUMMARY DATABASE STATS #
UserParameter=pgsql.dbstat.sum.numbackends[*],psql -qAtX $1 -c "select sum(numbackends) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.xact_commit[*],psql -qAtX $1 -c "select sum(xact_commit) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.xact_rollback[*],psql -qAtX $1 -c "select sum(xact_rollback) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.blks_read[*],psql -qAtX $1 -c "select sum(blks_read) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.blks_hit[*],psql -qAtX $1 -c "select sum(blks_hit) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.tup_returned[*],psql -qAtX $1 -c "select sum(tup_returned) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.tup_fetched[*],psql -qAtX $1 -c "select sum(tup_fetched) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.tup_inserted[*],psql -qAtX $1 -c "select sum(tup_inserted) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.tup_updated[*],psql -qAtX $1 -c "select sum(tup_updated) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.tup_deleted[*],psql -qAtX $1 -c "select sum(tup_deleted) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.conflicts[*],psql -qAtX $1 -c "select sum(conflicts) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.temp_files[*],psql -qAtX $1 -c "select sum(temp_files) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.temp_bytes[*],psql -qAtX $1 -c "select sum(temp_bytes) from pg_stat_database"
UserParameter=pgsql.dbstat.sum.deadlocks[*],psql -qAtX $1 -c "select sum(deadlocks) from pg_stat_database"

# SPECIFIED DATABASE STATS - TODO: CREATE LLD #
UserParameter=pgsql.dbstat.numbackends[*],psql -qAtX $1 -c "select numbackends from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.xact_commit[*],psql -qAtX $1 -c "select xact_commit from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.xact_rollback[*],psql -qAtX $1 -c "select xact_rollback from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.blks_read[*],psql -qAtX $1 -c "select blks_read from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.blks_hit[*],psql -qAtX $1 -c "select blks_hit from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.tup_returned[*],psql -qAtX $1 -c "select tup_returned from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.tup_fetched[*],psql -qAtX $1 -c "select tup_fetched from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.tup_inserted[*],psql -qAtX $1 -c "select tup_inserted from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.tup_updated[*],psql -qAtX $1 -c "select tup_updated from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.tup_deleted[*],psql -qAtX $1 -c "select tup_deleted from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.conflicts[*],psql -qAtX $1 -c "select conflicts from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.temp_files[*],psql -qAtX $1 -c "select temp_files from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.temp_bytes[*],psql -qAtX $1 -c "select temp_bytes from pg_stat_database where datname = '$2'"
UserParameter=pgsql.dbstat.deadlocks[*],psql -qAtX $1 -c "select deadlocks from pg_stat_database where datname = '$2'"

# DATABASE/TABLE/INDEXES SIZE - TODO: CREATE LLD #
UserParameter=pgsql.db.size[*],psql -qAtX $1 -c "select pg_database_size('$2')"
UserParameter=pgsql.table.size[*],psql -qAtX $1 -c "select pg_relation_size('$2')"
UserParameter=pgsql.index.size[*],psql -qAtX $1 -c "select pg_total_relation_size('$2') - pg_relation_size('$2')"

# TABLE STATS #
UserParameter=pgsql.table.stat.heap_blks_read[*],psql -qAtX $1 -c "select coalesce(heap_blks_read,0) from pg_statio_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.heap_blks_hit[*],psql -qAtX $1 -c "select coalesce(heap_blks_hit,0) from pg_statio_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.idx_blks_read[*],psql -qAtX $1 -c "select coalesce(idx_blks_read,0) from pg_statio_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.idx_blks_hit[*],psql -qAtX $1 -c "select coalesce(idx_blks_hit,0) from pg_statio_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.toast_blks_read[*],psql -qAtX $1 -c "select coalesce(toast_blks_read,0) from pg_statio_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.toast_blks_hit[*],psql -qAtX $1 -c "select coalesce(toast_blks_hit,0) from pg_statio_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.tidx_blks_read[*],psql -qAtX $1 -c "select coalesce(tidx_blks_read,0) from pg_statio_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.tidx_blks_hit[*],psql -qAtX $1 -c "select coalesce(tidx_blks_hit,0) from pg_statio_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.seq_scan[*],psql -qAtX $1 -c "select coalesce(seq_scan,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.seq_tup_read[*],psql -qAtX $1 -c "select coalesce(seq_tup_read,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.idx_scan[*],psql -qAtX $1 -c "select coalesce(idx_scan,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.idx_tup_fetch[*],psql -qAtX $1 -c "select coalesce(idx_tup_fetch,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.n_tup_ins[*],psql -qAtX $1 -c "select coalesce(n_tup_ins,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.n_tup_del[*],psql -qAtX $1 -c "select coalesce(n_tup_del,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.n_tup_upd[*],psql -qAtX $1 -c "select coalesce(n_tup_upd,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.n_tup_hot_upd[*],psql -qAtX $1 -c "select coalesce(n_tup_hot_upd,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.n_live_tup[*],psql -qAtX $1 -c "select coalesce(n_live_tup,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.n_dead_tup[*],psql -qAtX $1 -c "select coalesce(n_dead_tup,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.vacuum_count[*],psql -qAtX $1 -c "select coalesce(vacuum_count,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.autovacuum_count[*],psql -qAtX $1 -c "select coalesce(autovacuum_count,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.analyze_count[*],psql -qAtX $1 -c "select coalesce(analyze_count,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"
UserParameter=pgsql.table.stat.autoanalyze_count[*],psql -qAtX $1 -c "select coalesce(autoanalyze_count,0) from pg_stat_user_tables where (schemaname || '.' || relname) = '$2'"

# STREAMING REPLICATION #
UserParameter=pgsql.streaming.count[*],psql -qAtX $1 -c "select count(*) from pg_stat_replication"
UserParameter=pgsql.streaming.state[*],psql -qAtX $1 -c "select pg_is_in_recovery()"
#UserParameter=pgsql.streaming.lag.bytes[*],psql -qAtX $1 -c "select greatest(0,pg_xlog_location_diff(pg_current_xlog_location(), replay_location)) from pg_stat_replication where client_addr = '$2'"
UserParameter=pgsql.streaming.lag.bytes[*],psql -qAtX $1 -c "select pg_wal_lsn_diff(sent_lsn,replay_lsn) from pg_stat_replication where client_addr = '$2';"
UserParameter=pgsql.streaming.lag.seconds[*],psql -qAtX -h $2 $1 -c "select extract(epoch from now() - pg_last_xact_replay_timestamp())"

导入temperature

<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
    <version>3.4</version>
    <date>2018-01-17T07:06:43Z</date>
    <groups>
        <group>
            <name>EQUINIX.TESTE</name>
        </group>
    </groups>
    <templates>
        <template>
            <template>PostgreSQL Simple Template</template>
            <name>PostgreSQL Simple Template</name>
            <description/>
            <groups>
                <group>
                    <name>EQUINIX.TESTE</name>
                </group>
            </groups>
            <applications>
                <application>
                    <name>Background Writer</name>
                </application>
                <application>
                    <name>Buffers &amp; Caches</name>
                </application>
                <application>
                    <name>Configuration</name>
                </application>
                <application>
                    <name>Connections</name>
                </application>
                <application>
                    <name>Databases</name>
                </application>
                <application>
                    <name>Database Status</name>
                </application>
                <application>
                    <name>General Information</name>
                </application>
                <application>
                    <name>Operations</name>
                </application>
                <application>
                    <name>PostgreSQL</name>
                </application>
                <application>
                    <name>Streaming Replication</name>
                </application>
                <application>
                    <name>Table Info</name>
                </application>
                <application>
                    <name>Transactions</name>
                </application>
                <application>
                    <name>Write-Ahead Logging</name>
                </application>
            </applications>
            <items>
                <item>
                    <name>buffers allocated</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.bgwriter.buffers_alloc[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>B</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Background Writer</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>10</type>
                            <params/>
                        </step>
                        <step>
                            <type>1</type>
                            <params>8192</params>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>buffers written directly by a backend</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.bgwriter.buffers_backend[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>B</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Background Writer</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>10</type>
                            <params/>
                        </step>
                        <step>
                            <type>1</type>
                            <params>8192</params>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>times a backend had to execute its own fsync</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.bgwriter.buffers_backend_fsync[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Background Writer</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>9</type>
                            <params/>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>buffers written during checkpoints</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.bgwriter.buffers_checkpoint[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>B</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Background Writer</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>10</type>
                            <params/>
                        </step>
                        <step>
                            <type>1</type>
                            <params>8192</params>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>buffers written by the bgwriter</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.bgwriter.buffers_clean[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>B</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Background Writer</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>10</type>
                            <params/>
                        </step>
                        <step>
                            <type>1</type>
                            <params>8192</params>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>required checkpoints</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.bgwriter.checkpoints_req[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Background Writer</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>9</type>
                            <params/>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>checkpoints by timeout</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.bgwriter.checkpoints_timed[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Background Writer</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>9</type>
                            <params/>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>sync time</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.bgwriter.checkpoint_sync_time[{$PG_CONNINFO}]</key>
                    <delay>30</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>ms</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Background Writer</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>9</type>
                            <params/>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>write time</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.bgwriter.checkpoint_write_time[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>ms</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Background Writer</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>9</type>
                            <params/>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>max written</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.bgwriter.maxwritten_clean[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>ms</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Background Writer</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>9</type>
                            <params/>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>clear buffers</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.buffercache.clear[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>B</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Buffers &amp; Caches</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>1</type>
                            <params>8192</params>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>dirty buffers</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.buffercache.dirty[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>B</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Buffers &amp; Caches</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>1</type>
                            <params>8192</params>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>total buffers</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.buffercache.total[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>B</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Buffers &amp; Caches</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>1</type>
                            <params>8192</params>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>used buffers</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.buffercache.used[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units>B</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Buffers &amp; Caches</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing>
                        <step>
                            <type>1</type>
                            <params>8192</params>
                        </step>
                    </preprocessing>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>cache hit ratio</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.cache.hit[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>0</value_type>
                    <allowed_hosts/>
                    <units>%</units>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description>Check cache hit ratio in %.</description>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Buffers &amp; Caches</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing/>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>number of active connections</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.connections.active[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description>Total count of active clients who connected to the PostgreSQL service and performing work.</description>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Connections</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                    <preprocessing/>
                    <jmx_endpoint/>
                    <master_item/>
                </item>
                <item>
                    <name>number of idle connections</name>
                    <type>7</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>pgsql.connections.idle[{$PG_CONNINFO}]</key>
                    <delay>60</delay>
                    <history>30d</history>
                    <trends>180d</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description>Total count of idle clients connected to the PostgreSQL service.</description>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
        
<think>我们正在讨论Zabbix的组件及其功能。根据引用内容,Zabbix包含多个组件,包括核心组件和可选组件。下面将详细说明每个组件及其功能。 根据引用[3],Zabbix监控系统包含四个主要组件:Zabbix Server、Zabbix proxy、Zabbix Database和Zabbix GUI。同时,引用[1]和[4]还提到了其他进程,如zabbix_agentd、zabbix_get、zabbix_sender、zabbix_java_gateway等。 下面将逐一说明这些组件的功能: 1. **Zabbix Server**: - 这是Zabbix的核心组件,负责接收来自被监控设备的数据(通过agent或proxy),处理数据(如计算触发器、告警等),并将数据存储到数据库中[^3]。 - 它管理着所有的监控规则,包括数据收集、触发器、告警等[^3]。 - 由C语言编写,性能较高[^3]。 2. **Zabbix Database**: - 存储所有Zabbix配置信息以及收集到的监控数据[^3]。 - 支持多种数据库,如MySQL、PostgreSQL、Oracle等[^3]。 - 数据库的选择会影响Zabbix的性能和扩展性[^5]。 3. **Zabbix GUI (Web前端)**: - 提供基于Web的管理界面,用户可以通过浏览器进行配置、查看监控数据和报表等[^3]。 - 由PHP编写,运行在Web服务器(如Apache或Nginx)上[^3]。 4. **Zabbix Proxy**: - 可选组件,用于分布式监控环境中,可以分担Zabbix Server的负载[^3]。 - 它从被监控设备收集数据,并暂存到本地数据库,然后转发给Zabbix Server[^3]。 - 当与Server的网络连接中断时,Proxy可以暂存数据,待连接恢复后再发送,保证数据不丢失[^3]。 5. **Zabbix Agent**: - 运行在被监控主机上的守护进程,用于收集主机的性能数据(如CPU、内存、磁盘等)[^4]。 - 有两种工作模式:被动模式(等待Server来请求数据)和主动模式(主动将数据发送给Server)[^4]。 6. **Zabbix Sender**: - 一个命令行工具,用于被监控主机主动发送数据给Zabbix Server或Proxy[^4]。 - 通常用于主动模式下的数据发送,或者用于发送自定义数据[^4]。 7. **Zabbix Get**: - 一个命令行工具,通常运行在Server或Proxy上,用于向被监控主机上的Agent请求数据[^4]。 - 主要用于测试和故障排除[^4]。 8. **Zabbix Java Gateway**: - 可选组件,用于监控Java应用程序,如JMX(Java Management Extensions监控[^1][^4]。 - 它只能主动去获取数据,而不能被动获取数据,其数据最终会传递给Server或Proxy[^4]。 这些组件共同协作,实现分布式监控。工作流程大致如下: -监控主机上的Agent(或通过SNMP)收集数据,发送给Server或Proxy。 - Proxy(如果使用)将数据转发给Server。 - Server处理数据并存储到数据库- 用户通过Web前端查看监控数据、配置监控项等。 下面用Mermaid图表示数据流(简化版): ```mermaid graph LR A[Agent] -->|发送数据| B(Proxy) A -->|直接发送| C(Server) B -->|转发数据| C C --> D[Database] D --> E[Web前端] F[Java Gateway] --> C G[Sender] --> C H[Get] --> A ``` 注意:实际部署中,Zabbix Server和Database通常部署在同一台服务器或不同服务器,但需要网络互通。Web前端需要能够访问Server和Database。 相关问题: 1. Zabbix Agent主动模式和被动模式的区别是什么? 2. 如何配置Zabbix Proxy以实现分布式监控? 3. Zabbix Server的数据库优化方法有哪些? 4. Zabbix Java Gateway如何配置以监控Tomcat? 5. Zabbix的触发器是如何工作的?</think>### Zabbix 组件及其功能详解 Zabbix 是一个企业级分布式监控系统,包含多个协同工作的核心组件。以下是基于引用内容的详细说明(10分): --- #### 1. **Zabbix Server** - **核心功能**: - 监控系统核心引擎,负责接收、处理和存储所有监控数据(来自 Agent/Proxy/SNMP)[^3][^5]。 - 管理监控规则:包括触发器(Trigger)、告警(Alert)、数据聚合等逻辑[^3]。 - 协调数据流:与数据库通信存储数据,与 Web 前端交互提供配置接口[^3]。 - **关键特性**: - 由 C 语言开发,性能高效[^3][^5]。 - 支持被动模式(等待 Agent 上报)和主动模式(主动拉取数据)[^4]。 --- #### 2. **Zabbix Agent** - **核心功能**: - 部署在被监控主机上,收集本地性能数据(CPU、内存、磁盘等)[^1][^4]。 - 支持两种工作模式- **被动模式**:等待 Server 主动请求数据。 - **主动模式**:主动向 Server/Proxy 发送数据[^4][^5]。 - **应用场景**: - 监控服务器、虚拟机等支持 Agent 安装的设备[^5]。 --- #### 3. **Zabbix Proxy** - **核心功能**: - 分布式监控代理,分担 Server 负载,实现层级化监控架构[^3][^4]。 - 本地缓存数据:临时存储监控数据,在网络中断时避免数据丢失[^3]。 - 支持加密传输:基于证书或共享密钥保障数据安全[^3]。 - **部署优势**: - 扩展监控规模,优化跨地域网络延迟[^3][^5]。 --- #### 4. **Zabbix Database** - **核心功能**: - 存储所有监控数据、配置信息和历史记录[^3][^5]。 - 支持多种数据库:MySQL、PostgreSQL、Oracle 等[^3]。 - **关键作用**: - 为 Server 提供数据持久化存储,为 Web 前端提供查询支持[^3]。 --- #### 5. **Zabbix Web Frontend (GUI)** - **核心功能**: - 基于 PHP 的 Web 管理界面,提供可视化配置和监控视图[^3]。 - 功能包括: - 主机/监控项配置 - 触发器设置 - 仪表盘和报表生成 - 告警管理[^3][^5]。 - **依赖环境**: - 需运行在 Apache/Nginx + PHP 环境中[^3]。 --- #### 6. **辅助工具组件** | **组件** | **功能** | |------------------------|--------------------------------------------------------------------------| | **Zabbix Sender** | 命令行工具,主动向 Server/Proxy 发送监控数据(用于自定义脚本或主动上报)[^4]。 | | **Zabbix Get** | 命令行工具,从 Agent 手动拉取数据(用于故障排查)[^1][^4]。 | | **Zabbix Java Gateway**| 监控 Java 应用(如 Tomcat/JVM),仅支持主动拉取数据[^1][^4]。 | --- #### **组件协作流程** ```mermaid graph LR A[Zabbix Agent] -->|发送数据| B(Zabbix Proxy) A -->|直接发送| C(Zabbix Server) B -->|转发数据| C C --> D[(Zabbix Database)] D --> E[Zabbix Web Frontend] F[Zabbix Sender] --> C G[Zabbix Get] --> A H[Java Gateway] --> C ``` --- #### **核心特性总结** - **分布式架构**:通过 Proxy 实现大规模监控扩展[^3][^5]。 - **多协议支持**:兼容 Agent、SNMP、JMX 等多种数据采集方式[^5]。 - **数据可靠性**:Proxy 本地缓存确保网络中断时不丢数据[^3]。 - **自动化能力**:支持自动发现网络设备和服务器[^5]。 --- ### 相关问题 1. Zabbix Agent 主动模式与被动模式的具体应用场景有何区别? 2. 如何配置 Zabbix Proxy 以实现分布式监控架构? 3. Zabbix 数据库(如 MySQL)的性能优化策略有哪些? 4. Zabbix Java Gateway 监控 Tomcat 的详细步骤是什么? 5. Zabbix 的触发器(Trigger)如何配置以实现多级告警?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值