diff --git a/zabbix-repo/files/zabbix.gpg b/zabbix-repo/files/zabbix.gpg new file mode 100644 index 0000000000000000000000000000000000000000..d814e63d58dc1a8fb9a823c7e4eca32f24bcc463 --- /dev/null +++ b/zabbix-repo/files/zabbix.gpg @@ -0,0 +1,49 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.10 (GNU/Linux) + +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 +ui+/5ZJHakC67t5OgbMas3Hz4Q== +=HHRW +-----END PGP PUBLIC KEY BLOCK----- diff --git a/zabbix-server/files/zabbix-partition.sql b/zabbix-server/files/zabbix-partition.sql new file mode 100644 index 0000000000000000000000000000000000000000..44b8d2946b07a1c225a2530bd02aeeb0f907ce8d --- /dev/null +++ b/zabbix-server/files/zabbix-partition.sql @@ -0,0 +1,37 @@ +-- http://www.dasm.cz/clanek/zabbix-postgresql-a-table-partitioning + +CREATE SCHEMA IF NOT EXISTS partitions AUTHORIZATION zabbix; + +CREATE OR REPLACE FUNCTION zbx_history_partition() RETURNS TRIGGER AS $$ +DECLARE + parttable TEXT; + startdate INT; + enddate INT; +BEGIN + -- Figure out the partition table name + parttable := TG_TABLE_NAME || to_char(to_timestamp(NEW.clock), 'YYYYMM'); + -- Try inserting data to the partition + EXECUTE 'INSERT INTO partitions.' || parttable || ' SELECT ($1).*' USING NEW; + RETURN NULL; + -- If the partition does not exist + EXCEPTION WHEN undefined_table THEN + -- Calculate the start and end dates for the respective day + startdate := EXTRACT(epoch FROM date_trunc('month', to_timestamp(NEW.clock))); + enddate := EXTRACT(epoch FROM date_trunc('month', to_timestamp(NEW.clock) + '1 month'::INTERVAL)); + -- Create new partition with indexes, constraints and all the stuff from parent table and add also the clock check + EXECUTE 'CREATE TABLE partitions.' || parttable || ' (LIKE ' || TG_TABLE_NAME || ' INCLUDING ALL, CHECK (clock >= ' || startdate || ' AND clock < ' || enddate || ')) INHERITS (' || TG_TABLE_NAME || ')'; + -- Retry inserting to the newly created partition + EXECUTE 'INSERT INTO partitions.' || parttable || ' SELECT ($1).*' USING NEW; + RETURN NULL; +END +$$ LANGUAGE plpgsql; + +CREATE TRIGGER tg_history_before_insert BEFORE INSERT ON history FOR EACH ROW EXECUTE PROCEDURE zbx_history_partition(); +CREATE TRIGGER tg_history_uint_before_insert BEFORE INSERT ON history_uint FOR EACH ROW EXECUTE PROCEDURE zbx_history_partition(); +CREATE TRIGGER tg_history_str_before_insert BEFORE INSERT ON history_str FOR EACH ROW EXECUTE PROCEDURE zbx_history_partition(); +CREATE TRIGGER tg_history_text_before_insert BEFORE INSERT ON history_text FOR EACH ROW EXECUTE PROCEDURE zbx_history_partition(); +CREATE TRIGGER tg_history_log_before_insert BEFORE INSERT ON history_log FOR EACH ROW EXECUTE PROCEDURE zbx_history_partition(); +CREATE TRIGGER tg_trends_before_insert BEFORE INSERT ON trends FOR EACH ROW EXECUTE PROCEDURE zbx_history_partition(); +CREATE TRIGGER tg_trends_uint_before_insert BEFORE INSERT ON trends_uint FOR EACH ROW EXECUTE PROCEDURE zbx_history_partition(); + + diff --git a/zabbix-server/handlers/main.yml b/zabbix-server/handlers/main.yml index 53871342f754f3d7fd514fbdc58d4319d837900d..cb79185f4f3761b2fb75a981b20ee0c132a97079 100644 --- a/zabbix-server/handlers/main.yml +++ b/zabbix-server/handlers/main.yml @@ -3,3 +3,7 @@ - name: restart zabbix server service: name=zabbix-server state=restarted +- name: restart postgres + service: name=postgresql state=restarted + delegate_to: "{{ zabbix_db_host }}" + diff --git a/zabbix-server/tasks/main.yml b/zabbix-server/tasks/main.yml index edc349cb70795e3c7f5fd0b4f600e80e6d95f75b..bc26348740f86a2e2b43b6c01f1b705a1cd6af4a 100644 --- a/zabbix-server/tasks/main.yml +++ b/zabbix-server/tasks/main.yml @@ -1,16 +1,111 @@ --- +# recommends install postgres database and snmpd services - name: ensure the server package is installed - apt: name=zabbix-server-pgsql state=latest + apt: name=zabbix-server-pgsql state=latest install_recommends=no notify: - restart zabbix server tags: - packages - zabbix -# TODO configure database connection -# TODO initialize database using (local?) sql files -# TODO configure completely +- name: ensure proper configuration of the server + template: src=zabbix_server.conf.j2 dest=/etc/zabbix/zabbix_server.conf + notify: + - restart zabbix server + tags: + - config + - zabbix + +- name: ensure the zabbix user has a home directory + file: path=/var/lib/zabbix state=directory owner=zabbix group=zabbix + tags: + - config + - zabbix + +- name: ensure the zabbix user has a pgpass file + template: src=pgpass.j2 dest=/var/lib/zabbix/.pgpass owner=zabbix group=zabbix mode=0600 + tags: + - config + - database + - zabbix + +- name: ensure there is the parition optimization sql file + copy: src=zabbix-partition.sql dest=/usr/share/doc/zabbix-server-pgsql/zabbix-partition.sql + tags: + - database + - zabbix + +- name: ensure we have a user on the database server + postgresql_user: name="{{ zabbix_db_user }}" password="{{ zabbix_db_password }}" state=present role_attr_flags=NOSUPERUSER,NOCREATEDB + become: yes + become_user: postgres + delegate_to: "{{ zabbix_db_host }}" + tags: + - database + - zabbix + +- name: ensure we have a database on the database server + postgresql_db: name="{{ zabbix_db_name }}" owner="{{ zabbix_db_user }}" state=present + become: yes + become_user: postgres + delegate_to: "{{ zabbix_db_host }}" + tags: + - database + - zabbix + +- name: ensure our user has the necessary privileges for the database + postgresql_privs: database="{{ zabbix_db_name }}" roles="{{ zabbix_db_user }}" privs=ALL state=present type=database + become: yes + become_user: postgres + delegate_to: "{{ zabbix_db_host }}" + tags: + - database + - zabbix + +- name: ensure the database server listens on the external interface + replace: dest=/etc/postgresql/9.4/main/postgresql.conf regexp="#listen_addresses = 'localhost'" replace="listen_addresses = '*'" + notify: + - restart postgres + delegate_to: "{{ zabbix_db_host }}" + tags: + - database + - zabbix + +- name: ensure the database server allows connections from the server + lineinfile: dest=/etc/postgresql/9.4/main/pg_hba.conf insertafter="host all all 127.0.0.1/32 md5" line="host {{ zabbix_db_name }} {{ zabbix_db_user }} {{ ansible_fqdn }} md5" state=present + notify: + - restart postgres + delegate_to: "{{ zabbix_db_host }}" + tags: + - database + - zabbix + +- meta: flush_handlers + +- name: apply database schema + shell: zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | psql -h {{ zabbix_db_host }} -U {{ zabbix_db_user }} -w -d {{ zabbix_db_name }} && touch /var/lib/zabbix/.db_schema_created + args: + creates: /var/lib/zabbix/.db_schema_created + become: yes + become_user: zabbix + notify: + - restart zabbix server + tags: + - database + - zabbix + +- name: apply database schema optimization + shell: psql -h {{ zabbix_db_host }} -U {{ zabbix_db_user }} -w -d {{ zabbix_db_name }} -f /usr/share/doc/zabbix-server-pgsql/zabbix-partition.sql && touch /var/lib/zabbix/.db_schema_optimized + args: + creates: /var/lib/zabbix/.db_schema_created + become: yes + become_user: zabbix + notify: + - restart zabbix server + tags: + - database + - zabbix - name: ensure the server is enabled and running service: name=zabbix-server state=running enabled=yes diff --git a/zabbix-server/templates/pgpass.j2 b/zabbix-server/templates/pgpass.j2 new file mode 100644 index 0000000000000000000000000000000000000000..043dfcf17400ca3f79cd35d57b208ddd8061cdd4 --- /dev/null +++ b/zabbix-server/templates/pgpass.j2 @@ -0,0 +1 @@ +{{ zabbix_db_host }}:5432:{{ zabbix_db_name }}:{{ zabbix_db_user }}:{{ zabbix_db_password }} diff --git a/zabbix-server/templates/zabbix_server.conf.j2 b/zabbix-server/templates/zabbix_server.conf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..f92c4f67e49a6a5c5fa72f52d6f4254677e5a9d0 --- /dev/null +++ b/zabbix-server/templates/zabbix_server.conf.j2 @@ -0,0 +1,649 @@ +# This is a configuration file for Zabbix server daemon +# To get more information about Zabbix, visit http://www.zabbix.com + +############ GENERAL PARAMETERS ################# + +### Option: ListenPort +# Listen port for trapper. +# +# Mandatory: no +# Range: 1024-32767 +# Default: +# ListenPort=10051 + +### Option: SourceIP +# Source IP address for outgoing connections. +# +# Mandatory: no +# Default: +# SourceIP= + +### Option: LogType +# Specifies where log messages are written to: +# system - syslog +# file - file specified with LogFile parameter +# console - standard output +# +# Mandatory: no +# Default: +# LogType=file + +### Option: LogFile +# Log file name for LogType 'file' parameter. +# +# Mandatory: no +# Default: +# LogFile= + +LogFile=/var/log/zabbix/zabbix_server.log + +### Option: LogFileSize +# Maximum size of log file in MB. +# 0 - disable automatic log rotation. +# +# Mandatory: no +# Range: 0-1024 +# Default: +# LogFileSize=1 + +LogFileSize=0 + +### Option: DebugLevel +# Specifies debug level: +# 0 - basic information about starting and stopping of Zabbix processes +# 1 - critical information +# 2 - error information +# 3 - warnings +# 4 - for debugging (produces lots of information) +# 5 - extended debugging (produces even more information) +# +# Mandatory: no +# Range: 0-5 +# Default: +# DebugLevel=3 + +### Option: PidFile +# Name of PID file. +# +# Mandatory: no +# Default: +# PidFile=/tmp/zabbix_server.pid + +PidFile=/var/run/zabbix/zabbix_server.pid + +### Option: DBHost +# Database host name. +# If set to localhost, socket is used for MySQL. +# If set to empty string, socket is used for PostgreSQL. +# +# Mandatory: no +# Default: +# DBName=localhost + +DBHost={{ zabbix_db_host }} + +### Option: DBName +# Database name. +# For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored. +# +# Mandatory: yes +# Default: +# DBName= + +DBName={{ zabbix_db_name }} + +### Option: DBSchema +# Schema name. Used for IBM DB2 and PostgreSQL. +# +# Mandatory: no +# Default: +# DBSchema= + +### Option: DBUser +# Database user. Ignored for SQLite. +# +# Mandatory: no +# Default: +# DBUser= + +DBUser={{ zabbix_db_user }} + +### Option: DBPassword +# Database password. Ignored for SQLite. +# Comment this line if no password is used. +# +# Mandatory: no +# Default: +# DBPassword= + +DBPassword={{ zabbix_db_password }} + +### Option: DBSocket +# Path to MySQL socket. +# +# Mandatory: no +# Default: +# DBSocket=/tmp/mysql.sock + +### Option: DBPort +# Database port when not using local socket. Ignored for SQLite. +# +# Mandatory: no +# Range: 1024-65535 +# Default (for MySQL): +# DBPort=3306 + +DBPort=5432 + +############ ADVANCED PARAMETERS ################ + +### Option: StartPollers +# Number of pre-forked instances of pollers. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartPollers=5 + +### Option: StartIPMIPollers +# Number of pre-forked instances of IPMI pollers. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartIPMIPollers=0 + +### Option: StartPollersUnreachable +# Number of pre-forked instances of pollers for unreachable hosts (including IPMI and Java). +# At least one poller for unreachable hosts must be running if regular, IPMI or Java pollers +# are started. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartPollersUnreachable=1 + +### Option: StartTrappers +# Number of pre-forked instances of trappers. +# Trappers accept incoming connections from Zabbix sender, active agents and active proxies. +# At least one trapper process must be running to display server availability and view queue +# in the frontend. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartTrappers=5 + +### Option: StartPingers +# Number of pre-forked instances of ICMP pingers. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartPingers=1 + +### Option: StartDiscoverers +# Number of pre-forked instances of discoverers. +# +# Mandatory: no +# Range: 0-250 +# Default: +# StartDiscoverers=1 + +### Option: StartHTTPPollers +# Number of pre-forked instances of HTTP pollers. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartHTTPPollers=1 + +### Option: StartTimers +# Number of pre-forked instances of timers. +# Timers process time-based trigger functions and maintenance periods. +# Only the first timer process handles the maintenance periods. +# +# Mandatory: no +# Range: 1-1000 +# Default: +# StartTimers=1 + +### Option: StartEscalators +# Number of pre-forked instances of escalators. +# +# Mandatory: no +# Range: 0-100 +# Default: +# StartEscalators=1 + +### Option: JavaGateway +# IP address (or hostname) of Zabbix Java gateway. +# Only required if Java pollers are started. +# +# Mandatory: no +# Default: +# JavaGateway= + +### Option: JavaGatewayPort +# Port that Zabbix Java gateway listens on. +# +# Mandatory: no +# Range: 1024-32767 +# Default: +# JavaGatewayPort=10052 + +### Option: StartJavaPollers +# Number of pre-forked instances of Java pollers. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartJavaPollers=0 + +### Option: StartVMwareCollectors +# Number of pre-forked vmware collector instances. +# +# Mandatory: no +# Range: 0-250 +# Default: +# StartVMwareCollectors=0 + +### Option: VMwareFrequency +# How often Zabbix will connect to VMware service to obtain a new data. +# +# Mandatory: no +# Range: 10-86400 +# Default: +# VMwareFrequency=60 + +### Option: VMwarePerfFrequency +# How often Zabbix will connect to VMware service to obtain performance data. +# +# Mandatory: no +# Range: 10-86400 +# Default: +# VMwarePerfFrequency=60 + +### Option: VMwareCacheSize +# Size of VMware cache, in bytes. +# Shared memory size for storing VMware data. +# Only used if VMware collectors are started. +# +# Mandatory: no +# Range: 256K-2G +# Default: +# VMwareCacheSize=8M + +### Option: VMwareTimeout +# Specifies how many seconds vmware collector waits for response from VMware service. +# +# Mandatory: no +# Range: 1-300 +# Default: +# VMwareTimeout=10 + +### Option: SNMPTrapperFile +# Temporary file used for passing data from SNMP trap daemon to the server. +# Must be the same as in zabbix_trap_receiver.pl or SNMPTT configuration file. +# +# Mandatory: no +# Default: +# SNMPTrapperFile=/tmp/zabbix_traps.tmp + +### Option: StartSNMPTrapper +# If 1, SNMP trapper process is started. +# +# Mandatory: no +# Range: 0-1 +# Default: +# StartSNMPTrapper=0 + +### Option: ListenIP +# List of comma delimited IP addresses that the trapper should listen on. +# Trapper will listen on all network interfaces if this parameter is missing. +# +# Mandatory: no +# Default: +# ListenIP=0.0.0.0 + +# ListenIP=127.0.0.1 + +### Option: HousekeepingFrequency +# How often Zabbix will perform housekeeping procedure (in hours). +# Housekeeping is removing outdated information from the database. +# To prevent Housekeeper from being overloaded, no more than 4 times HousekeepingFrequency +# hours of outdated information are deleted in one housekeeping cycle, for each item. +# To lower load on server startup housekeeping is postponed for 30 minutes after server start. +# With HousekeepingFrequency=0 the housekeeper can be only executed using the runtime control option. +# In this case the period of outdated information deleted in one housekeeping cycle is 4 times the +# period since the last housekeeping cycle, but not less than 4 hours and not greater than 4 days. +# +# Mandatory: no +# Range: 0-24 +# Default: +# HousekeepingFrequency=1 + +### Option: MaxHousekeeperDelete +# The table "housekeeper" contains "tasks" for housekeeping procedure in the format: +# [housekeeperid], [tablename], [field], [value]. +# No more than 'MaxHousekeeperDelete' rows (corresponding to [tablename], [field], [value]) +# will be deleted per one task in one housekeeping cycle. +# SQLite3 does not use this parameter, deletes all corresponding rows without a limit. +# If set to 0 then no limit is used at all. In this case you must know what you are doing! +# +# Mandatory: no +# Range: 0-1000000 +# Default: +# MaxHousekeeperDelete=5000 + +### Option: SenderFrequency +# How often Zabbix will try to send unsent alerts (in seconds). +# +# Mandatory: no +# Range: 5-3600 +# Default: +# SenderFrequency=30 + +### Option: CacheSize +# Size of configuration cache, in bytes. +# Shared memory size for storing host, item and trigger data. +# +# Mandatory: no +# Range: 128K-8G +# Default: +# CacheSize=8M + +### Option: CacheUpdateFrequency +# How often Zabbix will perform update of configuration cache, in seconds. +# +# Mandatory: no +# Range: 1-3600 +# Default: +# CacheUpdateFrequency=60 + +### Option: StartDBSyncers +# Number of pre-forked instances of DB Syncers. +# +# Mandatory: no +# Range: 1-100 +# Default: +# StartDBSyncers=4 + +### Option: HistoryCacheSize +# Size of history cache, in bytes. +# Shared memory size for storing history data. +# +# Mandatory: no +# Range: 128K-2G +# Default: +# HistoryCacheSize=16M + +### Option: HistoryIndexCacheSize +# Size of history index cache, in bytes. +# Shared memory size for indexing history cache. +# +# Mandatory: no +# Range: 128K-2G +# Default: +# HistoryIndexCacheSize=4M + +### Option: TrendCacheSize +# Size of trend cache, in bytes. +# Shared memory size for storing trends data. +# +# Mandatory: no +# Range: 128K-2G +# Default: +# TrendCacheSize=4M + +### Option: ValueCacheSize +# Size of history value cache, in bytes. +# Shared memory size for caching item history data requests. +# Setting to 0 disables value cache. +# +# Mandatory: no +# Range: 0,128K-64G +# Default: +# ValueCacheSize=8M + +### Option: Timeout +# Specifies how long we wait for agent, SNMP device or external check (in seconds). +# +# Mandatory: no +# Range: 1-30 +# Default: +# Timeout=3 + +Timeout=4 + +### Option: TrapperTimeout +# Specifies how many seconds trapper may spend processing new data. +# +# Mandatory: no +# Range: 1-300 +# Default: +# TrapperTimeout=300 + +### Option: UnreachablePeriod +# After how many seconds of unreachability treat a host as unavailable. +# +# Mandatory: no +# Range: 1-3600 +# Default: +# UnreachablePeriod=45 + +### Option: UnavailableDelay +# How often host is checked for availability during the unavailability period, in seconds. +# +# Mandatory: no +# Range: 1-3600 +# Default: +# UnavailableDelay=60 + +### Option: UnreachableDelay +# How often host is checked for availability during the unreachability period, in seconds. +# +# Mandatory: no +# Range: 1-3600 +# Default: +# UnreachableDelay=15 + +### Option: AlertScriptsPath +# Full path to location of custom alert scripts. +# Default depends on compilation options. +# +# Mandatory: no +# Default: +# AlertScriptsPath=${datadir}/zabbix/alertscripts + +AlertScriptsPath=/usr/lib/zabbix/alertscripts + +### Option: ExternalScripts +# Full path to location of external scripts. +# Default depends on compilation options. +# +# Mandatory: no +# Default: +# ExternalScripts=${datadir}/zabbix/externalscripts + +ExternalScripts=/usr/lib/zabbix/externalscripts + +### Option: FpingLocation +# Location of fping. +# Make sure that fping binary has root ownership and SUID flag set. +# +# Mandatory: no +# Default: +# FpingLocation=/usr/sbin/fping + +FpingLocation=/usr/bin/fping + +### Option: Fping6Location +# Location of fping6. +# Make sure that fping6 binary has root ownership and SUID flag set. +# Make empty if your fping utility is capable to process IPv6 addresses. +# +# Mandatory: no +# Default: +# Fping6Location=/usr/sbin/fping6 + +Fping6Location=/usr/bin/fping6 + +### Option: SSHKeyLocation +# Location of public and private keys for SSH checks and actions. +# +# Mandatory: no +# Default: +# SSHKeyLocation= + +### Option: LogSlowQueries +# How long a database query may take before being logged (in milliseconds). +# Only works if DebugLevel set to 3, 4 or 5. +# 0 - don't log slow queries. +# +# Mandatory: no +# Range: 1-3600000 +# Default: +# LogSlowQueries=0 + +LogSlowQueries=3000 + +### Option: TmpDir +# Temporary directory. +# +# Mandatory: no +# Default: +# TmpDir=/tmp + +### Option: StartProxyPollers +# Number of pre-forked instances of pollers for passive proxies. +# +# Mandatory: no +# Range: 0-250 +# Default: +# StartProxyPollers=1 + +### Option: ProxyConfigFrequency +# How often Zabbix Server sends configuration data to a Zabbix Proxy in seconds. +# This parameter is used only for proxies in the passive mode. +# +# Mandatory: no +# Range: 1-3600*24*7 +# Default: +# ProxyConfigFrequency=3600 + +### Option: ProxyDataFrequency +# How often Zabbix Server requests history data from a Zabbix Proxy in seconds. +# This parameter is used only for proxies in the passive mode. +# +# Mandatory: no +# Range: 1-3600 +# Default: +# ProxyDataFrequency=1 + +### Option: AllowRoot +# Allow the server to run as 'root'. If disabled and the server is started by 'root', the server +# will try to switch to the user specified by the User configuration option instead. +# Has no effect if started under a regular user. +# 0 - do not allow +# 1 - allow +# +# Mandatory: no +# Default: +# AllowRoot=0 + +### Option: User +# Drop privileges to a specific, existing user on the system. +# Only has effect if run as 'root' and AllowRoot is disabled. +# +# Mandatory: no +# Default: +# User=zabbix + +### Option: Include +# You may include individual files or all files in a directory in the configuration file. +# Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time. +# +# Mandatory: no +# Default: +# Include= + +# Include=/usr/local/etc/zabbix_server.general.conf +# Include=/usr/local/etc/zabbix_server.conf.d/ +# Include=/usr/local/etc/zabbix_server.conf.d/*.conf + +### Option: SSLCertLocation +# Location of SSL client certificates. +# This parameter is used only in web monitoring. +# +# Mandatory: no +# Default: +# SSLCertLocation=${datadir}/zabbix/ssl/certs + +### Option: SSLKeyLocation +# Location of private keys for SSL client certificates. +# This parameter is used only in web monitoring. +# +# Mandatory: no +# Default: +# SSLKeyLocation=${datadir}/zabbix/ssl/keys + +### Option: SSLCALocation +# Override the location of certificate authority (CA) files for SSL server certificate verification. +# If not set, system-wide directory will be used. +# This parameter is used only in web monitoring and SMTP authentication. +# +# Mandatory: no +# Default: +# SSLCALocation= + +####### LOADABLE MODULES ####### + +### Option: LoadModulePath +# Full path to location of server modules. +# Default depends on compilation options. +# +# Mandatory: no +# Default: +# LoadModulePath=${libdir}/modules + +### Option: LoadModule +# Module to load at server startup. Modules are used to extend functionality of the server. +# Format: LoadModule=<module.so> +# The modules must be located in directory specified by LoadModulePath. +# It is allowed to include multiple LoadModule parameters. +# +# Mandatory: no +# Default: +# LoadModule= + +####### TLS-RELATED PARAMETERS ####### + +### Option: TLSCAFile +# Full pathname of a file containing the top-level CA(s) certificates for +# peer certificate verification. +# +# Mandatory: no +# Default: +# TLSCAFile= + +### Option: TLSCRLFile +# Full pathname of a file containing revoked certificates. +# +# Mandatory: no +# Default: +# TLSCRLFile= + +### Option: TLSCertFile +# Full pathname of a file containing the server certificate or certificate chain. +# +# Mandatory: no +# Default: +# TLSCertFile= + +### Option: TLSKeyFile +# Full pathname of a file containing the server private key. +# +# Mandatory: no +# Default: +# TLSKeyFile=