1
1
# Spine: a poller for Cacti
2
2
3
3
Spine is a high speed poller replacement for ` cmd.php ` . It is almost 100%
4
- compatible with the legacy cmd.php processor and provides much more
5
- flexibility, speed and concurrency than ` cmd.php ` .
4
+ compatible with the legacy cmd.php processor and provides much more flexibility,
5
+ speed and concurrency than ` cmd.php ` .
6
6
7
7
Make sure that you have the proper development environment to compile Spine.
8
- This includes compilers, header files and things such as libtool. If you
9
- have questions please consult the forums and/or online documentation.
10
-
11
- -----------------------------------------------------------------------------
12
-
13
- ## 1.2.0 Development
14
-
15
- ** PLEASE READ**
16
-
17
- Feature branch for ` 1.2.x ` has been merged into the ` develop ` branch. This means
18
- things may and will break, but they will eventually be fixed.
19
-
20
- > DEVELOP branch is currently considered UNSTABLE, use with caution!
8
+ This includes compilers, header files and things such as libtool. If you have
9
+ questions please consult the forums and/or online documentation.
21
10
22
11
-----------------------------------------------------------------------------
23
12
24
13
## Unix Installation
25
14
26
- These instructions assume the default install location for spine
27
- of ` /usr/local/spine ` . If you choose to use another prefix, make
28
- sure you update the commands as required for that new path.
15
+ These instructions assume the default install location for spine of
16
+ ` /usr/local/spine ` . If you choose to use another prefix, make sure you update
17
+ the commands as required for that new path.
29
18
30
- To compile and install Spine using MySQL versions 5.5 or higher
31
- please do the following:
19
+ To compile and install Spine using MySQL versions 5.5 or higher please do the
20
+ following:
32
21
33
- ```
22
+ ``` shell
34
23
./configure
35
24
make
36
25
make install
37
26
chown root:root /usr/local/spine/bin/spine
38
27
chmod u+s /usr/local/spine/bin/spine
39
28
```
40
29
41
- To compile and install Spine using MySQL versions previous to 5.5
42
- please do the following:
30
+ To compile and install Spine using MySQL versions previous to 5.5 please do the
31
+ following:
43
32
44
- ```
33
+ ``` shell
45
34
./configure --with-reentrant
46
35
make
47
36
make install
@@ -54,70 +43,91 @@ chmod +s /usr/local/spine/bin/spine
54
43
### CYGWIN Prerequisite
55
44
56
45
1 . Download Cygwin for Window from [ https://www.cygwin.com/ ] ( https://www.cygwin.com/ )
46
+
57
47
2 . Install Cygwin by executing the downloaded setup program
48
+
58
49
3 . Select _ Install from Internet_
50
+
59
51
4 . Select Root Directory: _ C:\cygwin_
52
+
60
53
5 . Select a mirror which is close to your location
61
- 6 . Once on the package selection section make sure to select the following (TIP: use the search!):
62
- * autoconf
63
- * automake
64
- * dos2unix
65
- * gcc-core
66
- * gzip
67
- * help2man
68
- * libmysqlclient
69
- * libmysqlclient-devel
70
- * libtool
71
- * m4
72
- * make
73
- * net-snmp-devel
74
- * openssl-devel
75
- * wget
54
+
55
+ 6 . Once on the package selection section make sure to select the following (TIP:
56
+ use the search!):
57
+
58
+ * autoconf
59
+ * automake
60
+ * dos2unix
61
+ * gcc-core
62
+ * gzip
63
+ * help2man
64
+ * libmysqlclient
65
+ * libmysqlclient-devel
66
+ * libtool
67
+ * m4
68
+ * make
69
+ * net-snmp-devel
70
+ * openssl-devel
71
+ * wget
72
+
76
73
7 . Wait for installation to complete, coffee time!
77
- 8 . Move the cygwin setup to the C:\cygwin\ folder for future usage.
74
+
75
+ 8 . Move the cygwin setup to the C:\cygwin\ folder for future usage.
78
76
79
77
### Compile Spine
80
78
81
- 1 . Open Cygwin shell prompt (C:\Cygwin\cygwin.bat) and brace yourself to use unix commands on Windows.
79
+ 1 . Open Cygwin shell prompt (C:\Cygwin\cygwin.bat) and brace yourself to use
80
+ unix commands on Windows.
81
+
82
82
2 . Download the Spine source to the current directory:
83
- [http://www.cacti.net/spine_download.php](http://www.cacti.net/spine_download.php)
83
+
84
+ [ http://www.cacti.net/spine_download.php ] ( http://www.cacti.net/spine_download.php )
85
+
84
86
3 . Extract Spine into C:\Cygwin\usr\src\< spineversion>:
85
- `tar xzvf cacti-spine-*.tar.gz`
87
+
88
+ ` tar xzvf cacti-spine-*.tar.gz `
89
+
86
90
4 . Change into the Spine directory:
87
- `cd /usr/src/cacti-spine-*`
91
+
92
+ ` cd /usr/src/cacti-spine-* `
93
+
88
94
5 . Run bootstrap to prepare Spine for compilation:
89
- `./bootstrap`
95
+
96
+ ` ./bootstrap `
97
+
90
98
6 . Follow the instruction which bootstrap outputs.
91
- 7 . Update the spine.conf file for your installation of Cacti. You can optionally
99
+
100
+ 7 . Update the spine.conf file for your installation of Cacti. You can optionally
92
101
move it to a better location if you choose to do so, make sure to copy the
93
102
spine.conf as well.
103
+
94
104
8 . Ensure that Spine runs well by running with ` /usr/local/spine/spine -R -S -V 3 `
95
- 9 . Update Cacti ` Paths ` Setting to point to the Spine binary and update the
105
+
106
+ 9 . Update Cacti ` Paths ` Setting to point to the Spine binary and update the
96
107
` Poller Type ` to Spine. For the spine binary on Windows x64, and using default
97
108
locations, that would be ` C:\cygwin64\usr\local\spine\bin\spine.exe `
109
+
98
110
10 . If all is good Spine will be run from the poller in place of cmd.php.
99
111
100
112
## Known Issues
101
113
102
114
1 . On Windows, Microsoft does not support a TCP Socket send timeout. Therefore,
103
- if you are using TCP ping on Windows, spine will not perform a second or subsequent
104
- retries to connect and the host will be assumed down on the first failure.
115
+ if you are using TCP ping on Windows, spine will not perform a second or
116
+ subsequent retries to connect and the host will be assumed down on the first
117
+ failure.
105
118
106
119
If this is a problem it is suggested to use another Availability/Reachability
107
120
method, or moving to Linux/UNIX.
108
121
109
- 2 . Spine takes quite a few MySQL connections. The number of connections is calculated
110
- as follows:
111
-
112
- * main poller take one connection
113
- * all threads take one connection each
114
- * all script servers take one connection each
122
+ 2 . Spine takes quite a few MySQL connections. The number of connections is
123
+ calculated as follows: (1 for main poller + 1 per each thread + 1 per each
124
+ script server)
115
125
116
- Therefore, if you have 4 processes, with 10 threads each, and 5 script servers each
117
- your spine will take approximately:
126
+ Therefore, if you have 4 processes, with 10 threads each, and 5 script
127
+ servers each your spine will take approximately:
118
128
119
129
` total connections = 4 * ( 1 + 10 + 5 ) = 64 `
120
130
121
- 3 . On older MySQL versions, different libraries had to be used to make MySQL thread
122
- safe. MySQL versions 5.0 and 5.1 require this flag. If you are using these version
123
- of MySQL, you must use the --with-reentrant configure flag.
131
+ 3 . On older MySQL versions, different libraries had to be used to make MySQL
132
+ thread safe. MySQL versions 5.0 and 5.1 require this flag. If you are using
133
+ these version of MySQL, you must use the --with-reentrant configure flag.
0 commit comments