zabbix

一、软件安装

zabbix下载源

aliyun镜像

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

2.更换zabbix.repo源,为阿里的(因国外的网站下载慢)

sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

3.清空缓存,下载zabbix服务器

yum  clean  all

yum makecache   也可以生成一个缓存

yum install -y zabbix-server-mysql zabbix-agent

4.安装software  Collection,便于后续安装高版本的php,可以让你再统一操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包

yum install centos-release-scl -y

5.修改zabbix前端语言zabbix-frontend为1

6.安装前端环境

yum  install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

这个会安装到scl下,会下载到/opt/rht下,不会影响整个操作系统的环境

7.安装mariadb数据库,并设置开机自启

yum install -y mariadb-server

systemctl  enable  --now  mariadb

初始化并设置密码

mysql_secure_installation

8.添加数据库用户,以及zabbix所需的数据库信息

MariaDB [(none)]> create  database  zabbix  character  set  utf8 collate  utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create user zabbix@localhost identified by 'root';
Query OK, 0 rows affected (0.00 sec)

授权

MariaDB [(none)]> grant  all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.00 sec)
刷新一下

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

9.使用zabbix-mysql命令,导入数据库信息

[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:root

mysql  -u用户名   -p  数据库

10修改zabbix-server命令,修改数据库密码

vim /etc/zabbix/zabbix_server.conf

11修改php的配置文件

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

12启动zabbix相关服务

[root@localhost ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@localhost ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

访问zabbix:192.168.64.140\zabbix

默认登陆账户密码Admin  zabbix(注意大小写)

部署zabbix客户端

5.0版本

agent2新版本才用golang语言开发的客户端

鱿鱼丝go语言开发,不竖起来就十分方便,和之前的程序部署形式不一样

agent2默认使用端口,也就是zabbix客户端的端口

旧版本的客户端,zabbix-agent

新版本的客户端,zabbix-agent2

1.环境准备,2台zabbix客户端

192.168.64.141        zabbix-agent1

192.168.64.142        zabbix-agent2

2.注意时间正确

yum  -y install ntpdate

ntpdate -u ntp.aliyun.com

3.安装yum源

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

更换zabbix.repo源,为阿里的(因国外的网站下载慢)

sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

yum  install zabbix-agent2 -y

修改zabbix-agent2配置文件

vim  /etc/zabbix/zabbix_agent2.conf

启动命令

[root@192 ~]# ls -l /usr/sbin/zabbix_agent2
-rwxr-xr-x 1 root root 16188624 1月  29 16:12 /usr/sbin/zabbix_agent2

启动客户端

systemctl  enable  --now  zabbix-agent2

cat /lib/systemd/system/zabbix-agent2.service   yum生成,执行一条启动命令

查看zabbix-agent2配置文件

grep  -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf

[root@192 ~]# grep -Ev '^#|^$' /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
[root@192 ~]# cat /var/run/zabbix/zabbix_agent2.pid
5252[root@192 ~]# ps -ef |grep zabbix2
root       5391   4852  0 13:43 pts/2    00:00:00 grep --color=auto zabbix2
[root@192 ~]# ps -ef |grep zabbix
zabbix     5252      1  0 13:35 ?        00:00:00 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
root       5403   4852  0 13:44 pts/2    00:00:00 grep --color=auto zabbix
[root@192 ~]#

改主机名

hostnamectl set-hostname zabbix-agent1

vim /etc/zabbix/zabbix_agent2.conf

[root@zabbix-agent1 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.64.140                        改成服务端的ip
ServerActive=192.168.64.140              改成服务端的ip
Hostname=zabbix-agent1                    改成和自己的主机名一致
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
[root@zabbix-agent1 ~]#

将两个机器都修改

最后一步,重启zabbix-agent读取配置文件

systemctl  restart  zabbix-agent2

验证zabbix-agent2的连通性

1.在服务端上通过命令,主动获取数据-----192.168.64.140

[root@localhost ~]# zabbix_get -s '192.168.64.141' -p 10050 -k 'system.hostname'
zabbix-agent1
[root@localhost ~]# zabbix_get -s '192.168.64.141' -p 10050 -k 'agent.ping'
1
[root@localhost ~]# zabbix_get -s '192.168.64.142' -p 10050 -k 'system.hostname'
zabbix-agent2

解决zabbix-server查看的乱码问题

zabbix默认剪了服务端本身,但是编码有问题

1.安装字体

yum  install -y  wqy-microhei-fonts

或yum -y install wqy-microhei-fonts.noarch

2.复制字体

[root@localhost ~]# \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc  /usr/share/fonts/dejavu/DejaVuSans.ttf
 

可用

zabbix_get -s '192.168.64.142' -p 10050 -k 'system.hostname'

自定义监控内容

需求:限制登录人数不超过三个,超过三个就发出警报信息

先从命令行角度

1.明确需要自行的linux命令

who  | wc  -l

2.手动创建zabbix的配置文件,用于自定义key

/etc/zabbix/zabbix.agent2.conf

3.创建配置文件,以及内容如下

[root@zabbix-agent1 ~]# cd /etc/zabbix/zabbix_agent2.d/
[root@zabbix-agent1 zabbix_agent2.d]# ls
[root@zabbix-agent1 zabbix_agent2.d]# vim userparameter_login.conf
[root@zabbix-agent1 zabbix_agent2.d]# cat userparameter_login.conf
UserParameter=login.user,who|wc -l
[root@zabbix-agent1 zabbix_agent2.d]#

4.重启

systemctl restart zabbix-agent2

在页面进行添加zabbix-server的自定义监控项模板

添加流程是

  • 创建模板
  • 创建应用集(好比一个文件夹,里边放入一推监控项)
  • 创建监控项,自定义item,你具体想监控的内容
  • 创建触发器(当监控项获取到值的时候,进行核触发器比较,判断,决定是否报警)
  • 创建图形
  • 将具体的主机和该模板连接

将用户超过三个

这是,zabbix会出现

确认问题

邮件报警

全网监控方案

如何自动添加主机监控

  • 克隆监控模板
  • 自动注册和自动发现
  • 使用zabbix的api接口,利用curl语言,或者开发自己的编程脚本如python

我们日常使用的各种软件,都是提供了API接口,给开发人员进行修改以及获取数据的

监控实时方案

互联网上有大量的开源模板可以下载使用

rsync服务监控
        监控服务器的873端口是存活的
        有关端口的监控,使用zabbix自带的 key net.tcp.port[,873]
        进行数据推拉,检测效果

监控NFS服务是否正常
        通过key检测111端口 et.tcp.port[,111]
        showmount -e ip| wc -l
监控mysql数据库是否正常
        通过端口 net.tcp.port[,3306]
        mysql -uroot -p
        zabbix自带了mysql的监控模板,直接添加主板和mysql的主机关联即可
web服务器监控
        net.tcp.port[,80]
        zabbix也提供了对web服务器的监控模板

监控服务的具体方法

端口检测的命令
netstat

ss
lsof

结合grep查看端口是否存活

[root@localhost ~]# zabbix_get -s '192.168.64.142' -p 10050 -k 'net.tcp.port[,80]'
0

自动发现,自动注册

自动发现

是zabbix server主动去发现所有的客户端,然后将客户端的信息,登记在服务端的机器上

缺点是:zabbix_server压力会很大

如果说你定义了一个网段100-200网段,耗时久,压力大

自动注册

zabbix  agent2主动上报自己的信息,发给zabbix-server

缺点是agent2可能找不到server(配置文件写错了,网络不通)

被动模式,主动模式区别(站在agent2立场)

被动模式:对于agent2来说,就是server来找agent2拿数据

主动模式:agent2主动把数据发给server

配置host解析

192.168.64.140 zbx-server
192.168.64.141 zabbix-agent1

自动发现配置

自动注册-主动模式

1.准备机器

server

agent2

2.修改agent2的配置文件

[root@zabbix-agent1 zabbix_agent2.d]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.64.140        写入服务端地址
ServerActive=192.168.64.140        写入服务端地址
Hostname=zabbix-agent1        agent2主机名
HostnameItem=system.hostname        
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
 

3.验证通信

[root@localhost ~]# zabbix_get -s '192.168.64.141' -p 10050 -k 'agent.ping'
1

分布式监控

分布式监控作用

        分担server的集中式压力

                Agent》proxy》server

        多机房之间的网络延迟问题

                上海机房>proxy》server

部署分布式zabbix-proxy

1.环境准备

192.168.64.140   zabbix-server

192.168.64.141   zabbix-agent2

192.168.64.143   zabbix-proxy

2.关闭防火墙

1.确保之前的自动发现,注册已经关闭

2.zabbix-server服务端无需变化,运行着就好

3.准备好客户端机器,agent2机器

4.来配置代理服务器,并且部署数据库,用于存储agent2发来的数据,最终发给zabbix-server

配置zabbix的yum源

修改原地址

5.安装proxy,以及数据库

yum  install  zabbix-proxy-mysql   zabbix-get  -y

6.启动数据库,配置数据库用户,存储zabbix-agent2信息数据

yum install -y mariadb-server mariadb

systemctl enable --now mariadb

7.数据库sql设置

mysql  -uroot  -p

create database zabbix_proxy character set utf8 collate utf8_bin;

grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
flush privileges;

8.导入zabbix-proxy数据库信息

 rpm -ql zabbix-proxy-mysql                查询sql文件在哪

zcat /usr/share/doc/zabbix-proxy-mysql-5.0.41/schema.sql.gz | mysql -uzabbix -pzabbix zabbix_proxy

修改zabbix-proxy配置文件,链接数据库信息

 sed -i.org '162a DBPassword=zabbix'  /etc/zabbix/zabbix_proxy.conf
sed -i 's#Server=127.0.0.1#Server=192.168.64.140#' /etc/zabbix/zabbix_proxy.conf
 sed -i 's#Hostname=Zabbix proxy#Hostname=zbx-proxy#' /etc/zabbix/zabbix_proxy.conf


9.检查代理服务器配置文件  zabbix-proxy

[root@192 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.64.140
Hostname=zbx-proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBPassword=zabbix
DBName=zabbix_proxy
DBUser=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
[root@192 ~]#

10.启动zabbix-proxy服务器
systemctl  start  zabbix-proxy

11.如何在zabbix页面添加代理配置

agent使用proxy

[root@zabbix-agent1 ~]# 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=192.168.64.143                改成proxy服务器
ServerActive=192.168.64.143      改成proxy服务器
Hostname=zabbix-agent1
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
[root@zabbix-agent1 ~]#重启   systemctl  restart  zabbix-agent2

proxy也重启下

snmp监控

简单网络管理协议

1.服务端安装snmp监控程序

yum -y install net-snmp net-snmp-utils

2.开启snmp配置 

sed  -i.org '57a view systemctl  included  .1'  /etc/snmp/snmp.conf 

systemctl restart snmpd

3.使用snmp命令

snmpwalk -v 2c -c public 127.0.0.1 sysname

-v  指定协议版本     -c指定暗号   sysname

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值