salted-rails 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +48 -0
- data/Gemfile +4 -0
- data/LICENSE +20 -0
- data/README.md +79 -0
- data/Rakefile +1 -0
- data/lib/salted_rails.rb +5 -0
- data/lib/salted_rails/base.rb +5 -0
- data/lib/salted_rails/capistrano.rb +6 -0
- data/lib/salted_rails/vagrant_helper.rb +155 -0
- data/lib/salted_rails/version.rb +3 -0
- data/pillar/capistrano.sls +3 -0
- data/pillar/capistrano/top.sls +5 -0
- data/pillar/common.sls +15 -0
- data/pillar/vagrant.sls +3 -0
- data/pillar/vagrant/top.sls +5 -0
- data/salt/apt/partner-sources.sls +13 -0
- data/salt/apt/unwanted.sls +5 -0
- data/salt/capistrano.sls +0 -0
- data/salt/capistrano/minion +14 -0
- data/salt/capistrano/minion.sls +6 -0
- data/salt/capistrano/top.sls +8 -0
- data/salt/common.sls +19 -0
- data/salt/crons/init.sls +23 -0
- data/salt/databases/mysql/client-encoding-and-collation.cnf +2 -0
- data/salt/databases/mysql/client.sls +17 -0
- data/salt/databases/mysql/common.sls +22 -0
- data/salt/databases/mysql/config.sls +6 -0
- data/salt/databases/mysql/custom_config.sls +14 -0
- data/salt/databases/mysql/default-table-engine.cnf +2 -0
- data/salt/databases/mysql/group.sls +4 -0
- data/salt/databases/mysql/init.sls +8 -0
- data/salt/databases/mysql/server-encoding-and-collation.cnf +4 -0
- data/salt/databases/mysql/server.sls +59 -0
- data/salt/databases/phpmyadmin/etc/nginx/sites-available/.gitignore +3 -0
- data/salt/databases/phpmyadmin/etc/nginx/sites-available/phpmyadmin.conf +24 -0
- data/salt/databases/phpmyadmin/init.sls +27 -0
- data/salt/develop/init.sls +3 -0
- data/salt/echo_pillar.sls +9 -0
- data/salt/editors/vim/init.sls +12 -0
- data/salt/editors/vim/vimrc +23 -0
- data/salt/lang/php/composer.sls +9 -0
- data/salt/lang/php/etc/php5/fpm/php.fpm.ini +1818 -0
- data/salt/lang/php/etc/php5/fpm/pool.d/www.conf +393 -0
- data/salt/lang/php/init.sls +38 -0
- data/salt/lang/php/nginx.sls +9 -0
- data/salt/lang/python/python-libs.sls +28 -0
- data/salt/lang/ruby.sls +60 -0
- data/salt/lang/ruby.sls.bak +106 -0
- data/salt/lang/system_ruby.sls +43 -0
- data/salt/munin/files/nginx/plugin-conf.d/nginx +2 -0
- data/salt/munin/files/nginx/plugins/nginx_combined_localhost +160 -0
- data/salt/munin/files/nginx/plugins/nginx_request +114 -0
- data/salt/munin/files/nginx/plugins/nginx_status +126 -0
- data/salt/munin/files/node/checkPermissions.sh +10 -0
- data/salt/munin/files/node/munin-node.conf +54 -0
- data/salt/munin/files/php5-fpm/plugins/phpfpm_average +39 -0
- data/salt/munin/files/php5-fpm/plugins/phpfpm_connections +71 -0
- data/salt/munin/files/php5-fpm/plugins/phpfpm_memory +24 -0
- data/salt/munin/files/php5-fpm/plugins/phpfpm_processes +38 -0
- data/salt/munin/files/php5-fpm/plugins/phpfpm_status +83 -0
- data/salt/munin/files/server/munin.conf +107 -0
- data/salt/munin/nginx.sls +13 -0
- data/salt/munin/node.sls +34 -0
- data/salt/munin/php5-fpm.sls +13 -0
- data/salt/munin/server.sls +7 -0
- data/salt/railsapp/database.sls +25 -0
- data/salt/railsapp/files/Gemfile +57 -0
- data/salt/railsapp/files/Gemfile.lock +133 -0
- data/salt/railsapp/gems.sls +18 -0
- data/salt/railsapp/init.sls +3 -0
- data/salt/run-standalone +3 -0
- data/salt/salt/minion/config.template +259 -0
- data/salt/salt/minion/debconf.sls +3 -0
- data/salt/salt/minion/init.sls +49 -0
- data/salt/salt/minion/lsb.sls +8 -0
- data/salt/salt/minion/mysql.conf +1 -0
- data/salt/salt/minion/mysql.sls +20 -0
- data/salt/server/monit.sls +31 -0
- data/salt/server/sudo/init.sls +16 -0
- data/salt/server/sudo/sudoers +90 -0
- data/salt/sysutils/file.sls +8 -0
- data/salt/sysutils/init.sls +5 -0
- data/salt/sysutils/net.sls +9 -0
- data/salt/sysutils/status.sls +11 -0
- data/salt/sysutils/tmux.sls +3 -0
- data/salt/vagrant.sls +0 -0
- data/salt/vagrant/minion +14 -0
- data/salt/vagrant/minion.sls +6 -0
- data/salt/vagrant/top.sls +8 -0
- data/salt/www/chromium.sls +6 -0
- data/salt/www/nginx/etc/nginx/nginx.conf +53 -0
- data/salt/www/nginx/init.sls +20 -0
- data/salt/www/users.sls +12 -0
- data/salted-rails.gemspec +23 -0
- metadata +163 -0
data/salt/lang/ruby.sls
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
#
|
2
|
+
# ruby deps
|
3
|
+
#
|
4
|
+
|
5
|
+
rbenv-deps:
|
6
|
+
pkg.installed:
|
7
|
+
- pkgs:
|
8
|
+
- autoconf
|
9
|
+
- automake
|
10
|
+
- bison
|
11
|
+
- build-essential
|
12
|
+
- curl
|
13
|
+
- git
|
14
|
+
- libc6-dev
|
15
|
+
- libcurl4-openssl-dev
|
16
|
+
- libfreeimage3
|
17
|
+
- libfreeimage-dev
|
18
|
+
- libmysqlclient-dev
|
19
|
+
- libncurses5-dev
|
20
|
+
- libreadline-dev
|
21
|
+
- libsqlite3-0
|
22
|
+
- libsqlite3-dev
|
23
|
+
- libssl-dev
|
24
|
+
- libtool
|
25
|
+
- libxml2-dev
|
26
|
+
- libxslt1-dev
|
27
|
+
- libyaml-dev
|
28
|
+
- openssl
|
29
|
+
- python-software-properties
|
30
|
+
- sqlite3
|
31
|
+
- subversion
|
32
|
+
- zlib1g
|
33
|
+
- zlib1g-dev
|
34
|
+
|
35
|
+
ruby:
|
36
|
+
rbenv.installed:
|
37
|
+
- name: {{ pillar['ruby-version'] }}
|
38
|
+
- default: True
|
39
|
+
- runas: {{ pillar['username'] }}
|
40
|
+
- require:
|
41
|
+
- pkg: rbenv-deps
|
42
|
+
|
43
|
+
adjust_profile:
|
44
|
+
file.append:
|
45
|
+
- name: {{ pillar['homedir'] }}/.profile
|
46
|
+
- user: {{ pillar['username'] }}
|
47
|
+
- group: {{ pillar['username'] }}
|
48
|
+
- text:
|
49
|
+
- export PATH="$HOME/.rbenv/bin:$PATH"
|
50
|
+
- eval "$(rbenv init -)"
|
51
|
+
- require:
|
52
|
+
- rbenv.installed: ruby
|
53
|
+
|
54
|
+
base_gems:
|
55
|
+
gem.installed:
|
56
|
+
- runas: {{ pillar['username'] }}
|
57
|
+
- names:
|
58
|
+
- bundler
|
59
|
+
- require:
|
60
|
+
- file: adjust_profile
|
@@ -0,0 +1,106 @@
|
|
1
|
+
#
|
2
|
+
# ruby deps
|
3
|
+
#
|
4
|
+
|
5
|
+
rbenv_deps:
|
6
|
+
pkg.installed:
|
7
|
+
- names:
|
8
|
+
- git
|
9
|
+
- build-essential
|
10
|
+
- openssl
|
11
|
+
- curl
|
12
|
+
- zlib1g
|
13
|
+
- zlib1g-dev
|
14
|
+
- libssl-dev
|
15
|
+
- libyaml-dev
|
16
|
+
- libsqlite3-0
|
17
|
+
- libsqlite3-dev
|
18
|
+
- sqlite3
|
19
|
+
- libxml2-dev
|
20
|
+
- libxslt1-dev
|
21
|
+
- autoconf
|
22
|
+
- libc6-dev
|
23
|
+
- libncurses5-dev
|
24
|
+
- automake
|
25
|
+
- libtool
|
26
|
+
- bison
|
27
|
+
- subversion
|
28
|
+
|
29
|
+
#
|
30
|
+
# rbenv and ruby-build installation
|
31
|
+
#
|
32
|
+
|
33
|
+
{{ pillar['homedir'] }}/.rbenv:
|
34
|
+
file.directory:
|
35
|
+
- user: {{ pillar['username'] }}
|
36
|
+
- group: {{ pillar['username'] }}
|
37
|
+
- makedirs: True
|
38
|
+
|
39
|
+
https://github.com/sstephenson/rbenv.git:
|
40
|
+
git.latest:
|
41
|
+
- runas: {{ pillar['username'] }}
|
42
|
+
- rev: master
|
43
|
+
- target: {{ pillar['homedir'] }}/.rbenv
|
44
|
+
- force: True
|
45
|
+
- require:
|
46
|
+
- pkg: rbenv_deps
|
47
|
+
- file: {{ pillar['homedir'] }}/.rbenv
|
48
|
+
|
49
|
+
https://github.com/sstephenson/ruby-build.git:
|
50
|
+
git.latest:
|
51
|
+
- runas: {{ pillar['username'] }}
|
52
|
+
- rev: master
|
53
|
+
- target: {{ pillar['homedir'] }}/.rbenv/plugins
|
54
|
+
- force: True
|
55
|
+
- require:
|
56
|
+
- git: https://github.com/sstephenson/rbenv.git
|
57
|
+
- file: {{ pillar['homedir'] }}/.rbenv
|
58
|
+
|
59
|
+
adjust_profile:
|
60
|
+
file.append:
|
61
|
+
- name: {{ pillar['homedir'] }}/.profile
|
62
|
+
- user: {{ pillar['username'] }}
|
63
|
+
- group: {{ pillar['username'] }}
|
64
|
+
- text:
|
65
|
+
- export PATH="$HOME/.rbenv/bin:$PATH"
|
66
|
+
- eval "$(rbenv init -)"
|
67
|
+
- require:
|
68
|
+
- git: https://github.com/sstephenson/rbenv.git
|
69
|
+
|
70
|
+
|
71
|
+
#
|
72
|
+
# ruby installation
|
73
|
+
#
|
74
|
+
|
75
|
+
# this is currently not working
|
76
|
+
# ruby-{{ pillar['ruby-version'] }}:
|
77
|
+
# rbenv.installed:
|
78
|
+
# - default: True
|
79
|
+
# - require:
|
80
|
+
# - git: https://github.com/sstephenson/ruby-build.git
|
81
|
+
|
82
|
+
install_ruby:
|
83
|
+
cmd.run:
|
84
|
+
- name: {{ pillar['homedir'] }}/.rbenv/bin/rbenv install {{ pillar['ruby-version'] }}
|
85
|
+
- user: {{ pillar['username'] }}
|
86
|
+
- group: {{ pillar['username'] }}
|
87
|
+
- require:
|
88
|
+
- git: https://github.com/sstephenson/ruby-build.git
|
89
|
+
|
90
|
+
rehash:
|
91
|
+
cmd.run:
|
92
|
+
- name: {{ pillar['homedir'] }}/.rbenv/bin/rbenv rehash
|
93
|
+
- user: {{ pillar['username'] }}
|
94
|
+
- group: {{ pillar['username'] }}
|
95
|
+
- require:
|
96
|
+
- cmd: install_rbenv
|
97
|
+
|
98
|
+
set-global:
|
99
|
+
cmd.run:
|
100
|
+
- name: {{ pillar['homedir'] }}/.rbenv/bin/rbenv global {{ pillar['ruby-version'] }}
|
101
|
+
- user: {{ pillar['username'] }}
|
102
|
+
- group: {{ pillar['username'] }}
|
103
|
+
- require:
|
104
|
+
- cmd: rehash
|
105
|
+
|
106
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
ruby-deps:
|
2
|
+
pkg:
|
3
|
+
- installed
|
4
|
+
- names:
|
5
|
+
- build-essential
|
6
|
+
- openssl
|
7
|
+
- libreadline6
|
8
|
+
- libreadline6-dev
|
9
|
+
- curl
|
10
|
+
- git
|
11
|
+
- zlib1g
|
12
|
+
- zlib1g-dev
|
13
|
+
- libssl-dev
|
14
|
+
- libyaml-dev
|
15
|
+
- libsqlite3-0
|
16
|
+
- libsqlite3-dev
|
17
|
+
- sqlite3
|
18
|
+
- libxml2-dev
|
19
|
+
- libxslt1-dev
|
20
|
+
- autoconf
|
21
|
+
- libc6-dev
|
22
|
+
- libncurses5-dev
|
23
|
+
- automake
|
24
|
+
- libtool
|
25
|
+
- bison
|
26
|
+
- subversion
|
27
|
+
|
28
|
+
ruby:
|
29
|
+
pkg.installed:
|
30
|
+
- names:
|
31
|
+
- ruby
|
32
|
+
- rubygems
|
33
|
+
- require:
|
34
|
+
- ruby-deps
|
35
|
+
|
36
|
+
gems:
|
37
|
+
gem.installed:
|
38
|
+
- names:
|
39
|
+
- bundler
|
40
|
+
- rake
|
41
|
+
- require:
|
42
|
+
- ruby
|
43
|
+
|
@@ -0,0 +1,160 @@
|
|
1
|
+
#!/usr/bin/perl -w
|
2
|
+
# -*- cperl -*-
|
3
|
+
# Magic markers:
|
4
|
+
#%# family=auto
|
5
|
+
#%# capabilities=autoconf
|
6
|
+
# nginx_combine_ --- Determine the current status of Nginx
|
7
|
+
# using the http_stub_status module.
|
8
|
+
# extend of nginx_status_ plugin of Ant?nio P. P. Almeida
|
9
|
+
|
10
|
+
# Copyright (C) 2010 Ant?nio P. P. Almeida <appa@perusio.net>
|
11
|
+
# Copyright (C) 2010 Minato Miray <minatomiray@gmail.com>
|
12
|
+
|
13
|
+
# Author: Ant?nio P. P. Almeida <appa@perusio.net>,
|
14
|
+
# Author: Minato Miray <minatomiray@gmail.com>
|
15
|
+
|
16
|
+
#######################################
|
17
|
+
# Nginx combined plugin to measure in one graph:
|
18
|
+
# - Request /sec
|
19
|
+
# - Connection / sec
|
20
|
+
# - Request / connection
|
21
|
+
# - Active connections
|
22
|
+
# - Reading
|
23
|
+
# - Writing
|
24
|
+
# - Waiting
|
25
|
+
########################################
|
26
|
+
|
27
|
+
# Usage:
|
28
|
+
# Copy to /usr/share/munin/plugins
|
29
|
+
# ln -s /usr/share/munin/plugins/nginx_combined_ /etc/munin/plugins/nginx_combined_[hostname OR IP address]
|
30
|
+
|
31
|
+
#examples based on nginx configuration:
|
32
|
+
#example1: ./nginx_combined_mysite.net
|
33
|
+
#example2: ./nginx_combined_10.0.0.1
|
34
|
+
|
35
|
+
########################################
|
36
|
+
|
37
|
+
my $ret = undef;
|
38
|
+
|
39
|
+
if (! eval "require LWP::UserAgent;"){
|
40
|
+
$ret = "LWP::UserAgent not found";
|
41
|
+
}
|
42
|
+
|
43
|
+
chomp(my $fqdn = `basename $0 | sed 's/^nginx_combined_//g'`);
|
44
|
+
|
45
|
+
my $URL = exists $ENV{'url'} ? $ENV{'url'} : "http://$fqdn/nginx_status";
|
46
|
+
|
47
|
+
if ( exists $ARGV[0] and $ARGV[0] eq "autoconf" )
|
48
|
+
{
|
49
|
+
if ($ret){
|
50
|
+
print "no ($ret)\n";
|
51
|
+
exit 1;
|
52
|
+
}
|
53
|
+
|
54
|
+
my $ua = LWP::UserAgent->new(timeout => 30);
|
55
|
+
my $response = $ua->request(HTTP::Request->new('GET',$URL));
|
56
|
+
|
57
|
+
unless ($response->is_success and $response->content =~ /server/im)
|
58
|
+
{
|
59
|
+
print "no (no nginx status on $URL)\n";
|
60
|
+
exit 1;
|
61
|
+
}
|
62
|
+
else
|
63
|
+
{
|
64
|
+
print "yes\n";
|
65
|
+
exit 0;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
if ( exists $ARGV[0] and $ARGV[0] eq "config" )
|
70
|
+
{
|
71
|
+
print "graph_title NGINX status: $URL\n";
|
72
|
+
print "graph_args --base 1000\n";
|
73
|
+
print "graph_category nginx\n";
|
74
|
+
print "graph_vlabel Connections\n";
|
75
|
+
|
76
|
+
print "reqpsec.label Request/sec.\n";
|
77
|
+
print "reqpsec.info Request/sec.\n";
|
78
|
+
print "reqpsec.draw LINE2\n";
|
79
|
+
|
80
|
+
print "conpersec.label Connection/sec.\n";
|
81
|
+
print "conpersec.info Connection/sec.\n";
|
82
|
+
print "conpersec.draw LINE2\n";
|
83
|
+
|
84
|
+
print "reqpcon.label Request/conn.\n";
|
85
|
+
print "reqpcon.info Request/conn.\n";
|
86
|
+
print "reqpcon.draw LINE2\n";
|
87
|
+
|
88
|
+
print "total.label Active connections\n";
|
89
|
+
print "total.info Active connections\n";
|
90
|
+
print "total.draw LINE2\n";
|
91
|
+
|
92
|
+
print "reading.label Reading\n";
|
93
|
+
print "reading.info Reading\n";
|
94
|
+
print "reading.draw LINE2\n";
|
95
|
+
|
96
|
+
print "writing.label Writing\n";
|
97
|
+
print "writing.info Writing\n";
|
98
|
+
print "writing.draw LINE2\n";
|
99
|
+
|
100
|
+
print "waiting.label Waiting\n";
|
101
|
+
print "waiting.info Waiting\n";
|
102
|
+
print "waiting.draw LINE2\n";
|
103
|
+
|
104
|
+
exit 0;
|
105
|
+
}
|
106
|
+
|
107
|
+
#do requests
|
108
|
+
my $ua = LWP::UserAgent->new(timeout => 10);
|
109
|
+
my $response = $ua->request(HTTP::Request->new('GET',$URL));
|
110
|
+
sleep(1);
|
111
|
+
my $response2 = $ua->request(HTTP::Request->new('GET',$URL));
|
112
|
+
|
113
|
+
|
114
|
+
#calculate responses
|
115
|
+
$response->content =~ /Active connections:\s+(\d+).*Reading:\s+(\d+).*Writing:\s+(\d+).*Waiting:\s+(\d+)/s;
|
116
|
+
my $a1 = $1;
|
117
|
+
my $r1 = $2;
|
118
|
+
my $w1 = $3;
|
119
|
+
my $wa1 = $4;
|
120
|
+
|
121
|
+
my $out1 = $response->content;
|
122
|
+
$out1 =~ s/\n/ /g;
|
123
|
+
my @vals = split(/ /, $out1);
|
124
|
+
|
125
|
+
my $tmp1_reqpsec=$vals[11];
|
126
|
+
my $tmp1_conpsec=$vals[10];
|
127
|
+
|
128
|
+
$response2->content =~ /Active connections:\s+(\d+).*Reading:\s+(\d+).*Writing:\s+(\d+).*Waiting:\s+(\d+)/s;
|
129
|
+
|
130
|
+
my $a2 = $1;
|
131
|
+
my $r2 = $2;
|
132
|
+
my $w2 = $3;
|
133
|
+
my $wa2 = $4;
|
134
|
+
|
135
|
+
my $out2 = $response2->content;
|
136
|
+
$out2 =~ s/\n/ /g;
|
137
|
+
my @vals2 = split(/ /, $out2);
|
138
|
+
my $tmp2_reqpsec=$vals2[11];
|
139
|
+
my $tmp2_conpsec=$vals2[10];
|
140
|
+
|
141
|
+
my $conpersec=0;
|
142
|
+
my $reqpcon=0;
|
143
|
+
my $reqpsec=0;
|
144
|
+
if (defined $tmp2_conpsec && $tmp2_conpsec =~ /^[+-]?\d+$/ && $tmp2_conpsec > 0){
|
145
|
+
$conpersec=$tmp2_conpsec-$tmp1_conpsec;
|
146
|
+
}
|
147
|
+
if (defined $tmp2_reqpsec && $tmp2_reqpsec =~ /^[+-]?\d+$/ && $tmp2_reqpsec > 0){
|
148
|
+
$reqpsec=$tmp2_reqpsec-$tmp1_reqpsec;
|
149
|
+
}
|
150
|
+
if ($conpersec > 0){
|
151
|
+
$reqpcon=$reqpsec/$conpersec;
|
152
|
+
}
|
153
|
+
|
154
|
+
print "reqpsec.value $reqpsec\n";
|
155
|
+
print "conpersec.value $conpersec\n";
|
156
|
+
printf("reqpcon.value %.2f\n", $reqpcon);
|
157
|
+
print "total.value $a2\n";
|
158
|
+
print "reading.value $r2\n";
|
159
|
+
print "writing.value $w2\n";
|
160
|
+
print "waiting.value $wa2\n";
|
@@ -0,0 +1,114 @@
|
|
1
|
+
#!/usr/bin/perl -w
|
2
|
+
# -*- cperl -*-
|
3
|
+
|
4
|
+
=head1 NAME
|
5
|
+
|
6
|
+
nginx_request - Munin plugin to show number of requests pr. second to nginx.
|
7
|
+
|
8
|
+
=head1 APPLICABLE SYSTEMS
|
9
|
+
|
10
|
+
Any nginx host
|
11
|
+
|
12
|
+
=head1 CONFIGURATION
|
13
|
+
|
14
|
+
This shows the default configuration of this plugin. You can override
|
15
|
+
the status URL.
|
16
|
+
|
17
|
+
[nginx*]
|
18
|
+
env.url http://localhost/nginx_status
|
19
|
+
|
20
|
+
Nginx must also be configured. Firstly the stub-status module must be
|
21
|
+
compiled, and secondly it must be configured like this:
|
22
|
+
|
23
|
+
server {
|
24
|
+
listen 127.0.0.1;
|
25
|
+
server_name localhost;
|
26
|
+
location /nginx_status {
|
27
|
+
stub_status on;
|
28
|
+
access_log off;
|
29
|
+
allow 127.0.0.1;
|
30
|
+
deny all;
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
=head1 MAGIC MARKERS
|
35
|
+
|
36
|
+
#%# family=auto
|
37
|
+
#%# capabilities=autoconf
|
38
|
+
|
39
|
+
=head1 VERSION
|
40
|
+
|
41
|
+
$Id: nginx_request.in 2431 2009-09-16 10:04:17Z janl $
|
42
|
+
|
43
|
+
=head1 BUGS
|
44
|
+
|
45
|
+
None known
|
46
|
+
|
47
|
+
=head1 AUTHOR
|
48
|
+
|
49
|
+
Unknown
|
50
|
+
|
51
|
+
=head1 LICENSE
|
52
|
+
|
53
|
+
Unknown. Not specified by the unknown author. Nginx has a BSD
|
54
|
+
license. Munin is GPLv2 licensed.
|
55
|
+
|
56
|
+
=cut
|
57
|
+
|
58
|
+
my $ret = undef;
|
59
|
+
|
60
|
+
if (! eval "require LWP::UserAgent;"){
|
61
|
+
$ret = "LWP::UserAgent not found";
|
62
|
+
}
|
63
|
+
|
64
|
+
chomp(my $fqdn=`hostname -f 2>/dev/null | hostname`);
|
65
|
+
|
66
|
+
my $URL = exists $ENV{'url'} ? $ENV{'url'} : "http://$fqdn/nginx_status";
|
67
|
+
my $port = exists $ENV{'port'} ? $ENV{'port'} : "80";
|
68
|
+
|
69
|
+
if ( exists $ARGV[0] and $ARGV[0] eq "autoconf" )
|
70
|
+
{
|
71
|
+
if ($ret){
|
72
|
+
print "no ($ret)\n";
|
73
|
+
exit 0;
|
74
|
+
}
|
75
|
+
|
76
|
+
my $ua = LWP::UserAgent->new(timeout => 30);
|
77
|
+
my $response = $ua->request(HTTP::Request->new('GET',$URL));
|
78
|
+
|
79
|
+
unless ($response->is_success and $response->content =~ /server/im)
|
80
|
+
{
|
81
|
+
print "no (no nginx status on $URL)\n";
|
82
|
+
exit 0;
|
83
|
+
}
|
84
|
+
else
|
85
|
+
{
|
86
|
+
print "yes\n";
|
87
|
+
exit 0;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
if ( exists $ARGV[0] and $ARGV[0] eq "config" )
|
92
|
+
{
|
93
|
+
print "graph_title Nginx requests\n";
|
94
|
+
print "graph_args --base 1000\n";
|
95
|
+
print "graph_category nginx\n";
|
96
|
+
print "graph_vlabel Request per second\n";
|
97
|
+
print "request.label req/sec\n";
|
98
|
+
print "request.type DERIVE\n";
|
99
|
+
print "request.min 0\n";
|
100
|
+
print "request.label requests port $port\n";
|
101
|
+
print "request.draw LINE2\n";
|
102
|
+
|
103
|
+
exit 0;
|
104
|
+
}
|
105
|
+
|
106
|
+
my $ua = LWP::UserAgent->new(timeout => 30);
|
107
|
+
|
108
|
+
my $response = $ua->request(HTTP::Request->new('GET',$URL));
|
109
|
+
|
110
|
+
if ($response->content =~ /^\s+(\d+)\s+(\d+)\s+(\d+)/m) {
|
111
|
+
print "request.value $3\n";
|
112
|
+
} else {
|
113
|
+
print "request.value U\n";
|
114
|
+
}
|