自分用のメモに近いので解説は雑です。
catでファイル内を表示するとき、コメントアウトが大量にあると見づらいことがある。
結論
cat (filename) | grep -v -e "^#"
例
cat zabbix_agentd.conf | grep -v -e "^#"
解説
(注:行番号はcatの実行結果に著者が書き足している)
[root@localhost zabbix]# cat zabbix_agentd.conf
1 # This is a configuration file for Zabbix agent daemon (Unix)
2 # To get more information about Zabbix, visit http://www.zabbix.com
3
4 ############ GENERAL PARAMETERS #################
5
6 ### Option: PidFile
7 # Name of PID file.
8 #
9 # Mandatory: no
10 # Default:
11 # PidFile=/tmp/zabbix_agentd.pid
12
13 PidFile=/var/run/zabbix/zabbix_agentd.pid
14
15 ### Option: LogType
16 # Specifies where log messages are written to:
17 # system - syslog
18 # file - file specified with LogFile parameter
19 # console - standard output
20 #
21 # Mandatory: no
22 # Default:
23 # LogType=file
24
25 ### Option: LogFile
26 # Log file name for LogType 'file' parameter.
27 #
28 # Mandatory: yes, if LogType is set to file, otherwise no
29 # Default:
30 # LogFile=
31
32 LogFile=/var/log/zabbix/zabbix_agentd.log
33
34 ### Option: LogFileSize
35 # Maximum size of log file in MB.
36 # 0 - disable automatic log rotation.
37 #
38 # Mandatory: no
39 # Range: 0-1024
40 # Default:
41 # LogFileSize=1
42
43 LogFileSize=0
44
45 ### Option: DebugLevel
46 # Specifies debug level:
47 # 0 - basic information about starting and stopping of Zabbix processes
48 # 1 - critical information
49 # 2 - error information
50 # 3 - warnings
51 # 4 - for debugging (produces lots of information)
52 # 5 - extended debugging (produces even more information)
53 #
54 # Mandatory: no
55 # Range: 0-5
56 # Default:
57 # DebugLevel=3
58
59 ### Option: SourceIP
60 # Source IP address for outgoing connections.
61 #
62 # Mandatory: no
63 # Default:
64 # SourceIP=
65
66 ### Option: EnableRemoteCommands
67 # Whether remote commands from Zabbix server are allowed.
68 # 0 - not allowed
69 # 1 - allowed
70 #
71 # Mandatory: no
72 # Default:
73 # EnableRemoteCommands=0
74
75 ### Option: LogRemoteCommands
76 # Enable logging of executed shell commands as warnings.
77 # 0 - disabled
78 # 1 - enabled
79 #
80 # Mandatory: no
81 # Default:
82 # LogRemoteCommands=0
83
84 ##### Passive checks related
85
86 ### Option: Server
87 # List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
88 # Incoming connections will be accepted only from the hosts listed here.
89 # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
90 # and '::/0' will allow any IPv4 or IPv6 address.
91 # '0.0.0.0/0' can be used to allow any IPv4 address.
92 # Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
93 #
94 # Mandatory: yes, if StartAgents is not explicitly set to 0
95 # Default:
96 # Server=
97
98 #Server=127.0.0.1
99 Server=114.514.191.9
100
101 ### Option: ListenPort
102 # Agent will listen on this port for connections from the server.
103 #
104 # Mandatory: no
105 # Range: 1024-32767
106 # Default:
107 # ListenPort=10050
108
109 ### Option: ListenIP
110 # List of comma delimited IP addresses that the agent should listen on.
111 # First IP address is sent to Zabbix server if connecting to it to retrieve list of active checks.
112 #
113 # Mandatory: no
114 # Default:
115 # ListenIP=0.0.0.0
116
117 ### Option: StartAgents
118 # Number of pre-forked instances of zabbix_agentd that process passive checks.
119 # If set to 0, disables passive checks and the agent will not listen on any TCP port.
120 #
121 # Mandatory: no
122 # Range: 0-100
123 # Default:
124 # StartAgents=3
125
126 ##### Active checks related
127
128 ### Option: ServerActive
129 # List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
130 # If port is not specified, default port is used.
131 # IPv6 addresses must be enclosed in square brackets if port for that host is specified.
132 # If port is not specified, square brackets for IPv6 addresses are optional.
133 # If this parameter is not specified, active checks are disabled.
134 # Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
135 #
136 # Mandatory: no
137 # Default:
138 # ServerActive=
139
140 #ServerActive=127.0.0.1
141 ServerActive=114.514.191.9
142
143 ### Option: Hostname
144 # Unique, case sensitive hostname.
145 # Required for active checks and must match hostname as configured on the server.
146 # Value is acquired from HostnameItem if undefined.
147 #
148 # Mandatory: no
149 # Default:
150 # Hostname=
151
152 Hostname=Zabbix server
153
154 ### Option: HostnameItem
155 # Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
156 # Does not support UserParameters or aliases.
157 #
158 # Mandatory: no
159 # Default:
160 # HostnameItem=system.hostname
161
162 ### Option: HostMetadata
163 # Optional parameter that defines host metadata.
164 # Host metadata is used at host auto-registration process.
165 # An agent will issue an error and not start if the value is over limit of 255 characters.
166 # If not defined, value will be acquired from HostMetadataItem.
167 #
168 # Mandatory: no
169 # Range: 0-255 characters
170 # Default:
171 # HostMetadata=
172
173 ### Option: HostMetadataItem
174 # Optional parameter that defines an item used for getting host metadata.
175 # Host metadata is used at host auto-registration process.
176 # During an auto-registration request an agent will log a warning message if
177 # the value returned by specified item is over limit of 255 characters.
178 # This option is only used when HostMetadata is not defined.
179 #
180 # Mandatory: no
181 # Default:
182 # HostMetadataItem=
183
184 ### Option: RefreshActiveChecks
185 # How often list of active checks is refreshed, in seconds.
186 #
187 # Mandatory: no
188 # Range: 60-3600
189 # Default:
190 # RefreshActiveChecks=120
191
192 ### Option: BufferSend
193 # Do not keep data longer than N seconds in buffer.
194 #
195 # Mandatory: no
196 # Range: 1-3600
197 # Default:
198 # BufferSend=5
199
200 ### Option: BufferSize
201 # Maximum number of values in a memory buffer. The agent will send
202 # all collected data to Zabbix Server or Proxy if the buffer is full.
203 #
204 # Mandatory: no
205 # Range: 2-65535
206 # Default:
207 # BufferSize=100
208
209 ### Option: MaxLinesPerSecond
210 # Maximum number of new lines the agent will send per second to Zabbix Server
211 # or Proxy processing 'log' and 'logrt' active checks.
212 # The provided value will be overridden by the parameter 'maxlines',
213 # provided in 'log' or 'logrt' item keys.
214 #
215 # Mandatory: no
216 # Range: 1-1000
217 # Default:
218 # MaxLinesPerSecond=20
219
220 ############ ADVANCED PARAMETERS #################
221
222 ### Option: Alias
223 # Sets an alias for an item key. It can be used to substitute long and complex item key with a smaller and simpler one.
224 # Multiple Alias parameters may be present. Multiple parameters with the same Alias key are not allowed.
225 # Different Alias keys may reference the same item key.
226 # For example, to retrieve the ID of user 'zabbix':
227 # Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1]
228 # Now shorthand key zabbix.userid may be used to retrieve data.
229 # Aliases can be used in HostMetadataItem but not in HostnameItem parameters.
230 #
231 # Mandatory: no
232 # Range:
233 # Default:
234
235 ### Option: Timeout
236 # Spend no more than Timeout seconds on processing
237 #
238 # Mandatory: no
239 # Range: 1-30
240 # Default:
241 # Timeout=3
242
243 ### Option: AllowRoot
244 # Allow the agent to run as 'root'. If disabled and the agent is started by 'root', the agent
245 # will try to switch to the user specified by the User configuration option instead.
246 # Has no effect if started under a regular user.
247 # 0 - do not allow
248 # 1 - allow
249 #
250 # Mandatory: no
251 # Default:
252 # AllowRoot=0
253
254 ### Option: User
255 # Drop privileges to a specific, existing user on the system.
256 # Only has effect if run as 'root' and AllowRoot is disabled.
257 #
258 # Mandatory: no
259 # Default:
260 # User=zabbix
261
262 ### Option: Include
263 # You may include individual files or all files in a directory in the configuration file.
264 # Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
265 #
266 # Mandatory: no
267 # Default:
268 # Include=
269
270 Include=/etc/zabbix/zabbix_agentd.d/*.conf
271
272 # Include=/usr/local/etc/zabbix_agentd.userparams.conf
273 # Include=/usr/local/etc/zabbix_agentd.conf.d/
274 # Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
275
276 ####### USER-DEFINED MONITORED PARAMETERS #######
277
278 ### Option: UnsafeUserParameters
279 # Allow all characters to be passed in arguments to user-defined parameters.
280 # The following characters are not allowed:
281 # \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
282 # Additionally, newline characters are not allowed.
283 # 0 - do not allow
284 # 1 - allow
285 #
286 # Mandatory: no
287 # Range: 0-1
288 # Default:
289 # UnsafeUserParameters=0
290
291 ### Option: UserParameter
292 # User-defined parameter to monitor. There can be several user-defined parameters.
293 # Format: UserParameter=<key>,<shell command>
294 # See 'zabbix_agentd' directory for examples.
295 #
296 # Mandatory: no
297 # Default:
298 # UserParameter=
299
300 ####### LOADABLE MODULES #######
301
302 ### Option: LoadModulePath
303 # Full path to location of agent modules.
304 # Default depends on compilation options.
305 # To see the default path run command "zabbix_agentd --help".
306 #
307 # Mandatory: no
308 # Default:
309 # LoadModulePath=${libdir}/modules
310
311 ### Option: LoadModule
312 # Module to load at agent startup. Modules are used to extend functionality of the agent.
313 # Formats:
314 # LoadModule=<module.so>
315 # LoadModule=<path/module.so>
316 # LoadModule=</abs_path/module.so>
317 # Either the module must be located in directory specified by LoadModulePath or the path must precede the module name.
318 # If the preceding path is absolute (starts with '/') then LoadModulePath is ignored.
319 # It is allowed to include multiple LoadModule parameters.
320 #
321 # Mandatory: no
322 # Default:
323 # LoadModule=
324
325 ####### TLS-RELATED PARAMETERS #######
326
327 ### Option: TLSConnect
328 # How the agent should connect to server or proxy. Used for active checks.
329 # Only one value can be specified:
330 # unencrypted - connect without encryption
331 # psk - connect using TLS and a pre-shared key
332 # cert - connect using TLS and a certificate
333 #
334 # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
335 # Default:
336 # TLSConnect=unencrypted
337
338 ### Option: TLSAccept
339 # What incoming connections to accept.
340 # Multiple values can be specified, separated by comma:
341 # unencrypted - accept connections without encryption
342 # psk - accept connections secured with TLS and a pre-shared key
343 # cert - accept connections secured with TLS and a certificate
344 #
345 # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
346 # Default:
347 # TLSAccept=unencrypted
348
349 TLSConnect=psk
350 TLSAccept=psk
351 TLSPSKFile=/home/zabbix_agentd.psk
352 TLSPSKIdentity=1145141919
353
317 # Either the module must be located in directory specified by LoadModulePath or the path must precede the module name.
318 # If the preceding path is absolute (starts with '/') then LoadModulePath is ignored.
319 # It is allowed to include multiple LoadModule parameters.
320 #
321 # Mandatory: no
322 # Default:
323 # LoadModule=
324
325 ####### TLS-RELATED PARAMETERS #######
326
327 ### Option: TLSConnect
328 # How the agent should connect to server or proxy. Used for active checks.
329 # Only one value can be specified:
330 # unencrypted - connect without encryption
331 # psk - connect using TLS and a pre-shared key
332 # cert - connect using TLS and a certificate
333 #
334 # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
335 # Default:
336 # TLSConnect=unencrypted
337
338 ### Option: TLSAccept
339 # What incoming connections to accept.
340 # Multiple values can be specified, separated by comma:
341 # unencrypted - accept connections without encryption
342 # psk - accept connections secured with TLS and a pre-shared key
343 # cert - accept connections secured with TLS and a certificate
344 #
345 # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
346 # Default:
347 # TLSAccept=unencrypted
348
349 TLSConnect=psk
350 TLSAccept=psk
351 TLSPSKFile=/home/zabbix_agentd.psk
352 TLSPSKIdentity=1145141919
353
354 ### Option: TLSCAFile
355 # Full pathname of a file containing the top-level CA(s) certificates for
356 # peer certificate verification.
357 #
358 # Mandatory: no
359 # Default:
360 # TLSCAFile=
361
362 ### Option: TLSCRLFile
363 # Full pathname of a file containing revoked certificates.
364 #
365 # Mandatory: no
366 # Default:
367 # TLSCRLFile=
368
369 ### Option: TLSServerCertIssuer
370 # Allowed server certificate issuer.
371 #
372 # Mandatory: no
373 # Default:
374 # TLSServerCertIssuer=
375
376 ### Option: TLSServerCertSubject
377 # Allowed server certificate subject.
378 #
379 # Mandatory: no
380 # Default:
381 # TLSServerCertSubject=
382
383 ### Option: TLSCertFile
384 # Full pathname of a file containing the agent certificate or certificate chain.
385 #
386 # Mandatory: no
387 # Default:
388 # TLSCertFile=
389
390 ### Option: TLSKeyFile
391 # Full pathname of a file containing the agent private key.
392 #
393 # Mandatory: no
394 # Default:
395 # TLSKeyFile=
396
397 ### Option: TLSPSKIdentity
398 # Unique, case sensitive string used to identify the pre-shared key.
399 #
400 # Mandatory: no
401 # Default:
402 # TLSPSKIdentity=
403
404 ### Option: TLSPSKFile
405 # Full pathname of a file containing the pre-shared key.
406 #
407 # Mandatory: no
408 # Default:
409 # TLSPSKFile=
このように「実際には約400行あるが、どこが有効な行なのかがパッと見て不明である。」という状況がある。
解決方法
つまり#
から始まる行が邪魔なので
[root@localhost zabbix]# cat zabbix_agentd.conf | grep -v -e "^#"
[root@localhost zabbix]# cat zabbix_agentd.conf | grep -v -e "^#"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=114.514.191.9
ServerActive=114.514.191.9
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/home/zabbix_agentd.psk
TLSPSKIdentity=1145141919
複数ある場合
-e "「文字」"
を複数連ねることで複数指定可能。
例:#
とT
から始まる行を取り除く
[root@localhost zabbix]# cat zabbix_agentd.conf | grep -v -e "^#" -e "^$"
cat zabbix_agentd.conf | grep -v -e "^#" -e "^T"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=114.514.191.9
ServerActive=114.514.191.9
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf