官网: Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution
Git仓库:https://github.com/zabbix/zabbix
1. 简介
一个基于C/S架构的企业级分布式开源监控解决方案:
- 支持主动轮询(polling)和被动捕获(trapping);
- Server端基于c,前端基于php;
- 支持多种监控方式,如SMTP、HTTP,Simple Check,所以不是必须安装Client端Zabbix Agent;
- 支持自定义监控脚本;
- 支持自定义trigger报警规则;
- 支持短信、邮件、微信报警;
- 要求php>=7.2
监控内容
- 硬件:温度…
- 系统:
- cpu(lscpu, uptime, top, htop, glances),
- 磁盘(df, fdisk, iotop)
- 内存(free)
- …
- 服务:apache,nginx,mysql, memcache, php-fpm, python, tcp连接数…
- 性能:服务器、数据库、io…
- 日志:err_log… 可以用elk
- 安全:可以用kibana栈是waf信息
- 网络:iftop工具,包括网络使用率、pop3、smtp、网络速率…
zabbix专有词汇
- Host:,服务器;
- Hosts,主机组;
- Media,发送通知的通道;
- Item,某个监控指标;
- Trigger,触发器,有正常、异常、位置3个状态;
- Action,出发后的动作。
组件
主要由2部分构成: zabbix server和 zabbix agent
zabbix proxy作为代理用来管理其他的agent
zabbix_sender用来给服务端发送数据
zabbix_get 用来从Zabbix agent收集数据
2. 使用
安装
环境:Ubuntu 18.04
关闭防火墙:
sudo service ufw stop
安装amp:
sudo apt install apache2 -y
sudo apt install mysql-server mysql-client -y
sudo apt-get install php libapache2-mod-php php-mysql -y
安装包下载release:
wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu18.04_all.deb
sudo dpkg -i zabbix-release_5.4-1+ubuntu18.04_all.deb
剩余操作:
# 安装组件, 包括数据库、前端
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent -y
# 初始化数据库
sudo mysql_secure_installation
# 创建zabbix数据库
# 参考/usr/share/doc/zabbix-server-mysql/README
sudo mysql -uroot -p
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;
# 执行初始化sql语句
zcat /usr/share/zabbix-server-mysql/schema.sql.gz | mysql -uzabbix -p zabbix
zcat /usr/share/zabbix-server-mysql/images.sql.gz | mysql -uzabbix -p zabbix
zcat /usr/share/zabbix-server-mysql/data.sql.gz | mysql -uzabbix -p zabbix
# 修改数据库配置
sudo vim /etc/zabbix/zabbix_server.conf
# DBName=zabbix
# DBUser=zabbix
# DBPort=3306
# DBPassword=12345678
# 另外关注一下LogFile,PidFile
# php部分参考/usr/share/doc/zabbix-frontend-php/README
sudo a2enconf zabbix-frontend-php
# or
# sudo ln -s /usr/share/doc/zabbix-frontend-php/examples/apache.conf /etc/apache2/conf-available/zabbix && a2enconf zabbix
# 修改时区为上海
# php_value date.timezone Asia/Shanghai
sudo vim /etc/apache2/conf-available/zabbix-frontend-php.conf
sudo service apache2 reload
# 启动服务
# 并配置开机自启
sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2
现在访问http://IP/zabbix
就能看到安装界面了。
登录账户密码Admin/zabbix
.
如果图标里显示no data,可能是在【configuration - host groups - zabbix servers】里没有启用本机。
监控一个主机
在被监控主机下载客户端(其实上一步已经安装了):
$ sudo apt install zabbix-agent -y
# 还有一个agent2, 基于go开发。需要`sudo apt update`更新一下软件源才能下载。
$ cat /lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
Documentation=man:zabbix_agentd
After=network.target
[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/sbin/zabbix_agentd --foreground
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
$ grep -Ev '#|^$' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid # 存储进程pid
LogFile=/var/log/zabbix-agent/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf
配置及启动:
# 修改服务端地址Server和ServerActive
# Hostname改为被监控端的主机名或ip
# 默认10050端口
sudo vim /etc/zabbix/zabbix_agentd.conf
sudo service zabbix-agent start
sudo netstat -tnlp | grep zabbix
# tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN # 3587/zabbix_agentd
# 重启客户端
# 并配置开机自启
sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent
在服务端使用zabbix_get进行连通测试:
# 返回1说明ok
$ zabbix_get -s localhost -p 10050 -k 'agent.ping'
1
$ zabbix_get -s localhost -p 10050 -k 'system.hostname'
starr-VirtualBox
服务端,在web界面的【configuration - host groups】里添加即可。