Zabbix是一种开源的网络监控和警报工具,旨在实时监控各种网络设备、服务器和应用程序的性能和可用性。它提供了一个完整的解决方案,包括数据收集、数据存储、处理和警报功能。
Zabbix具有以下特点:
- 灵活的数据收集:Zabbix可以通过SNMP、JMX、IPMI等多种协议和方法收集各种设备和应用程序的数据,并将其存储在数据库中。
- 高度可配置的警报:Zabbix可以根据定义的规则和阈值来触发警报,并通过电子邮件、短信等方式通知相关人员。
- 实时监控和分析:Zabbix提供了实时的数据监控和分析功能,可以帮助用户及时发现和解决问题。
- 自动发现:Zabbix可以自动发现网络设备和应用程序,并自动添加到监控列表中,简化了配置和管理过程。
- 强大的报告功能:Zabbix提供了丰富的报告功能,可以生成各种图表和报表,帮助用户分析和评估系统的性能。
一、获取zabbix源码包
https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.43.tar.gz
此处将压缩包传到/root目录下,解压
#tar -xzvf zabbix-5.0.43.tar.gz
二、创建zabbix账户
#groupadd --system zabbix
#useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
#mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
#chown zabbix:zabbix /usr/lib/zabbix
三、安装编译所需软件包
#yum -y install net-snmp-devel libxml2-devel libcurl-devel libevent-devel pcre-devel libxml2-devel openssl-devel zlib-devel
四、创建zabbix数据库
系统默认已安装mariadb,sqlite数据库
需要安装mariadb-devel,否则后续编译zabbix会失败
#yum -y install mariadb-devel ,会安装依赖包
启动mariadb数据库
#systemctl start mariadb ,之后查看状态已运行
#mysql -uroot -p
初始状态,mysql root用户没有密码,回车即可
创建数据库并授权
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> create user 'zabbix'@'localhost' identified by 'kylin123.';
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost';
MariaDB [(none)]> quit
#cd zabbix-5.0.43/database/mysql/
#mysql -uzabbix -pkylin123. zabbix < schema.sql
如果你仅仅是初始化proxy的数据库,那么schema.sql够了。如果初始化server,那么接着导入下面两个sql:
#mysql -uzabbix -pkylin123. zabbix < images.sql
#mysql -uzabbix -pkylin123. zabbix < data.sql
创建后续需要的目录
#mkdir -p /data/zabbix/logs
#mkdir -p /data/zabbix/socket
五、源码编译zabbix-server
5.1 、编译zabbix-server
#cd zabbix-5.0.43/
#./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-libevent=/usr/local/libevent
#make install
5.2、修改zabbix-server配置文件
cd /usr/local/zabbix/etc
mv zabbix_server.conf zabbix_server.conf.bak
vim zabbix_server.conf
文件内容如下
ListenPort=10052
LogFile=/data/zabbix/logs/zabbix_server.log
LogFileSize=10
SocketDir=/var/lib/mysql/mysql.sock
DBHost=localhost
DBName=zabbix
DBUser=zabbix
AllowRoot=1
DBPassword=kylin123.
Timeout=30
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
5.3、创建zabbix-server运行脚本
#vim /usr/local/zabbix/bin/zabbix_server
文件内容如下:
#!/bin/bash
. /etc/init.d/functions
RETVAL=0
prog="Zabbix Server"
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
if [ ! -x ${ZABBIX_BIN} ] ; then
echo -n "${ZABBIX_BIN} not installed! "
# Tell the user this has skipped
exit 5
fi
start() {
echo -n $"Starting $prog: "
$ZABBIX_BIN
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/zabbix_server
echo
}
stop() {
echo -n $"Stopping $prog: "
pids=$(pidof $ZABBIX_BIN)
(test -n "$pids" && kill -15 $pids) || true
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zabbix_server
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload|restart)
stop
sleep 10
start
RETVAL=$?
;;
status)
status $ZABBIX_BIN
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit $RETVAL
#chmod +x /usr/local/zabbix/bin/zabbix_server
5.4、创建zabbix-server系统服务
#vim /usr/lib/systemd/system/zabbix_server.service
文件内容如下:
[Unit]
Description="Zabbix Server"
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/zabbix/bin/zabbix_server start
ExecStop=/usr/local/zabbix/bin/zabbix_server stop
Restart=always
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
# 重载,设置zabbix-server服务开机自启
#systemctl daemon-reload
#systemctl enable zabbix_server.service
#systemctl start zabbix_server.service
# 验证服务是否正常
#systemctl status zabbix_server.service
六、源码编译zabbix_proxy
6.1、编译zabbix_proxy
#cd zabbix-5.0.43/
#./configure --prefix=/usr/local/zabbix --enable-proxy --with-net-snmp --with-libevent=/usr/local/libevent --with-sqlite3=/usr/local/sqlite3 --with-libcurl --with-openssl
#make install
6.2、修改zabbix_proxy配置文件
cd /usr/local/zabbix/etc
mv zabbix_proxy.conf zabbix_proxy.conf.bak
vim zabbix_proxy.conf
文件内容如下
ProxyMode=0
Server=127.0.0.1
ServerPort=10052
Hostname=Zabbix-Proxy
LogFile=/data/zabbix/logs/zabbix_proxy.log
LogFileSize=10
AllowRoot=1
SocketDir=/data/zabbix/socket/
DBName=/data/zabbix/data/sqlite3.db
ProxyOfflineBuffer=72
Timeout=30
LogSlowQueries=3000
ConfigFrequency=180
6.3、创建zabbix_proxy运行脚本
vim /usr/local/zabbix/bin/zabbix_proxy
文件内容如下
#!/bin/bash
. /etc/init.d/functions
RETVAL=0
prog="Zabbix Proxy"
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_proxy"
if [ ! -x ${ZABBIX_BIN} ] ; then
echo -n "${ZABBIX_BIN} not installed! "
# Tell the user this has skipped
exit 5
fi
start() {
echo -n $"Starting $prog: "
$ZABBIX_BIN
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/zabbix_proxy
echo
}
stop() {
echo -n $"Stopping $prog: "
pids=$(pidof $ZABBIX_BIN)
(test -n "$pids" && kill -15 $pids) || true
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zabbix_proxy
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload|restart)
stop
sleep 10
start
RETVAL=$?
;;
status)
status $ZABBIX_BIN
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit $RETVAL
chmod +x /usr/local/zabbix/bin/zabbix_proxy
6.4、创建zabbix_proxy系统服务
vim /usr/lib/systemd/system/zabbix_proxy.service
文件内容如下
[Unit]
Description="Zabbix Proxy"
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/zabbix/bin/zabbix_proxy start
ExecStop=/usr/local/zabbix/bin/zabbix_proxy stop
Restart=always
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
重载,设置zabbix-proxy服务开机自启
#systemctl daemon-reload
#systemctl enable zabbix_proxy.service
#systemctl start zabbix_proxy.service
验证服务是否正常
#systemctl status zabbix_proxy.service
七、源码编译zabbix-agent
7.1、编译zabbix-agent
#cd zabbix-5.0.43/
#./configure --prefix=/usr/local/zabbix --enable-agent --with-net-snmp --with-libcurl --with-openssl
结束后输出如下
#make install
7.2、修改zabbix-agent配置文件
#cd /usr/local/zabbix/etc
#mv zabbix_agentd.conf zabbix_agentd.conf.bak
#vim zabbix_agentd.conf
文件内容如下
LogFile=/data/zabbix/logs/zabbix_agentd.log
LogFileSize=10
Server=127.0.0.1
ServerActive=127.0.0.1
AllowRoot=1
Hostname=Zabbix server
HostMetadataItem=system.uname
Timeout=30
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
7.3、创建zabbix-agent运行脚本
#vim /usr/local/zabbix/bin/zabbix_agentd
文件内容如下
#!/bin/bash
. /etc/init.d/functions
RETVAL=0
prog="Zabbix Agentd"
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
if [ ! -x ${ZABBIX_BIN} ] ; then
echo -n "${ZABBIX_BIN} not installed! "
# Tell the user this has skipped
exit 5
fi
start() {
echo -n $"Starting $prog: "
$ZABBIX_BIN
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/zabbix_agentd
echo
}
stop() {
echo -n $"Stopping $prog: "
pids=$(pidof $ZABBIX_BIN)
(test -n "$pids" && kill -15 $pids) || true
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zabbix_agentd
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload|restart)
stop
sleep 10
start
RETVAL=$?
;;
status)
status $ZABBIX_BIN
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit $RETVAL
chmod +x /usr/local/zabbix/bin/zabbix_agentd
7.4、创建zabbix-agent系统服务
vim /usr/lib/systemd/system/zabbix_agentd.service
文件内容如下
[Unit]
Description="Zabbix Agentd"
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/zabbix/bin/zabbix_agentd start
ExecStop=/usr/local/zabbix/bin/zabbix_agentd stop
Restart=always
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
重载,设置zabbix-server服务开机自启
#systemctl daemon-reload
#systemctl enable zabbix_agentd.service
#systemctl start zabbix_agentd.service
验证服务是否正常
#systemctl status zabbix_agentd
八、安装配置php,httpd
8.1、执行以下命令安装
yum install php-fpm php httpd
8.2、修改php.ini配置文件
#sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
#sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
#sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
#sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
8.3、设置php-fpm开机自启
#systemctl enable php-fpm
#systemctl restart php-fpm
#systemctl start httpd
#systemctl status httpd
#mkdir -p /var/www/html/zabbix
#cd /root/zabbix-5.0.43/
#cp ui/* /var/www/html/zabbix/
九、浏览器访问zabbix并配置
9.1 、访问zabbix页面
如果点击无反应,查看/var/log/php-fpm中日志
需要安装php扩展#yum install php-mbstring
#vim /etc/php.ini
添加extension=mbstring.so后重启httpd
9.2、安装较多需求项
需要安装php扩展项
#yum install php-bcmath php-gd php-xml php-ldap php-mysqlnd php-json
重启服务
#systemctl restart php-fpm httpd mariadb
9.3、 配置数据库连接
database type中无选项时,可以尝试更换浏览器
9.4、查看汇总信息
9.5下载指定配置文件
点击下载配置文件后,拷贝到指定目录
#cp zabbix.conf.php /var/www/html/zabbix/conf
9.6登录zabbix
默认用户名Admin,密码zabbix
登录后界面如下
FROM xw