面白そうな記事を見つけたのでインストールしてみました。
How to Monitor Apache Performance using Netdata on CentOS 7
https://www.tecmint.com/monitor-apache-performance-using-netdata-on-centos/
NetData: Get control of your Linux Servers. Simple. Effective. Awesome.
https://my-netdata.io/
github – netdata
https://github.com/firehol/netdata
Installation
https://github.com/firehol/netdata/wiki/Installation
環境
・CentOS Linux release 7.5.1804 (Core)
・Kerne: 3.10.0-862.3.3.el7.x86_64
・Apache/2.4.6 (CentOS)
Apacheのインストールは省略します。
- Mod_Statusモジュールの有効化
- server-statusの有効化
- Apache再起動
- server-statusの動作確認
- Netdataのインストール
- Netdataの設定ファイル
- NetdataでApacheパフォーマンスの確認
1 2 3 |
# vi /etc/httpd/conf.modules.d/00-base.conf # grep mod_status /etc/httpd/conf.modules.d/00-base.conf LoadModule status_module modules/mod_status.so |
localhostからのみ許可しています。
1 2 3 4 5 6 7 8 9 |
# vi /etc/httpd/conf.d/server-status.conf # cat /etc/httpd/conf.d/server-status.conf <Location /server-status> SetHandler server-status Order Deny,Allow Deny from all Allow from 127.0.0.1 </Location> |
1 |
# apachectl restart |
1 2 3 4 5 6 7 |
# curl http://127.0.0.1/server-status <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html><head> <title>Apache Status</title> </head><body> <h1>Apache Server Status for w3.rootlinks.net (via 127.0.0.1)</h1> (snip) |
スクリプトが実行されてプログラムのダウンロード、環境チェックが行われます。
1 2 3 4 5 6 |
# bash <(curl -Ss https://my-netdata.io/kickstart.sh) System : Linux Operating System : GNU/Linux Machine : x86_64 BASH major version: 4 (snip) |
今回は下記のメッセージが表示されました。
おそらくそのままENTERでyumが実行されるのではと思ったのですが、一度スクリプトを停止して個別にyum install PyYAML autogen libmnl-devel libuuid-develを実行しました。
1 2 3 4 5 6 7 8 9 |
The following command will be run: >> IMPORTANT << Please make sure your system is up to date by running: yum update yum install PyYAML autogen libmnl-devel libuuid-devel Press ENTER to run it > |
1 |
# yum install PyYAML autogen libmnl-devel libuuid-devel |
改めてインストールスクリプトを実行します。
必要なパッケージのインストールが確認され、プログラムのダウンロード、コンパイルが実行されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# bash <(curl -Ss https://my-netdata.io/kickstart.sh) System : Linux Operating System : GNU/Linux Machine : x86_64 BASH major version: 4 (snip) All required packages are already installed. Now proceed to the next step. OK (snip) netdata by default listens on all IPs on port 19999, so you can access it with: http://this.machine.ip:19999/ To stop netdata run: systemctl stop netdata To start netdata run: systemctl start netdata Uninstall script generated: ./netdata-uninstaller.sh Update script generated : ./netdata-updater.sh netdata-updater.sh can work from cron. It will trigger an email from cron only if it fails (it does not print anything when it can update netdata). --- Installing netdata-updater at cron --- [/usr/src/netdata.git]# ln -s /usr/src/netdata.git/netdata-updater.sh /etc/cron.daily/netdata-updater OK --- We are done! --- ^ |.-. .-. .-. .-. .-. . netdata .-. .- | '-' '-' '-' '-' '-' is installed and running now! -' '-' +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---> enjoy real-time performance and health monitoring... OK |
cronで毎日アップデートスクリプトの実行設定まですべてインストール時に行われます。
localhostでApacheが動作しているなら取り敢えずそのままで動作します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# cat /etc/netdata/python.d/apache.conf # netdata python.d.plugin configuration for apache # # This file is in YaML format. Generally the format is: # # name: value # # There are 2 sections: # - global variables # - one or more JOBS # # JOBS allow you to collect values from multiple sources. # Each source will have its own set of charts. # # JOB parameters have to be indented (using spaces only, example below). # ---------------------------------------------------------------------- # Global Variables # These variables set the defaults for all JOBs, however each JOB # may define its own, overriding the defaults. # update_every sets the default data collection frequency. # If unset, the python.d.plugin default is used. # update_every: 1 # priority controls the order of charts at the netdata dashboard. # Lower numbers move the charts towards the top of the page. # If unset, the default for python.d.plugin is used. # priority: 60000 # retries sets the number of retries to be made in case of failures. # If unset, the default for python.d.plugin is used. # Attempts to restore the service are made once every update_every # and only if the module has collected values in the past. # retries: 60 # autodetection_retry sets the job re-check interval in seconds. # The job is not deleted if check fails. # Attempts to start the job are made once every autodetection_retry. # This feature is disabled by default. # autodetection_retry: 0 # ---------------------------------------------------------------------- # JOBS (data collection sources) # # The default JOBS share the same *name*. JOBS with the same name # are mutually exclusive. Only one of them will be allowed running at # any time. This allows autodetection to try several alternatives and # pick the one that works. # # Any number of jobs is supported. # # All python.d.plugin JOBS (for all its modules) support a set of # predefined parameters. These are: # # job_name: # name: myname # the JOB's name as it will appear at the # # dashboard (by default is the job_name) # # JOBs sharing a name are mutually exclusive # update_every: 1 # the JOB's data collection frequency # priority: 60000 # the JOB's order on the dashboard # retries: 60 # the JOB's number of restoration attempts # autodetection_retry: 0 # the JOB's re-check interval in seconds # # Additionally to the above, apache also supports the following: # # url: 'URL' # the URL to fetch apache's mod_status stats # # if the URL is password protected, the following are supported: # # user: 'username' # pass: 'password' # ---------------------------------------------------------------------- # AUTO-DETECTION JOBS # only one of them will run (they have the same name) localhost: name : 'local' url : 'http://localhost/server-status?auto' localipv4: name : 'local' url : 'http://127.0.0.1/server-status?auto' localipv6: name : 'local' url : 'http://::1/server-status?auto' |
1000PV/1日ぐらいのサイトなので殆ど負荷は無いです(^^