Zabbix是一款开源的监控软件,能够保障业务时时刻刻正常运转,当监测到服务器出现问题时,能够进行告警,紧急修复。以此来解放人力,提升效率,获得更多的安全感。本文主要以centos7的系统为例,详细解说zabbix的安装部署步骤与需要注意的问题。
一、安装部署Zabbix
1.官网下载
根据Centos的版本进入官网www.zabbix.com选择要下载的zabbix版本,本文以centos
7的系统为例进行安装。
[root@localhost ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
3.安装zabbix相关软件
[root@localhost yum.repos.d]# yum install zabbix-server-mysql zabbix-agent -y
4.安装前端相关的软件并修改配置
[root@localhost yum.repos.d]# yum install centos-release-scl -y
修改仓库文件,启用前端的源
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1 #修改为1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
安装web相关的软件
[root@localhost yum.repos.d]# yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl -y
5.安装数据库
如果已经存在mysql的centos系统,则不需要重新安装数据库
如果系统中没有数据库,需要进行安装,本文推荐安装Mariadb
[root@localhost yum.repos.d]# yum install mariadb mariadb-server -y
mariadb-server 服务器端的软件包
mariadb 提供客户端命令的软件包
启动mariadb
[root@localhost yum.repos.d]# service mariadb start
Redirecting to /bin/systemctl start mariadb.service
设置mariadb数据库开机启动
[root@localhost yum.repos.d]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
查看mysql的进程是否运行
[root@localhost yum.repos.d]# ps aux|grep mysqld
mysql 2574 0.0 0.1 113412 1596 ? Ss 11:22 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql 2739 0.1 8.2 968920 81684 ? Sl 11:22 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root 2794 0.0 0.0 112824 980 pts/0 R+ 11:26 0:00 grep --color=auto mysql
需要安装net-tools,查看端口号
[root@localhost yum.repos.d]# netstat -antplu|grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2739/mysqld
登录mysql
# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin; #创建zabbix数据库
mysql> create user zabbix@localhost identified by 'sc123456'; #创建用户
mysql> grant all privileges on zabbix.* to zabbix@localhost; #对用户进行授权
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
在mysql的zabbix库里新建很多的表,导入初始化数据
[root@localhost yum.repos.d]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
6.修改相关配置
修改/etc/zabbix/zabbix_server.conf,添加相关配置
[root@zabbix ~]# cd /etc/zabbix
[root@zabbix zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
[root@zabbix zabbix]# vim zabbix_server.conf
DBPassword=sc123456 #添加配置
修改 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf,取消注释并修改端口号和名称
[root@zabbix zabbix]# cd /etc/opt/rh/rh-nginx116/nginx/conf.d/
[root@zabbix conf.d]# ls
zabbix.conf
[root@zabbix conf.d]# vim zabbix.conf
listen 8080;
server_name zabbix.sc.com;
修改/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf加入nginx选项,修改时区
[root@zabbix conf.d]# cd /etc/opt/rh/rh-php72/php-fpm.d
[root@zabbix php-fpm.d]# ls
www.conf zabbix.conf
[root@zabbix php-fpm.d]# vim zabbix.conf
listen.acl_users = apache,nginx
php_value[date.timezone] = Asia/Shanghai
7.关闭防火墙和selinux
关闭防火墙
[root@zabbix php-fpm.d]# service firewalld stop #临时关闭防火墙
Redirecting to /bin/systemctl stop firewalld.service
[root@zabbix php-fpm.d]# systemctl disable firewalld #设置防火墙开机关闭
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
关闭selinux
[root@zabbix php-fpm.d]# getenforce #查看selinux的状态
Enforcing
[root@zabbix php-fpm.d]# setenforce 0 #临时关闭selinux
[root@zabbix php-fpm.d]# vim /etc/sysconfig/selinux #永久修改selinux
8.重新启动zabbix
[root@zabbix php-fpm.d]# systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
[root@zabbix php-fpm.d]# systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
9.访问对应的ip与端口号
10.将zabbix的nginx更换为默认80端口
修改默认nginx中的配置,防止与zabbix中的nginx抢占端口
修改默认的nginx为8080端口
[root@zabbix /]# cd /etc/opt/rh/rh-nginx116/nginx
[root@zabbix nginx]# ls
conf.d fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf
default.d fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default
[root@zabbix nginx]# vim nginx.conf
server {
listen 8080 default_server; #将该默认nginx的端口号更改为80
listen [::]:8080 default_server;
修改zabbix中的nginx为80端口
root@zabbix nginx]# vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
server {
listen 80; #再将zabbix对应的nginx更改为80
server_name zabbix.sc.com;
访问zabbix对应的ip后,首次登陆的账号密码:
账号:Admin
密码:zabbix
二、zabbix架构图
zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行
监听10051端口
database storage:专用于存储所有配置信息以及zabbix收集的数据
agent:部署在被监控的主机上,负责收集主机本地数据如:cpu 内存
zabbix-agentd监听10050端口
三、配置被监控主机
1.在被监控主机上安装zabbix-agent
[root@web1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@web1 ~]# yum install -y zabbix-agent
[root@web1 ~]# service zabbix-agent start
在zabbix-server上,安装zabbix-get软件,zabbix-server可以去agent获取数据,使用pull的方式获取
[root@web1 ~]# yum install zabbix-get
修改客户端上的agent配置文件,允许服务器的ip地址过来采集数据
[root@web1 ~]# cd /etc/zabbix
[root@web1 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@web1 zabbix]# vim zabbix_agentd.conf
Server=127.0.0.1,192.168.81.204
ServerActive=127.0.0.1,192.168.81.204
[root@web1 zabbix]# service zabbix-agent restart
在zabbix-server上对zabbix-agent的相关性能信息进行拉取
[root@zabbix include]# zabbix_get -s 192.168.81.127 -p 10050 -k "system.cpu.load[all,avg1]"
0.050000
2.添加被监控主机
进入zabbix网页-->配置-->主机-->创建主机
注意
添加相关的应用集与监控项需要进入zabbix的web界面进行操作。
在设定端口时,一定注意端口抢占问题,zabbix所对应的nginx与系统默认nginx的端口号需要不一致!