Note build zabbix từ source

Download zabbix từ trang chủ: https://www.zabbix.com/download_sources

– Giải nén
– Cài đặt gói cần thiết:

yum install gcc mysql-devel libxml2-devel net-snmp-devel curl-devel unixODBC-devel OpenIPMI-devel libssh2-devel iksemel-devel openldap-devel libevent-devel pcre-devel

– Cài đặt java
– configure

./configure --enable-server --enable-agent --enable-proxy --enable-java --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-ssh2 --with-ldap --with-libpcre
make install

Output các file build đc nằm ở /sbin/local/

Một số trick:
– Mặc định timeout giữa server và agent, giữa agent và script external check chỉ tối đa 30s. Có thể tăng con số này lên bằng cách sửa lại source của zabbix sau đó thay đè file binary build được vào máy chủ đã cài trước đó:
Timeout server: Sửa timeout trong file server.c

Cài đặt gcc mới nhất từ source trên centos 7

Mặc định cài từ yum của centos 7 chỉ có gcc 4.8.5. Khá là cũ, các software mới như redis yêu cầu tối thiểu phải 4.9 mới buld được. Cách cài đặt gcc mới hơn như sau:

Tìm source từ trang chủ: https://gcc.gnu.org/mirrors.html
Tìm được  1 repo cảm thấy gần mình nhất sau đó truy cập vào, lấy ra link release, wget về là OK, ở đây là link:

wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.1.0/gcc-10.1.0.tar.gz

Giải nén sau đó tiến hành cài đặt:

yum -y install bzip2 wget gcc gcc-c++ gmp-devel mpfr-devel libmpc-devel make
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.1.0/gcc-10.1.0.tar.gz
tar xzvf gcc-10.1.0.tar.gz
cd gcc-10.1.0
./configure --enable-languages=c,c++ --disable-multilib
make -j$(nproc)
make install

Sau khi make install tiến hành khai báo

export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
cat <<EOF >  /etc/profile.d/gcc10.sh
export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
EOF

test lại output thế này là OK

[root@redis1 redis-6.0.1]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/10.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --enable-languages=c,c++ --disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.1.0 (GCC)
[root@redis1 redis-6.0.1]#