Bootstrap

zabbix 笔记一

监控系统:硬件,软件,业务指标;

采样;告警;存储;展示

监控通道:ssh , snmp(simple network management protocol), telnet, agent,IPMI

ssh/telnet

 

snmp:监控通道

v1

v2c

v3

 

监控工具种类:

cati知名绘图工具,早期的,提供一个web接口,用来监控,信息存在rrd数据库,能展示图状状态,报警差

nagios,能实现对指标是否在合理之间的监控;不能展示图状

zabbix,告警之前先远程执行脚本修复,然后采样,告警,告警升级,展示,

ganglia:

 

snmpget/snmpgetnext/snmpwalk

 

关系型数据库:

rrd: 轮询数据库

时间系列数据库

NoSQL

 

 

zabbix:

LTS: 2.2, 3.0

特性:

数据采样:snmp,ssh/telnet,agent,ipmi接口可以在硬件层评估, jmx

自定义检测机制:UserPARAMENTER

自定义指定时间间隔

实时绘图:展示

 

graph

map 能够实现类似网络的拓扑图的实现 如网络,能

screen:将多个graph 展示

slide show:幻灯展示机制

 

告警:

升级:发邮件通知

script 执行脚本

notification

 

数据存储:

默认两种数据库:

mysql

pgsql

支持模板:

网络自动发现:

分布式监控:

server<-->proxy<agent/ssh/lpml

API

 

构架:

Zabbix web GUI

Zabbix database

Zabbix server

 

Zabbix proxy 分布式监控实现

 

Web pages

ICMP/IPMI/SNMP:Devices

Agent:OS

 

JMX

 

Web pages

ICMP/IPMI/SNMP:Devices

Agent:OS

 

Zabbix组件概述:

Zabbix Server: 负责收agent 发送的报告信息的核心组件,所有配置,统计数据及操作数据均有其组织进行;

Database Storage : 专用于存储所有配置信息,以及由zabbix收集的数据;

Web interface: zabbix的GUI接口,通常与Server运行在同一台主机上;

Proxy: 可选组件,常用于分布式监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;

Agent: 部署在被监控主机上,负责收集本地数据并发往Server端或Porxy端;

 

 

zabbix程序构成:

zabbix_server: 服务端守护进程;

zabbix_agentd:agent端守护进程;

zabbix_proxy:代理服务端,可选组件;

zabbix_get:命令行工具,手动测试数据采集;

zabbix_sender:命令行工具,运行于agent端,手动向server端发送数据;

zabbix_java_gateway:java网关;和java 的Aplication通信

 

Zabbix常用术语:

1主机(host):要监控的网络设备,可由IP或DNS名称指定;

 

2主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一组内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;

 

3监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,没有item, 将没有数据;相对某监控对像来说,每个item都由“key”进行标识;

 

4,触发器(trigger): 一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理范围内,即阈值;接收到的数据量大于阈值时,触发器状态将从“ok”转变为“Problem”,当数据再回归到合理范围内时,其状态将从“Problem”转回“OK”;

 

Maintenance 定义维护时间段

 

5 (event):即发生的一个值得关注的事情,例如触发器的状态转变,新的agent或重新上线的agent的自动注册等;

6,(action):指对于特定的事情事先定义的处理方法,通过包含操作(如发送通知)和(条件执行操作);

7报警升级(escalation): 发送报警或执行远程命令的自定义方案,如每隔5 分钟发送一次报警,共发送5次等;

8,媒介(media):发送通知的手段或通道,如Email, Jabber或者SMS等;

9,通知(notification):通过选定的媒介向用户发送的有关某事件的信息;

10,远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行;

11,模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item, trigger, graph, screen, application以及low-level discovery rule; 模板可以直接链接至单个主机;

12,(application):一组item的集合;

13,web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求;

14,前端(frontend);Zabbix的web接口;

 

 

zabbix安装:

依赖关系:

安装两种方式:

1, Source code

2,编译好的程序包:

rpm:也有两种方式:

1, epel

2,zabbix repository

deb

2.2长期维护版, 2.4, 3.0长期维护版

 

先配置好epel源;

例如

172.18.100.67 为服务器端,172.18.100.68为客户端

#ssh [email protected] 首先连接服务器端

#ssh [email protected] 然后连接客户端

 

第一步 先配置服务器端172.18.100.67

