Мониторинг Apache через Zabbix

В этой публикации я напишу небольшой чек-лист о том, как конфигурируется мониторинг Apache через Zabbix.

В качестве операционной системы для сервера Apache я использовал Ubuntu Server 22.04. Для RedHat подобных систем отличия будут минимальны.

Предварительные требования

По большому счету предварительное требование одно – наличие модуля status_module. Проверит его наличие можно следующей командой для Ubuntu Server:

sudo apache2ctl -M 2>/dev/null | grep status_module
root@srv-cloud:/home/admin# apache2ctl -M 2>/dev/null | grep status_module
status_module (shared)
root@srv-cloud:/home/admin#

Команда проверки модуля для RedHat систем:

sudo httpd -M 2>/dev/null | grep status_module

Мониторинг Apache через Zabbix

Теперь выполним настройку мониторинга Apache через Zabbix сервер:

1. Добавим в конфигурационный файл сервера Apache строку, которая активирует модуль статистики:

sudo nano /etc/apache2/apache2.conf
<Location "/server-status">
  SetHandler server-status
  Require ip 127.0.0.1
</Location>

2. Сохраните внесенные изменения в конфигурационный файл сервера Apache.

3. Перезапустите сервера Apache:

sudo systemctl reload apache2

4. Проверим доступность модуля статистики непосредственно с сервера Apache:

curl -Lk http://127.0.0.1/server-status | grep -n2 connect
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   290  100   290    0     0  93608      0 --:--:-- --:--:-- --:--:--  141k
29-"<b><code>K</code></b>" Keepalive (read), 
30-"<b><code>D</code></b>" DNS Lookup,<br />
31:"<b><code>C</code></b>" Closing connection, 
32-"<b><code>L</code></b>" Logging, 
33-"<b><code>G</code></b>" Gracefully finishing,<br /> 
--
10212- <tr><th>Srv</th><td>Child Server number - generation</td></tr>
0 213- <tr><th>PID</th><td>OS process ID</td></tr>
18645 214: <tr><th>Acc</th><td>Number of accesses this connection / this child / this slot</td></tr>
  215- <tr><th>M</th><td>Mode of operation</td></tr>
 216-<tr><th>CPU</th><td>CPU usage, number of seconds</td></tr>
0--
 1218- <tr><th>Req</th><td>Milliseconds required to process most recent request</td></tr>
86219- <tr><th>Dur</th><td>Sum of milliseconds required to process all requests</td></tr>
45 220: <tr><th>Conn</th><td>Kilobytes transferred this connection</td></tr>
   0221- <tr><th>Child</th><td>Megabytes transferred this child</td></tr>
  222- <tr><th>Slot</th><td>Total megabytes transferred this slot</td></tr>
 --
 243-    <tr class="rowt"><td >&nbsp;</td><td >limit</td><td >current</td><td >wait rate</td><td >limit</td><td >current</td><td >wait rate</td><td >limit</td><td >current</td></tr>
 244-    <tr class="rows"><!--0--><td>/remote.php/dav</a></td><td>1000</td><td >0</td><td >0&nbsp;ms</td><td>50</td><td >0</td><td>-</td><td>-</td><td>-</td></tr>
0 245:    <tr class="rowt"><td colspan="9">connections</td></tr>
  246-    <tr class="rows"><!--0--><td colspan="6"><div title="QS_SrvMaxConnPerIP">free ip entries</div></td><td colspan="3">150</td></tr>
573k      0 --:--:-- --:--:-- --:--:--  573k
247:    <tr class="rows"><!--0--><td colspan="6"><div title="QS_SrvMaxConn|QS_SrvMaxConnClose">current connections</div></td><td  colspan="3">2</td></tr>
248:    <tr class="rows"><!--base--><td colspan="6"><div>total connections</div></td><td colspan="3">2</td></tr>
249:    <tr class="rowt"><td colspan="9">connection settings</td></tr>
250:    <tr class="rows"><td colspan="6"><div title="QS_SrvMaxConn">max connections</div></td><td colspan="3">-</td></tr>
251:    <tr class="rows"><td colspan="6"><div title="QS_SrvMaxConnClose">max connections with keep-alive</div></td><td colspan="3">-</td></tr>
252:    <tr class="rows"><td colspan="6"><div title="QS_SrvMaxConnPerIP">max connections per client ip</div></td><td colspan="3">-</td></tr>
253-    <tr class="rows"><td colspan="6"><div title="QS_SrvMinDataRate|QS_SrvRequestRate">min. data rate (bytes/sec) (min/max/current)</div></td><td colspan="3">150/1200/166</td></tr>
254-    <tr class="row"><td style="width:28%"></td><td style="width:9%"></td><td style="width:9%"></td><td style="width:9%"></td><td style="width:9%"></td><td style="width:9%"></td><td style="width:9%"></td><td style="width:9%"></td><td style="width:9%"></td></tr></tbody></table>

5. Последний шаг – это применить соответствующий шаблон мониторинга “Apache by Zabbix agent” для сервера с Apache:

6. При необходимости скорректируйте макросы. Например, в моем случае сервер Apache был доступен по HTTPS:

Проверка

Перейдите в раздел последних данных в навигационной панели сервера Zabbix и убедитесь, что данные сервера Apache доступны:

Если данные не доступны, то проверьте макросы для подключения к серверу Apache. Также есть смысл проверить журналы сервера Zabbix:

sudo less /var/log/zabbix/zabbix_server.log

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *