Zabbix快速入门

Zabbix快速入门

监控软件

  • Cacti:监控网络,监控流量

https://www.cacti.net/

  • Nagios

https://www.nagios.com/

  • Zabbix

https://www.zabbix.com/

  • Open-falcon

http://open-falcon.org/

  • Prometheus

https://prometheus.io/

  • 天兔

http://www.lepus.cc/tag/index/Lepus

面试问题

你们监控怎么做的?

1)硬件层面

  • CPU温度
  • 风扇的转速
  • Cmos电池的电量
  • 磁盘是否损坏
  • 内存是否损坏
  • 南桥芯片,北桥芯片
# 例子
DELL服务器:DELL R710 R720 R730 R740
远程管理卡:走的是内网,不会受到外网关闭影响
远程管理卡会有一些安装包,装上后会有一些命令,去获取一些数据,可以利用代码去让zabbix进行监控

2)系统层面

  • CPU
    • 使用率
    • 负载
  • 内存
    • 使用率
    • 缓存区
    • 缓冲区
    • 内存锁
    • 内存页
  • 磁盘
    • 使用率
    • IO
  • 用户数量

3)应用层面

  • 进程
  • 端口
  • web 监控
  • 数据库主从
  • 数据库慢查询
  • 数据库读写速率
  • NFS、GFS挂载情况

4)网络层面

  • 进出口流量
  • 交换机
  • 路由器
  • 带宽峰值

5)业务层面

  • 网站各个接口:API
  • URL的监控
  • nginx的状态码
  • tomcat的exception

img

监控命令

监控目标 命令
本地端口监控 netstat -lntup
本地端口监控 ss -lntup
本地端口监控 lsof
远端端口监控 telnet
远端端口监控 nc
远端端口监控 nmap
进程监控 ps -ef
进程监控 ps aux
web监控 curl
web监控 wget
数据库 mysql -uroot -p123 -e'select ping()'
内存 free -m
磁盘 df -h
文件内容 md5

本地端口监控

# 查看端口
netstat -lntup
ss -lntup
lsof

# 查看tcp状态
netstat -ant
ss -lntup

远程端口监控

# 查看端口
telnet
退出命令
ctrl + ] 后输入quit

# 检查TCP端口是否能接通的脚本
#!/bin/bash
. /etc/init.d/functions
for port in `seq 1 65535`;do
    prot_start=`(echo 'quit'|telnet 172.16.1.51 $port|grep -c 'Connected') 2>/dev/null`
    if [ $prot_start -eq 1 ];then
        action "172.16.1.51 $port" /bin/true
    fi
done

-------------------nc 不止检测端口还可以开启端口------------------------------
# 查看端口
echo |nc 127.0.0.1 22
[root@web01 ~]# echo |nc 127.0.0.1 22
SSH-2.0-OpenSSH_7.4
Protocol mismatch.
# 开启端口(临时建立链接)
nc -l 3838
# 开启端口(永久建立链接)
nc -lk 3838
# 选项
-u 指定nc使用udp协议(默认tcp)
-s 指定发送数据的源IP地址,适用于多网卡机器
-w 设置超时时间
-z 扫描时不发送任何数据
-l 创建端口
-k 保持连接

----------------------------- nmap ------------------------------------------
# 扫描IP
nmap 10.0.0.61
# 扫描一个主机的一个端口
nmap -p 22 10.0.0.61
# 扫描一个主机的多个端口
nmap -p 22-1024 10.0.0.61
# 扫描多个主机的多个端口
nmap -p 22-1024 10.0.0.61 baidu.com
-----------------------------------------------------------------------------
## curl
-I:只显示响应头信息
-H:修改请求头信息
-v:显示详细的请求过程
-L --location:跟随跳转
-s:不显示头部的统计信息
-X:指定请求方式
-w:取出指定内容,例如:%{http_code}取出状态码
-o:指定输出位置
-A:指定User-Agent
-u:指定用户名密码

## wget
-O:指定输出位置
-r:递归下载
--debug:类似于curl的-v显示过程
-q:静默输出
--spider:不下载,就访问(爬虫模式)
-T:设置超时时间
-t:设置重试次数 retry

CPU监控命令

1)w
2)top
3)htop
4)glances
5)uptime
# 不管用什么命令监控,查看CPU,我们都必须了解,系统的用户态和内和态。
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

us: 用户态     跟用户的操作有关35%
sy: 内和态     跟内核的处理有关65%
id: CPU空闲

内存监控命令

1)free
2)top
3)glances
4)htop

磁盘监控命令

1)df
2)iotop
3)iostat
4)dstat
5)glances

网络监控命令

1)glances
2)iftop
3)nethogs
4)ifconfig
5)route

生产场景需求

