zabbix
Zabbix监控
Linux监控命令
| 项目 | 对应检查命令 |
|---|---|
| 网站/业务/api | curl/wget |
| 服务 | systemctl/service/chkconfig(c6) |
| 进程 | ps/pstree/pgrep/pidstat/top/htop |
| CPU | top/htop/vmstat/mpstat/lscpu/cpuinfo/w/uptime/sar |
| 内存 | top/free/ps/iotop(swap)/vmstat/mpstat/sar/hcache(buffer+cache) |
| 磁盘 | iotop/iostat/sar #磁盘测试命令 dd,fio |
| 网络 | iftop(整体带宽使用情况)/nethogs(精确到进程)/nstat/ifstat/mtr/sar |
| 硬件 | Megacli(监控raid)/ipmitool(温度,cpu风扇转速)/lm_sensors(温度) |
🌟🌟🌟监控对象
-
从单台机器的角度看
业务(应用/api)信息 应用,程序代码是否有问题,(需要我们与开发沟通,书写一个页面) eg: lnmp的时候的 php与mysql测试页面. 服务信息 各种服务状态, 进程,端口,状态,特定的信息(不同服务) 系统信息 cpu,内存(内存,swap,buffer/cache) ,磁盘(io,使用率,inode),负载,网络(in/out),....... 硬件信息 磁盘,raid状态,温度,风扇转速, 机房温度,湿度 -
从集群的角度看
DNS解析: ping/dig/nslookup/host DNS解析域CDN是否ok 本质:通过全局访问测试工具(模仿用户在全国(全球)各地访问我们的网站) 任性不差钱: 全国各地(核心城市),1台服务器,在服务器访问你们的源站/cdn/dns, (对应的服务:smokeping) 免费: http://17ce.com http://ping.chinaz.com/ 调试工具:http://cesule.tingyun.com/cesule/home 商业版: 听云,监控宝 (告警) TCP三次握手-网站负载均衡监控 ss -ant HTTP请求报文-监控web日志查看(状态码) 补充: 加上HTTPS监控过期 请求经过网站架构 负载均衡(Nginx) web服务器(php,tomcat..) 缓存 数据库 存储 HTTP响应报文-监控web日志查看(状态码) TCP四次挥手-网站负载均衡监控 ss -ant 断开连接 -
其他
错误日志监控,error.log , catalina.out
网站性能监控: apm监控: skywalking ....
舆情监控
Zabbix安装
zabbix为CS(Client和Service)结构分为web页面,服务端(zabbix-server),客户端(zabbix-agent2)三个部分,需要分别配置。web端需要lnmp环境支持,zabbix的数据主要存储和读取至数据库。
总结
1.安装lnmp环境
2.设置zabbix源,并下载
rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/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.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-server-mysql zabbix-agent2
2.创建数据库,同时设置字符集
create database zabbix charset utf8 collate utf8_bin;
3.创建数据库用户,导入模板数据
zcat /usr/share/doc/zabbix-server-mysql-5.0.18/create.sql.gz |mysql -uzabbix -p1 zabbix
4.下载zabbix前端代码
5.复制zabbix前端ui文件夹下文件到站点目录并修改权限,编写虚拟主机文件并重启nginx
6.修改php.ini信息并重启
[root@m03 ~]# egrep -n '^(max_|date.timezone|post_max)' /etc/php.ini
368:max_execution_time = 300
378:max_input_time = 600
656:post_max_size = 80M
802:max_file_uploads = 20
877:date.timezone = Asia/Shanghai
7.修改zabbix-server配置信息,并重启zabbix
[root@m03-zabbix-server ~]# grep -n '^DB' /etc/zabbix/zabbix_server.conf
91:DBHost=localhost
100:DBName=zabbix
116:DBUser=zabbix
124:DBPassword=1
8.修改/var/lib/php/session权限
9.登录 Admin: zabbix
客户端快速配置
1.客户端下载客户端安装包
rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.18-1.el7.x86_64.rpm
2.修改客户端配置文件,并重启
[root@web01 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=172.16.1.71 ##更改为服务端IP
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
[root@web01 ~]# systemctl restart zabbix-agent2.service
3.服务端下载zabbix_get并测试
[root@m03-zabbix-server ~]# #yum install -y zabbix-get
[root@m03-zabbix-server ~]#
[root@m03-zabbix-server ~]# zabbix_get -s 172.16.1.7 -p 10050 -k system.hostname
web01
Zabbix获取数据方式
支持snmp(包括trapping and polling),IPMI,JMX,SSH,TELNET
| 指标 | 监控方式 |
|---|---|
| 硬件监控 | Zabbix、IPMI、lnterface |
| 系统监控 | Zabbix、Agent、Interface |
| Java监控 | Zabbix、JMX、lnterface |
| 网络设备监控 | Zabbix、SNMP、lnterface |
| 应用服务监控 | Zabbix、Agent、UserParameter |
| MySQL数据库监控 | percona-monitoring-plulgins |
| URL监控 | Zabbix Web监控 |
被动模式:Zabbix-Server主动获取数据
主动模式:监控主机超过300台时设置使用,由Zabbix-Agent主动发送数据到Zabbix-Server
自动发现
web端配置自动发现规则和自动发现动作
自动注册 VS 自动发现
自动注册:客户端主动向服务端发送信息验证
自动发现:服务端主动发现网段中的客户机
自动注册
客户端修改
[root@lb01 ~]# grep -P '^\w' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=172.16.1.71
ServerActive=172.16.1.71
HostnameItem=system.hostname ##用于标识主机
HostMetadataItem=system.uname ##主机元数据,用于校验
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
服务端配置


分布式监控

Zabbix Proxy是一个类似于代理的服务,可以代替Zabbix-server获取 zabbix-agent信息。其中数据存到本地(Proxy有自己的数据库)然后在发送给Server,这样可以保证数据不丢失。最常用的特点是适用于多机房、网络不稳定的时候,因为如果直接由Zabbix-server发送信息可能agent没有收到,但是直接使用Zabbix-Proxy就不会遇到这个问题。
-
下载安装zabbix-proxy
yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-proxymysql-5.0.18-1.el7.x86_64.rpm -
配置并初始化数据库
##安装数据库 yum install -y maraidb-server ##配置数据库 create database zabbix_proxy character set utf8 collate utf8_bin; grant all on zabbix.* to 'zabbix_proxy'@'localhost' identified by '1'; ##初始化数据 zcat /usr/share/doc/zabbix-proxy-mysql-5.0.18/schema.sql.gz |mysql -uroot -py zabbix_proxy -
配置zabbix-proxy配置文件并重启
[root@web01 ~]# egrep -n '^Server|^Host|^DB' /etc/zabbix/zabbix_proxy.conf 30:Server=172.16.1.71 49:Hostname=Zabbix_proxy_beijing 162:DBHost=localhost 173:DBName=zabbix_proxy 188:DBUser=zabbix_proxy 196:DBPassword=1 -
被代理客户端配置
[root@nfs01 ~]# egrep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf PidFile=/var/run/zabbix/zabbix_agent2.pid LogFile=/var/log/zabbix/zabbix_agent2.log LogFileSize=0 Server=127.0.0.1 ##改为代理服务器的ip ServerActive=127.0.0.1 ##改为代理服务器的ip HostnameItem=system.hostname HostMetadataItem=system.uname Include=/etc/zabbix/zabbix_agent2.d/*.conf ControlSocket=/tmp/agent.sock被代理客户机,web端配置

2中设置为代理服务器的Hostname
-
服务端配置
##zbx server - hosts: zabbix-server 服务端 ####命令行配置文件 检查 是否有收集proxy数据的进程 grep ProxyPollers /etc/zabbix/zabbix_server.conf #非0即可 -
web端添加

-
代理效果演示

Grafrana
-
下载安装Grafana
wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-7.3.5-1.x86_64.rpm yum localinstall -y /server/tools/grafana-7.3.5-1.x86_64.rpm systemctl enable grafana-server systemctl start grafana-server ss -lntup |grep grafana -
修改web端配置
web登录默认的用户名密码admin : admin -
添加插件
linux中下载插件
grafana-cli plugins install alexanderzobnin-zabbix-app

-
下载模板
下载模板地址官网dashboards

导入入口

用户自定义脚本流程
1.编辑客户端配置文件,添加kv命令,然后重启
[root@web01 ~]# vim /etc/zabbix/zabbix_agent2.d/rootlogin.conf
##检查root用户登录
UserParameter= rootlogin, who|awk '$1=="root"'|wc -l
##重启客户端
systemctl restart zabbix-agent2.service
2.服务端测试
[root@m03 /server/tools/zabbix-5.0.18]# zabbix_get -s 172.16.1.7 -k rootlogin
3.web端添加监控项显示数据

额外
中文乱码
cd /code/zabbix/assets/fonts/
#上传一个中文的ttf字体 替换 zabbix自用的字体即可.
cp /code/zabbix/assets/fonts/DejaVuSans.ttf{,.bak}
cp msyh.ttc /code/zabbix/assets/fonts/DejaVuSans.ttf
问题解决
-
服务端自我监控报错,打开agent日志报错如图

解决:修改服务端中的agent配置,将Server的IP改为127.0.0.1 [root@m03 /app/code/zbix/assets/fonts]# egrep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf PidFile=/var/run/zabbix/zabbix_agent2.pid LogFile=/var/log/zabbix/zabbix_agent2.log LogFileSize=0 Server=127.0.0.1 ServerActive=127.0.0.1 Hostname=Zabbix server Include=/etc/zabbix/zabbix_agent2.d/*.conf ControlSocket=/tmp/agent.sock -
服务端报错
zabbix服务端无法自动注册客户端

1.客户端配置文件错误 2.hosts文件错误

浙公网安备 33010602011771号