#cd /etc/yum.repos.d/

#ls

#vim CentOS-Base.repo 配置Base 源 确保是OK的

name=Fedora EPEL

baserul=http://172.18.0.1/cobbler/ks_mirror/7/

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

第二步:也可以通过epel源

# vim epel.repo

[epel]

name=Fedora EPEL

baserul=http://172.18.0.1/fedora-epel/$releasever/$basearch

gpgcheck=0

# yum repolist

# yum list all | grep zabbix 查看有没有相关程序包

 

程序包用途:

zabbix-agent.:zabbix客户端,用来收集客户端各种参数

zabbix-get:zabbix的一个工具,用来获取数据

zabbix-proxy:x proxy可以非常简便的实现了集中式、分布式监控。

zabbix-release:会生成一个zabbix的yum源,可以直接下载相关软件包。

zabbix-sender:用于发送数据给server或者proxy。

zabbix-web:zabbix要使用web界面,这个包是用来处理Apache和php,mysql等之间的依赖关系。

zabbix-web-mysql:这个是zabbix前段支持mysql的

 

第三种 也可以指向官方的源

fping 一秒中可以发送一百万个包

zabbix 不在yum源中 在epel源中

3.0为例:Centos

 

安装zabbix DB

# yum install mariadb-server

# systemctl start mariadb.service

#ss -tnl

#vim /etc/my.cnf

注意socket=/var/lib/mysql/mysql.sock 文件位置

skip_name_resolve=on

innodb_file_per_table=on

#systemctl restart mariadb.service

#ss -tnl 查看3306端口是否属于监听状态

 

#mysql 连入msql

mysql>CREATE DATABASE zabbix CHARSET 'utf8'; 创建一个名字zabbix的数据库,指定为utf8

>GRANT ALL ON zabbix.* TO zbxuser@’127.0.0.1‘ IDENTIFIED BY 'zbxpass'; 授权给一个名字为zbxuser用户,指向本地连接;

l>GRANT ALL ON zabbix.* TO zbxuser@’192.168.%.%‘ IDENTIFIED BY 'zbxpass'; 注意 这个位置不能出错

>FLUSH PRIVILEGES; 刷新;

>exit

 

 

例如

3.0

先安装zabbix DB:

#yum install mariadb-server

#systemctl start mariadb.service

mysql>CREATE DATABASE zabbix CHARSET 'utf8'; 创建一个名字zabbix的数据库,指定为utf8

>GRANT ALL ON zabbix.* TO zbxuser@’127.0.0.1‘ IDENTIFIED BY 'zbxpass; 授权给一个名字为zbxuser用户,指向本地连接;

l>GRANT ALL ON zabbix.* TO zbxuser@’192.168.%.%‘ IDENTIFIED BY 'zbxpass';

>FLUSH PRIVILEGES; 刷新;

>exit

 

安装服务端下面下面分开安装,也可以连起来安装:

1,# yum install zabbix-server-mysql zabbix-agent zabbix-get 安装所需的

 

安装web GUI:,

2,# yum install zabbix-web zabbix-web-mysql

 

安装agent端:

#yum install zabbix-agent zabbix-sender

 

安装之后的操作:

#cd /etc/zabbix/

#ls

#ls /usr/lib/systemd/system

#ls /usr/lib/systemd/system | grep zabbix

#rpm -qf /etc/zabbix/zabbix_server.conf

 

安装之后:

zabbix server数据库初始化;

2.x; 三个sql脚本;

3.x一个sql脚本;

 

# ls /usr/lib/systemd/system | grep zabbix

# rpm -qf /etc/zabbix/zabbix_server.conf

#rpm -qf zabbix-server-mysql

[root@master zabbix]# rpm -ql zabbix-server-mysql

/etc/logrotate.d/zabbix-server

/etc/zabbix/zabbix_server.conf

/usr/lib/systemd/system/zabbix-server.service

/usr/lib/tmpfiles.d/zabbix-server.conf

/usr/lib/zabbix/alertscripts

/usr/lib/zabbix/externalscripts

/usr/sbin/zabbix_server_mysql

/usr/share/doc/zabbix-server-mysql-3.2.11

/usr/share/doc/zabbix-server-mysql-3.2.11/AUTHORS

/usr/share/doc/zabbix-server-mysql-3.2.11/COPYING

