2.3 Zabbix-Server服务端的安装
安装Zabbix-Server服务器端,由于服务器端也是需要监控的,故这里也一并安装了Zabbix-Agent。
[root@linux30 zabbix]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get
2.3.1 安装MySQL
在CentOS 7系统包仓库安装源中,我们需要安装mariadb-server,而不是MySQL数据库服务(7.0以后的版本用MariaDB替换了MySQL),命令如下:
[root@linux30 zabbix]# yum -y install mariadb-server
修改MySQL配置文件:
[root@linux30 zabbix]# vi /etc/my.cnf
添加如下内容:
[mysqld] # 设置字符集为UTF-8 character-set-server=utf8 # 让InnoDB的每个表文件单独存储 innodb_file_per_table=1
启动服务:
[root@linux30 zabbix]# systemctl start mariadb
查看服务是否启动成功:
2.3.1.1 创建Zabbix数据库
首先设置MySQL的root用户密码,然后创建zabbix数据库,设置访问策略.
# 设置root用户密码为123456 [root@linux30 zabbix]# mysqladmin -uroot password 123456 # 登录MySQL [root@linux30 zabbix]# mysql -uroot -p123456 # 创建数据库,名称为zabbix,并将其字符集设置为UTF-8 MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; Query OK, 1 row affected (0.00 sec) # 设置zabbix数据库的权限,允许用户zabbix的IP地址127.0.0.1和localhost访问 # 并将zabbix账号的密码设置为zabbix MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix'; Query OK, 0 rows affected (0.00 sec) # 刷新权限,使其立即生效 MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec)
这里容易出现的问题是,如果创建zabbix数据库的字符集不为UTF-8,则可能会导致Web界面切换到中文语言时出现乱码。
2.3.1.2 导入Zabbix库的数据文件
导入Zabbix库的数据文件,使用以下命令:
# 进入对应版本目录 [root@linux30 zabbix]# cd /usr/share/doc/zabbix-server-mysql-4.0.38/ # 将sql文件解压缩 [root@linux30 zabbix-server-mysql-4.0.38]# gunzip create.sql.gz # 以zabbix用户登录 [root@linux30 zabbix-server-mysql-4.0.38]# mysql -uzabbix -pzabbix -h127.0.0.1 MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | | zabbix | +--------------------+ 3 rows in set (0.00 sec) # 切换到zabbix数据库 MariaDB [(none)]> use zabbix; Database changed # 导入sql文件 # create.sql是zabbix源码包中的3个SQL文件的集合,即分别为schame.sql(表结构);images.sql(图形相关数据);data.sql(模板相关数据) MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-4.0.38/create.sql
2.3.2 配置zabbix_server.conf
配置zabbix_server.conf文件如下:
vi /etc/zabbix/zabbix_server.conf
内容如下:
# 日志文件 LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid SocketDir=/var/run/zabbix # 数据库连接 DBHost=192.168.10.30 DBName=zabbix DBUser=zabbix DBPassword=zabbix DBPort=3306 StartPollers=100 StartIPMIPollers=10 StartPollersUnreachable=10 StartTrappers=10 StartPingers=10 StartDiscoverers=10 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log CacheSize=256M HistoryCacheSize=128M TrendCacheSize=128M ValueCacheSize=2048M Timeout=30 Timeout=4 TrapperTimeout=300 # 告警和扩展脚本路径 AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts LogSlowQueries=3000
告警和扩展脚本路径可能默认不存在,使用以下命令创建目录:
[root@linux30 zabbix]# mkdir -p /etc/zabbix/alertscripts /etc/zabbix/externalscripts
2.3.3 开启Zabbix-Server服务
启动服务:
[root@linux30 zabbix]# systemctl start zabbix-server [root@linux30 zabbix]# systemctl start httpd
查看进程:
查看日志:
[root@linux30 zabbix]# tail -f /var/log/zabbix/zabbix_server.log
2.3.4 防火墙、SELinux和权限的设置
2.3.4.1 防火墙的设置
如果CentOS操作系统存在防火墙,则需要允许相关端口能够访问,配置命令如下:
[root@linux30 ~]# firewall-cmd --permanent --add-port=80/tcp # 10050是Agent的端口,Agent采用被动方式,Server主动连接Agent的10050端口; [root@linux30 ~]# firewall-cmd --permanent --add-port=10050/tcp # 10051是Server的端口,Agent采用主动或Trapper方式,会连接Server的10051端口。 [root@linux30 ~]# firewall-cmd --permanent --add-port=10051/tcp [root@linux30 ~]# firewall-cmd -reload
2.3.4.2 SELinux的设置
如果操作系统已开启SELinux,则需要设置语句开启允许SELinux的相关策略。
[root@linux30 ~]# setsebool -P httpd_can_connect_zabbix on [root@linux30 ~]# setsebool -P httpd_can_network_connect_db on # 获取当前SELinux的运行状态 [root@linux30 ~]# getenforce Enforcing # 设置为告警模式,只给出提示,不会阻止操作,不用重启服务 [root@linux30 ~]# setenforce 0
直接关闭SELinux的方法:
[root@linux30 ~]# vi /etc/selinux/config SELINUX=disabled 注意:此方式需要重启服务器才能生效。
2.3.5 php.ini配置文件的设置
修改php.ini相关配置参数,命令如下:
[root@linux30 etc]# vi /etc/php.ini data.timezone = Asia/Shanghai max_execution_time = 300 post_max_size = 16M max_input_time = 300 # web页面内存不够用时,调节此参数 memory_limit = 128M mbstring.func_overload = 0
修改zabbix.conf,只需要修改date.timezone即可
[root@linux30 etc]# vi /etc/httpd/conf.d/zabbix.conf # 修改date.timezone php_value date.timezone Asia/Shanghai
如果在后面配置Web时提示任何参数不满足安装与配置要求,则修改对应的参数后重启httpd即可。
2.3.6 配置Zabbix-Web
打开浏览器,输入http://IP地址/zabbix,会出现欢迎页面。
PHP提示的各项参数都满足后,可以继续往下进行,单击“Next step”按钮。如果提示参数不通过,则修改php.ini配置文件,并重启Web(httpd)服务。
配置数据库连接的各项参数。单击“Next step”按钮进行下一步操作。
Zabbix-Server的连接地址、端口、名称设置,将会显示在Zabbix的前端页面中。
这些配置信息将会被写入/etc/zabbix/web/zabbix.conf.php文件中
配置文件生成成功
登录页面,默认账户是Admin,密码是zabbix
登录成功后的首页
在System information面板中,如Zabbix server is running为No,则分别检查SELinux、iptables,以及zabbix_server.conf和zabbix.conf.php中的各项配置参数
2.4 Zabbix-Agent客户端的安装
通过前面的介绍,我们知道Zabbix监控可以采用服务器端/客户端架构,其客户端的采集方式分为Agent、SNMP等。在这里,我们先学习使用Agent方式对服务器进行监控。
2.4.1 安装Zabbix-Agent
在这里,我们对需要进行监控的服务器安装Zabbix-Agent,使用RPM包方式进行安装,命令如下:
# 将rpm包复制到linux31服务器 [root@linux30 zabbix]# scp zabbix-release-4.0-1.el7.noarch.rpm root@192.168.10.31:/opt/itcast/zabbix/ # 安装Zabbix官方yum源 [root@linux31 zabbix]# rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm # 安装 [root@linux31 zabbix]# yum -y install zabbix zabbix-agent
2.4.2 防火墙的设置
如果操作系统开启了防火墙,为了允许端口能够正常通信,则需要使用下列命令进行配置:
[root@linux31 zabbix]# firewall-cmd --permanent --add-port=10050/tcp [root@linux31 zabbix]# firewall-cmd --reload
2.4.3 配置zabbix_agentd.conf
zabbix_agentd.conf是Zabbix-Agent的配置参数文件,需要对配置参数进行手动修改。修改的参数如下:
[root@linux31 ~]# egrep -v "(^#|^$)" /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=192.168.10.30 ServerActive=192.168.10.30 Hostname=Zabbix server Include=/etc/zabbix/zabbix_agentd.d/*.conf [root@linux31 ~]#
参数含义如下。
- Server:被动模式,允许zabbix_server服务器连接客户端,此处允许192.168.10.30访问10050端口,多个IP地址之间用逗号分隔。
- ServerActive:主动模式,向目标zabbix_server服务器传送数据。这种模式的性能较好,建议使用,但需要确保zabbix_agentd.conf的参数Hostname值与Zabbix-Web页面中的主机名一致;
配置完成后,使用如下命令启动Zabbix-Agent:
[root@linux31 zabbix]# systemctl start zabbix-agent