首页 » Zabbix » 正文

Zabbix从入门到删库跑路(三)

groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

yum install libxml2 libxml2-devel openssl-devel \
net-snmp-devel libevent-devel -y

#centos 7
yum -y install OpenIPMI OpenIPMI-devel ipmitool freeipmi
centos 8的OpenIPMI-devel在PowerTools源中
#yum install ipmitool freeipmi
###如果报错提示ipmi_serial_bmc_emu.c:45:10: 致命错误:editline/readline.h:没有那个文件或目录

#打开./sample/ipmi_serial_bmc_emu.c。
找到#include 
#把editline/readline.h修改成/usr/include/readline/readline.h

#或者提前拷贝到相应位置
yum install readline readline-devel -y
mkdir editline
cp /usr/include/readline/readline.h  editline/

./configure --prefix=/usr/local/OpenIPMI --with-python=/usr/bin/python3.6
cp -v /usr/local/OpenIPMI/lib/pkgconfig/* /usr/lib64/pkgconfig/
echo "/usr/local/OpenIPMI/lib" > /etc/ld.so.conf.d/OpenIPMI.conf
ldconfig
ldconfig -p |grep OpenIPMI

libssh2

源码方式
./configure --prefix=/usr/local/libssh2
make && make install
cp /usr/local/libssh2/lib/pkgconfig/* /usr/lib64/pkgconfig/
echo "/usr/local/libssh2/lib" > /etc/ld.so.conf.d/libssh2.conf
ldconfig
ldconfig -p |grep libssh2
rpm 方式:在EPEL源中
yum install libssh2 libssh2-devel -y
yum install mariadb-devel -y
#或者
yum install mysql-devel -y

zabbix

ZABBIX_PREFIX=/usr/local/zabbix
ZABBIX_CONF=${ZABBIX_PREFIX}/conf
ZABBIX_RUN_DIR=${ZABBIX_PREFIX}/run
ZABBIX_LOG_DIR=${ZABBIX_PREFIX}/log
mkdir -p ${ZABBIX_RUN_DIR}
chmod 755 -Rf ${ZABBIX_RUN_DIR}
chown zabbix:zabbix -Rf ${ZABBIX_RUN_DIR}
mkdir -p ${ZABBIX_LOG_DIR}
chmod 755 -Rf ${ZABBIX_LOG_DIR}
chown zabbix:zabbix -Rf ${ZABBIX_LOG_DIR}
./configure --prefix=${ZABBIX_PREFIX} \
--sysconfdir=${ZABBIX_CONF} \
--enable-server \
--enable-agent \
--enable-proxy \
--enable-ipv6 \
--with-mysql \
--with-net-snmp \
--with-openssl=/usr/local/openssl \
--with-libxml2 \
--with-ldap \
--with-libcurl \
--with-zlib=/usr/local/zlib \
--with-zlib-include=/usr/local/zlib/include \
--with-zlib-lib=/usr/local/zlib/lib \
--with-libpcre=/usr/local/pcre \
--with-libpcre-include=/usr/local/pcre/include \
--with-libpcre-lib=/usr/local/pcre/lib \
--with-iconv=/usr/local \
--with-iconv-include=/usr/local/include \
--with-iconv-lib=/usr/local/lib \
--with-ssh2=/usr/local/libssh2 \
--with-openipmi
mkdir -p /usr/www/html
mv frontends/php /usr/www/html/zabbix

chmod 755 -Rf /usr/www/html
chown nginx:nginx -Rf /usr/www/html
配置zabbix的systemd服务
touch /lib/systemd/system/zabbix-server.service
touch /lib/systemd/system/zabbix-agent.service

cat >> /lib/systemd/system/zabbix-server.service << EOF
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=${ZABBIX_CONF}/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=${ZABBIX_RUN_DIR}/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c \$CONFFILE
ExecStop=/bin/kill -SIGTERM \$MAINPID
RestartSec=10s
TimeoutSec=0

[Install]
WantedBy=multi-user.target
EOF

cat >> /lib/systemd/system/zabbix-agent.service << EOF
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment="CONF_FILE=${ZABBIX_CONF}/zabbix_agentd.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=${ZABBIX_RUN_DIR}/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c \$CONF_FILE
ExecStop=/bin/kill -SIGTERM \$MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target
EOF

配置MySQL数据库

MySQL_PWD=123456
Host_IP=127.0.0.1
Port=3306
sed -i "s/# DBPassword=/DBPassword=${MySQL_PWD}/g" ${ZABBIX_CONF}/zabbix_server.conf
sed -i "s/# DBPort=/DBPort=${Port}/g" ${ZABBIX_CONF}/zabbix_server.conf
sed -i "s/# DBHost=localhost/DBHost=${Host_IP}/g" ${ZABBIX_CONF}/zabbix_server.conf
sed -i "s/LogFile=\/tmp\/zabbix_server.log/LogFile=\/usr\/local\/zabbix\/log\/zabbix_server.log/g" ${ZABBIX_CONF}/zabbix_server.conf
sed -i "s/# PidFile=\/tmp\/zabbix_server.pid/PidFile=\/usr\/local\/zabbix\/run\/zabbix_server.pid/g" ${ZABBIX_CONF}/zabbix_server.conf

sed -i "s/LogFile=\/tmp\/zabbix_agentd.log/LogFile=\/usr\/local\/zabbix\/log\/zabbix_agentd.log/g" ${ZABBIX_CONF}/zabbix_agentd.conf
sed -i "s/# PidFile=\/tmp\/zabbix_agentd.pid/PidFile=\/usr\/local\/zabbix\/run\/zabbix_agentd.pid/g" ${ZABBIX_CONF}/zabbix_agentd.conf

创建zabbix连接的数据库,并导入数据库文件

cd database/mysql/

create database zabbix default charset utf8mb4;
grant all on zabbix.* to zabbix@'localhost' identified by 'Maybe1314+-*';
flush privileges;

cd database/mysql/
mysql -uzabbix -h 127.0.0.1 -p zabbix < schema.sql #(必须首先导入)
mysql -uzabbix -h 127.0.0.1 -p zabbix < images.sql
mysql -uzabbix -h 127.0.0.1 -p zabbix < data.sql
其余选项如果是源码编译的指向安装路径即可
--libcurl 启用WEB Monitoring 监控网页
--with-openipmi IPMI监控服务器硬件状况
如果是编译安装的MySQL,启动zabbix_server失败后执行
/usr/local/zabbix/zabbix_server
如果提示如下错误
#./zabbix_server: error while loading shared libraries: libmysqlclient.so.20:
#cannot open shared object file: No such file or directory
执行下面内容
#echo "/usr/local/mysql/lib" >> /etc/ld.so.conf.d/mysql.conf
#ldconfig
#ldconfig -p |grep libmysqlclient.so
systemctl start zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent
systemctl status zabbix-server zabbix-agent

发表评论