企业常见监控工具
cacti:擅长出图,添加监控项很繁琐
nagios:可以添加监控项,但不可图形化
ganglia:分布式集群监控系统,适合于对上千台大型规模集群进行监控,性能成本比较低,批量管理更加方便,但不支持告警。
zabbix:基于web,提供分布式方式监控网络和系统参数,出图美观,支持告警
promethus:适合于监控k8s
ELK:日志监控
zabbix工作原理
Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。
当Zabbix监控某个具体的项目,该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)
安装部署环境
安装部署服务端
1.关闭防火墙和禁用selinux
systemctl stop firewalld
systemctl disable firewalld
sed -i "s/SELINUX=.*/SELINUX=Disabled/" /etc/selinux/config
2.安装zabbix5.0的rpm源
官方源地址:
repo.zabbix.com
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum clean all
3.安装软件包
安装 zabbix server 和 agent
yum install zabbix-server-mysql zabbix-agent -y
安装 Software Collections,便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4 过低
yum install centos-release-scl -y
启用 zabbix 前端源,修改vi /etc/yum.repos.d/zabbix.repo,将[zabbix-frontend]下的 enabled 改为 1
[zabbix-frontend]
...
enabled=1
...
安装 zabbix 前端和相关环境
yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl -y
数据库安装
1.安装mariadb数据库
yum install mariadb-server -y
systemctl enable --now mariadb
mariadb设置root密码
mysqladmin -uroot password admin
使用 root 用户进入 mysql,并建立 zabbix 数据库,注意数据库编码
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'zabbix';
grant all privileges on zabbix.* to zabbix@localhost;
quit;
导入初始架构和数据,zabbix 数据库用户为 zabbix,密码为 zabbix
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
导入成功,如下图:
为Zabbix server配置数据库:
修改 zabbix server 配置文件vi /etc/zabbix/zabbix_server.conf 里的数据库密码
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
为Zabbix前端配置PHP:
编辑配置文件 vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf, add nginx to listen.acl_users directive.
listen.acl_users = apache,nginx
php_value[date.timezone] = Asia/Shanghai
Nginx端配置
nginx配置1:
编辑配置文件 vi /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf, uncomment and set 'listen' and 'server_name' directives.
# listen 80;
# server_name localhost;
nginx配置2:
注释listen,server_name,root
vim /etc/opt/rh/rh-nginx116/nginx/nginx.conf
server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
# root /opt/rh/rh-nginx116/root/usr/share/nginx/html;
# Load configuration files for the default server block.# include /etc/opt/rh/rh-nginx116/nginx/default.d/*.conf;
启动相关服务,并配置开机自动启动
systemctl start zabbix-server rh-php72-php-fpm rh-nginx116-nginx
systemctl enable zabbix-server rh-php72-php-fpm rh-nginx116-nginx
使用浏览器访问http://ip/zabbix 即可访问 zabbix 的 web 页面