master
in 106 lines 3.38 KB
Raw
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-3.0-or-later
3 #
4 # This script downloads and installs IBM MQ client libraries
5 # required for the ibm.d.plugin MQ PCF collector to work.
6 #
7 # Note: Database collectors (AS/400, DB2) now use unixODBC exclusively
8 # and do not require IBM DB2 client libraries.
9
10 set -e
11
12 MQ_CLIENT_URL="https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/messaging/mqdev/redist/9.4.1.0-IBM-MQC-Redist-LinuxX64.tar.gz"
13
14 # Set installation directory from CMake
15 BASE_DIR="@NETDATA_RUNTIME_PREFIX@/usr/lib/netdata"
16
17 # Allow override via command line
18 if [ -n "$1" ]; then
19 BASE_DIR="$1"
20 echo "Using specified installation directory: $BASE_DIR"
21 else
22 echo "Using Netdata installation directory: $BASE_DIR"
23 fi
24
25 MQ_CLIENT_DIR="${BASE_DIR}/ibm-mqclient"
26
27 # Check if already installed
28 if [ -f "$MQ_CLIENT_DIR/lib64/libmqm.so" ]; then
29 echo "IBM MQ client libraries are already installed"
30 echo " Path: $MQ_CLIENT_DIR"
31 exit 0
32 fi
33
34 # Check for root permissions
35 if [ "$(id -u)" -ne 0 ]; then
36 echo "ERROR: This script must be run as root"
37 exit 1
38 fi
39
40 # Install MQ libraries
41 echo "Installing IBM MQ client libraries to: $MQ_CLIENT_DIR"
42 mkdir -p "$MQ_CLIENT_DIR"
43 cd "$MQ_CLIENT_DIR"
44
45 # Download
46 echo "Downloading IBM MQ client libraries..."
47 if command -v wget >/dev/null 2>&1; then
48 wget -q --show-progress -O mqclient.tar.gz "$MQ_CLIENT_URL" || {
49 echo "ERROR: Failed to download IBM MQ client libraries"
50 exit 1
51 }
52 elif command -v curl >/dev/null 2>&1; then
53 curl -# -L -o mqclient.tar.gz "$MQ_CLIENT_URL" || {
54 echo "ERROR: Failed to download IBM MQ client libraries"
55 exit 1
56 }
57 else
58 echo "ERROR: Neither wget nor curl found. Cannot download IBM libraries."
59 echo "Please install wget or curl and try again."
60 exit 1
61 fi
62
63 # Extract
64 echo "Extracting IBM MQ client libraries..."
65 tar -xzf mqclient.tar.gz || {
66 echo "ERROR: Failed to extract IBM MQ client libraries"
67 rm -f mqclient.tar.gz
68 exit 1
69 }
70 rm -f mqclient.tar.gz
71
72 # Set proper permissions
73 chown -R root:root "$MQ_CLIENT_DIR"
74 chmod -R 755 "$MQ_CLIENT_DIR"
75 echo "IBM MQ client libraries installed successfully."
76 echo " Installation path: $MQ_CLIENT_DIR"
77 echo " Headers: $MQ_CLIENT_DIR/inc"
78 echo " Libraries: $MQ_CLIENT_DIR/lib64"
79 echo " Binaries: $MQ_CLIENT_DIR/bin"
80
81 echo ""
82 echo "=========================================="
83 echo "IBM MQ Client Libraries Installation Summary"
84 echo "=========================================="
85 echo ""
86 echo "Base installation directory: $BASE_DIR"
87 echo ""
88 if [ -f "$MQ_CLIENT_DIR/lib64/libmqm.so" ]; then
89 echo "MQ Client Libraries:"
90 echo " Path: $MQ_CLIENT_DIR"
91 echo " Headers: $MQ_CLIENT_DIR/inc"
92 echo " Libraries: $MQ_CLIENT_DIR/lib64"
93 fi
94 echo ""
95 echo "The ibm.d.plugin should now be able to connect to:"
96 echo " - IBM MQ queue managers"
97 echo " - IBM WebSphere Application Server (via MQ)"
98 echo ""
99 echo "For database monitoring (DB2, AS/400), install unixODBC and appropriate ODBC drivers:"
100 echo " - unixODBC: apt-get install unixodbc (Ubuntu) or yum install unixODBC (RHEL)"
101 echo " - IBM DB2 ODBC Driver: Download from IBM Data Server Driver Package"
102 echo " - IBM i Access ODBC Driver: Download from IBM i Access Client Solutions"
103 echo ""
104 echo "Note: You may need to restart the Netdata service for the changes to take effect:"
105 echo " systemctl restart netdata # For systemd systems"
106 echo " /etc/init.d/netdata restart # For SysV init systems"