如何每1分钟监控当前系统的内存使用状态,如果可用低于100MB则发送邮件。

同时打印当前还剩余多少内存

1.如何获取内存的状态信息 free -m

2.如何获取内存的可用状态 free -m|awk '/Mem/{print $NF}'

3.如何进行数字的比对,高于100MB不处理,低于100MB,发送邮件。

4.如何每分钟执行。

[root@web02 ~]# vim free.sh
#!/bin/bash
while true;do
  free_av=$(free -m|awk '/^Mem/{print $NF}')
  Hostname=$(hostname)_$(hostname -I|awk '{print $2}')
  Date=$(date +%F)

  if [ $free_av -lt 100 ];then
    echo "$Date: ${Hostname},内存低于100MB,还有${free_av}MB内存可用"
  fi
      sleep 2
done

[root@web02 ~]# sh free.sh
2018-10-12: web02_,内存低于100MB,还有20MB内存可用
2018-10-12: web02_,内存低于100MB,还有6MB内存可用
2018-10-12: web02_,内存低于100MB,还有5MB内存可用

[root@web02 ~]# dd < /dev/zero > /dev/null bs=2000M

环境准备

主机名 IP 应用
zabbix-server 10.0.0.71 zabbix5.0
zabbix-server 10.0.0.81 zabbix3.4
db01 10.0.0.51 MySQL
web01 10.0.0.7 zabbix5.0-agent
web02 10.0.0.8 zabbix3.4-agent

安装zabbix-server(5.0)

# 1.换源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# 2.安装Zabbix server,Web前端,agent
yum install -y zabbix-server-mysql zabbix-agent

# 3.安装前端代码源
yum install -y centos-release-scl

# 4.开启前端源
vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

# 5.安装前端
yum install -y zabbix-web-mysql-scl zabbix-nginx-conf-scl 

# 6.数据库配置(db01)
mysql -uroot -p123
password
## 6.1 创建库
create database zabbix character set utf8 collate utf8_bin;
## 6.2 创建zabbix用户
grant all on zabbix.* to zabbix@'172.16.1.%' identified by '123';
## 6.3 信任函数
set global log_bin_trust_function_creators = 1;

# 7. 在zabbix安装mysql客户端
yum insatll -y mariadb(zabbix安装数据库客户端)
## 7.1 查看是否能登陆
[root@zabbix ~]# mysql -uzabbix -p123 -h172.16.1.51

# 8.导入数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123 -h172.16.1.51 zabbix

# 9.配置zabbix服务端
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=172.16.1.51
DBPassword=123
# DBSocket=

# 10.配置zabbix的nginx配置文件
vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
        listen          80;
        server_name     xxx.zb.com;
## 10.1 修改nginx主配置文件的用户
vim /etc/opt/rh/rh-nginx116/nginx/nginx.conf
user apache;
## 10.2 域名解析
10.0.0.71 xxx.zb.com

# 11.配置zabbix的php配置文件
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
listen.acl_users = apache,nginx
php_value[date.timezone] = Asia/Shanghai

# 12.启动服务并加入开机自启
systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

img

img

img

账号:Admin

密码:zabbix

img

img

修改zabbix字体

# 进入目录
[root@zabbix ~]# cd /usr/share/zabbix/assets/fonts/
# 导入字体文件
win+r=>输入Fonts
导入SIMSUN.TTC

# 删除原有的字体文件
[root@zabbix fonts]# rm -f graphfont.ttf 
# 改名为原有的字体名称
[root@zabbix fonts]# mv SIMSUN.TTC graphfont.ttf

zabbix-server(3.4)

# 1.换源
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

# 2.安装server web agent mariadb
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb

# 3.配置数据库
# 3.1 创建库
create database zabbix34 character set utf8 collate utf8_bin;
# 3.2 创建zabbix用户
grant all on zabbix34.* to zabbix@'172.16.1.%' identified by '123';

# 4.导入数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123 -h172.16.1.51 zabbix34

# 5.配置zabbix服务端
vim /etc/zabbix/zabbix_server.conf
DBHost=172.16.1.51
DBName=zabbix34
DBUser=zabbix
DBPassword=123

# 6.修改时区
vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai

# 7.启动服务
systemctl start zabbix-server httpd zabbix-agent
systemctl enable zabbix-server httpd zabbix-agent

# 8.浏览网站
10.0.0.81/zabbix

img

img

img

img

img

修改字体

# 进入目录
[root@zabbix ~]# cd /usr/share/zabbix/fonts/
# 导入字体文件
win+r=>输入Fonts
导入SIMSUN.TTC

# 删除原有的字体文件
[root@zabbix fonts]# rm -f graphfont.ttf 
# 改名为原有的字体名称
[root@zabbix fonts]# mv SIMSUN.TTC graphfont.ttf
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