/usr/share/doc/zabbix-server-mysql-3.2.11/ChangeLog

/usr/share/doc/zabbix-server-mysql-3.2.11/NEWS

/usr/share/doc/zabbix-server-mysql-3.2.11/README

/usr/share/doc/zabbix-server-mysql-3.2.11/create.sql.gz

/usr/share/man/man8/zabbix_server.8.gz

/var/log/zabbix

/var/run/zabbix

[root@master zabbix]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/

[root@master zabbix-server-mysql-3.2.11]# ls

AUTHORS ChangeLog COPYING create.sql.gz NEWS README

[root@master zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz 解压展开以后才会存在

[root@master zabbix-server-mysql-3.2.11]# ll

总用量 3864

-rw-r--r--. 1 root root 98 12月 27 23:09 AUTHORS

-rw-r--r--. 1 root root 783414 12月 27 23:09 ChangeLog

-rw-r--r--. 1 root root 17990 12月 27 23:09 COPYING

-rw-r--r--. 1 root root 3137133 12月 27 23:12 create.sql

-rw-r--r--. 1 root root 52 12月 27 23:09 NEWS

-rw-r--r--. 1 root root 188 12月 27 23:09 README

[root@master zabbix-server-mysql-3.2.11]# ll -h

总用量 3.8M

-rw-r--r--. 1 root root 98 12月 27 23:09 AUTHORS

-rw-r--r--. 1 root root 766K 12月 27 23:09 ChangeLog

-rw-r--r--. 1 root root 18K 12月 27 23:09 COPYING

-rw-r--r--. 1 root root 3.0M 12月 27 23:12 create.sql

-rw-r--r--. 1 root root 52 12月 27 23:09 NEWS

-rw-r--r--. 1 root root 188 12月 27 23:09 README

 

zabbix server数据库初始化;

# mysql -h127.0.0.1 -uzbxuser -p zabbix < create.sql 注意 导入脚本

Eenter password: zbxpass

#mysql

#SHOW TABLES; 如果导入成功,初始化就成功

 

 

create.sql

# mysql -h127.0.0.1 -uzbxuser -p zabbix < create.sql

 

启动zabbix-server进程:

#/usr/lib/systemd/system/zabbix-server.service

 

配置文件:/etc/zabbix/zabbix_server.conf

#cd /etc/zabbix/

#ls

#cp zabbix_server.conf{,.}

#vim zabbix_server.conf

可以用:grep "^####" zabbix_conf 查找有那些指令

指令有四类:

GENERALL PARAMETERS

ADVANCED PARAMETERS

LOADABLE MODULES

TLS-RELATED PARAMETERS

配置文件:/etc/zabbix/zabbix_server.conf

 

通用参数:

ListenPort=10051

SourceIP=

LogType=file

LogFile=/var/log/zabbix/zabbix-server.log服务端遍历文件路径

 

LogFileSize=0

PidFile=/var/rum/zabbix/zabbix_server.pid

 

DBHost=localhost

DBHost=127.0.0.1 指名地址

 

DBName=zabbix

DBUser=zbxuser

DBPasswore=zbxpass

DBSocket=/var/lib/mysql/mysql.sock

#ls /var/lib/mysql

 

启动服务:

#systemctl start zabbix-server.service

#systemctl status zabbix-server.service 来查看服务信息

注意:CentOS 7.0和7.1需要升级trousers程序最新版本

#rpm -q trousers

#rpm -q hph-mysql

 

配置zabbix-web

配置php的时区指定;

vim /etc/httpd/conf.d/zabbix.conf

(1)php.ini

(2)#vim /etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai

# systemctl start httpd.service

#ss -tnl

 

下面是在浏览器端输入的地址:访问zabbix的web页面

访问http://172.18.100.67/zabbix

安装后配置文件:/etc/zabbix/web/zabbix.conf.php

登录:

admin/zabbix

database type MYSQL

Database host 127.0.0.1

Database port 0

Database name zabbix

User zbxuser

Password zbpass 这里是之前的密码

下一步

Host 172.18.100.67

Port 10051

下一步

 

访问路径URL:http://conf.d/zabbix.conf

安装配置文件:/etc/zabbix/web/zabbix.conf.php

 

以上是整理部分学习笔记,有坑要自己填。。。。

 

;