前言
因为一个运维项目关注了一下开源监控软件,比较了Nagios、Zabbix、Zenoss、Cacti、Ganglia等,最终选择了Zabbix,主要是因为Zabbix流行(研究讨论的人多,文档多)、功能齐全(涵盖了监控数据收集和可视化、异常报警、与其他系统协同工作等功能)。
计划采用的学习方法
1、读书
2、看视频教程
3、实践,边学边干
4、产生问题,寻求帮助,解决问题
学习笔记
实践笔记
1、安装Zabbix
这个实验是2018年2月1日开始的,官方网站的版本是3.4,如下图所示:
2018年2月1日Zabbix网站截图CentOS 7 最小化安装,禁用Firewall和SeLinux,安装Apache、MySQL、PHP。
CentOS官方网站下载的“CentOS-7-x86_64-Everything-1708.iso”安装镜像文件。
更新系统到最新版本
root@zabbix# yum update
查看系统版本(2018年2月1日)
root@zabbix# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
查看内核版本(2018年2月1日)
root@zabbix# cat /proc/version
Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017
总是记不住vi编辑器的那些命令,所以先安装一个nano编辑器备用
root@zabbix# yum install nano
安装Apache服务器,开启Web访问服务,设置Apache开机启动。
root@zabbix# yum install httpd
root@zabbix# systemctl start httpd
root@zabbix# systemctl enable httpd.service
添加防火墙规则,允许HTTP和HTTPS协议,重新载入防火墙规则。
root@zabbix# firewall-cmd --permanent --zone=public --add-service=http
success
root@zabbix# firewall-cmd --permanent --zone=public --add-service=https
success
root@zabbix# firewall-cmd --reload
success
关闭SeLinux(修改完/etc/selinux/config文件,记得重新启动一次CentOS)
root@zabbix# nano /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
# SELINUXTYPE=targeted
Apache正常工作root@zabbix# reboot -h now
首先检查 MySQL 是否已安装
root@zabbix# yum list installed | grep mysql
安装 MySQL 并开放防火墙端口。
root@zabbix# rpm -Uvh 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'
root@zabbix# yum repolist all | grep mysql
root@zabbix# yum install mysql-community-server
root@zabbix# systemctl start mysqld
root@zabbix# systemctl status mysqld
root@zabbix# firewall-cmd --permanent --zone=public --add-port=3306/tcp
root@zabbix# firewall-cmd --permanent --zone=public --add-port=3306/udp
root@zabbix# firewall-cmd --reload
为了加强安全性,MySQL 5.7为root用户随机生成了一个密码,在”error_log“文件中,默认是在 /var/log/mysqld.log。使用随机生成密码登录,然后更改密码。
(MySQL 5.7版本默认的密码策略是:密码要包含数字、小写字母、大写字母、特殊字符且长度至少8位)
root@zabbix# cat /var/log/mysqld.log | grep password
2018-02-02T01:22:10.814000Z 1 [Note] A temporary password is generated for root@localhost: cnofwNLxj8.m
root@zabbix# mysql -u root -p'cnofwNLxj8.m'
mysql> SET PASSWORD = PASSWORD('XXXXXXXX');
Query OK, 0 rows affected, 1 warning (0.00 sec)
安装PHP的5.6版本,因为Zabbix集成的是5.X版本(安装过7.2版的PHP,结果在Zabbix frontend的检查时,很多模块都是off,搞了好久也没解决,绕路躲过)
PHP当下最新版root@zabbix# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
root@zabbix# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
root@zabbix# yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64
安装php-fpm
root@zabbix# yum install php56w-fpm
确认一下PHP的版本,重启Apache
root@zabbix# php -v
PHP 5.6.33 (cli) (built: Jan 14 2018 08:07:11)
root@zabbix# systemctl restart httpd.service
编辑“/var/www/html/index.php”,写入内容,浏览器打开PHP信息页面,验证安装是否正确
Web页面显示PHP信息root@zabbix# nano /var/www/html/index.php
<?php
phpinfo();
?>
下载安装Zabbix的包信息文件,安装Zabbix server,Zabbix frontend,Zabbix agent。
root@zabbix# rpm -Uvh 'http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm'
root@zabbix# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
以root角色登录MySQL,创建zabbix数据库,用户名是”zabbix“,密码还是要包含数字、小写字母、大写字母、特殊字符且长度至少8位。
root@zabbix# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'XXXXXXXX';
mysql> quit
根据提示输入root用户的密码,将Zabbix服务器的初始化数据导入到zabbix数据库中
root@zabbix# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uroot -p zabbix
修改Zabbix server的配置文件”zabbix_server.conf“
root@zabbix# nano /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
启动”zabbix-server“和”zabbix-agent“服务并且将服务设为开机自动启动
root@zabbix# systemctl start zabbix-server zabbix-agent
root@zabbix# systemctl enable zabbix-server zabbix-agent
修改“/etc/httpd/conf.d/zabbix.conf”文件,配置Zabbix frontend的PHP设置
注意:去掉“php_value date.timezone”字段前面的“#”,将值改为“Asia/Shanghai”
root@zabbix# nano /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
给Zabbix Server和Zabbix Agent开放防火墙端口
root@zabbix# firewall-cmd --permanent --zone=public --add-port=10050/tcp
root@zabbix# firewall-cmd --permanent --zone=public --add-port=10050/udp
root@zabbix# firewall-cmd --permanent --zone=public --add-port=10051/tcp
root@zabbix# firewall-cmd --permanent --zone=public --add-port=10051/udp
root@zabbix# firewall-cmd --reload
好了,Zabbix Server就绪了。下面开始配置Zabbix frontend:在浏览器地址栏输入“http://ip_address/zabbix”
Zabbix欢迎界面 Zabbix配置页面发现错误编辑“/etc/php.ini”文件,修改“date.timezone = Asia/Shanghai”后,重启Apache,问题解决。
root@zabbix# nano /etc/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai
Zabbix配置OKroot@zabbix# systemctl restart httpd
按照页面中的配置向导,一步一步执行,将要完成。
Zabbix配置将要完成 Zabbix配置完成 Zabbix初次登录Zabbix frontend安装完成后,系统自动生成“/etc/zabbix/web/zabbix.conf.php”文件。用浏览器打开:http://X.X.X.X/zabbix,默认用户名和密码:Admin/zabbix。第一次成功登录后记得修改密码。
网友评论