Zabbix的所有配置信息都存储在服务器和Web前端进行交互的数据库中。
### 服务器:
当通过web前端或者API新增一个条目时,他会被添加到数据库的item里,然后,Zabbix服务器以每分钟一次的频率查询item的活动列表,接着将他存储在zabbix的缓存里,这就是为什么Zabbix前端所做的任何修改最多需要两分钟才能显示在最新的数据段的原因。
服务器启动:
~~~
shell> cd sbin
~~~
~~~
-c --config <file> 配置文件的绝对路径 (默认路径: /etc/zabbix/zabbix_server.conf)
-R --runtime-control <选项> 执行管理能力
-h --help 帮助提示
-V --version 显示版本号
~~~
### Agent:
Zabbix agent部署在监控的目标上,主动监测本地的资源和应用(硬件驱动,内存,处理器统计等)。
Zabbix agents 的极端高效缘于它可以利用本地系统调用来完成统计数据的收集。
Zabbix agents可以执行被动和主动两种检查方式。
在\[passive check\])模式中agent应答数据请求,Zabbix server(或者proxy)询问agent数据,如CPU 的负载情况,然后Zabbix agent回送结果。
\[Active checks\]处理过程将相对复杂。 Agent必须首先从Zabbix sever索取监控项列表以进行独立处理,然后周期性地发送新的值给server。
#### 运行 agent进程
~~~
shell> cd sbin
shell> ./zabbix_agentd
~~~
Windows上的Zabbix agent是以Windows服务的形式运行的。 您可以在主机上运行Zabbix agent的单个实例或多个实例。 单个实例可以使用默认配置文件或命令行中指定的配置文件。 在多个实例的情况下,每个agent实例必须有自己独立的配置文件(其中一个实例可以使用默认配置文件)
### Proxy
Zabbix Proxy是一个可以从一个或多个受监控设备收集监控数据,并将信息发送到Zabbix sever的进程,基本上是代表sever工作的。 所有收集的数据都在本地进行缓存,然后传送到proxy所属的Zabbix sever。
Zabbix proxy是完成远程区域、分支机构、没有本地管理员的网络的集中监控的理想解决方案。
Zabbix proxy需要使用独立的数据库。
~~~
shell> cd sbin
shell> ./zabbix_proxy
~~~
### Java gateway
Zabbix gateway 是用Java语言写成。要查得一台主机特定的JMX计数器值,Zabbix server向Zabbix Java gateway发送请求,后者使用\[JMX管理API\]去请求远程的有关应用。应用不需要额外安装软件,只需要启动时在命令行指定`-Dcom.sun.management.jmxremote`即可。
一旦完成了配置,可以通过startup脚本来启动Java gateway
~~~
$ ./startup.sh
~~~
如果您不需要Java gateway,可以运行shutdown脚本关闭它
~~~
$ ./shutdown.sh
~~~
#### 4.4 配置Sever使用Java gateway
现在Java gateway已在运行,接下来您要告诉Zabbix server在哪里找到Zabbix Java gateway. 因此你需要在[server配置文件](https://www.zabbix.com/documentation/3.4/manual/appendix/config/zabbix_server "manual:appendix:config:zabbix_server")中指定JavaGateway及JavaGateway端口(JavaGatewayPort).如果JMX应用采用Zabbix agent进行监控的话,您需要在[proxy 配置文件](https://www.zabbix.com/documentation/3.4/manual/appendix/config/zabbix_proxy "manual:appendix:config:zabbix_proxy")中配置对应的连接参数.
~~~
JavaGateway=192.168.3.14
JavaGatewayPort=10052
~~~
默认情况下,server并不会产生任何与JMX监控进程。但如果您想使用完成JMX监控,您需要指定Java轮询器的预分支实例数(pre-forked instances),您也可过同类的方式指定常见的轮询器和捕获器。
~~~
StartJavaPollers=5
~~~
一旦您完成了相关配置,不要忘记重启Sever或Proxy
### Sender
#### 综述
Zabbix sender 是一种命令行应用,它可以将性能数据发送到Zabbix server进行处理。 该应用通常用在长时间运行的用户脚本,用于定期发送可用性和性能数据
~~~
shell> cd bin
shell> ./zabbix_sender -z zabbix -s "Linux DB3" -k db.connections -o 43
~~~
其中:
* z - Zabbix server 主机 (IP 地址也可以使用)
* s - 受监控主机的技术名称(与Zabbix前端注册的相同)
* k - 监控项的值
* o - 要发送的值
### Get
#### 概述
Zabbix get 是一种命令行应用,它可以用于与Zabbix agent进行通信,并从agent哪里获取所需的信息 该应用通常被用于Zabbix agent故障排除。
#### 运行 Zabbix get
UNIX下运行Zabbix get,从agent那里获取处理器的负载值的例子:
~~~
shell> cd bin
shell> ./zabbix_get -s 127.0.0.1 -p 10050 -k system.cpu.load[all,avg1]
~~~
### 安装:
安装源码库配置部署包。这个部署包包含了yum配置文件。
~~~
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rpm
~~~
~~~
yum install zabbix-server-mysql zabbix-web-mysql
~~~
~~~
yum install zabbix-agent
~~~
数据库设置
~~~
shell> mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
mysql> quit;
~~~
然后导入初始架构(Schema)和数据
~~~
cd /usr/share/doc/zabbix-server-mysql-3.4.0
zcat create.sql.gz | mysql -uroot zabbix
~~~
#### 启动Zabbix Server进程
在zabbix\_server.conf中编辑数据库配置
~~~
# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
~~~
启动Zabbix Server进程
~~~
# systemctl start zabbix-server
~~~
Zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf 。一些PHP设置已经完成了配置。
~~~
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
~~~
依据所在时区,你可以取消 “date.timezone” 设置的注释,并正确配置它。在配置文件更改后,需要重启Apache Web服务器。
~~~
# systemctl start httpd
~~~
- 文章翻译
- Large-scale cluster management at Google with Borg
- Borg Omega and kubernetes
- scaling kubernetes to 7500 nodes
- bpf 的过去,未来与现在
- Demystifying Istio Circuit Breaking
- 知识图谱
- skill level up graph
- 一、运维常用技能
- 1.0 Vim (编辑器)
- 1.1 Nginx & Tengine(Web服务)
- 基础
- 1.2 zabbix
- 定义
- 登录和配置用户
- 1.3 RabbitMQ(消息队列)
- 原理
- RabbitMQ(安装)
- 1.4虚拟化技术
- KVM
- 1.5 Tomcat(Web中间件)
- 1.6Jenkins
- pipline
- 1.7 Docker
- network
- 1.8 Keepalived(负载均衡高可用)
- 1.9 Memcache(分布式缓存)
- 1.10 Zookeeper(分布式协调系统)
- 1.11 GitLab(版本控制)
- 1.12 Jenkins(运维自动化)
- 1.13 WAF(Web防火墙)
- 1.14 HAproxy负载均衡
- 1.15 NFS(文件传输)
- 1.16 Vim(编辑器)
- 1.17 Cobbler(自动化部署)
- 二、常用数据库
- 2.1 MySQL(关系型数据库)
- mysql主从复制
- 2.2 Mongodb(数据分析)
- 2.3 Redis(非关系数据库)
- 三、自动化运维工具
- 3.1 Cobbler(系统自动化部署)
- 3.2 Ansible(自动化部署)
- 3.3 Puppet(自动化部署)
- 3.4 SaltStack(自动化运维)
- 四、存储
- 4.1 GFS(文件型存储)
- 4.2 Ceph(后端存储)
- 五、运维监控工具
- 5.1 云镜
- 5.2 ELK
- 六、运维云平台
- 6.1 Kubernetes
- 6.2 OpenStack
- 介绍
- 安装
- 七、Devops运维
- 7.1 理念
- 7.2 Devops运维实战
- 八、编程语言
- 8.1 Shell
- 书籍《Wicked Cool Shell Scripts》
- 8.2 Python
- 8.3 C
- 8.4 Java
- leecode算法与数据结构
- 九、杂记
- 高优先级技能
- 知识点
- JD搜集
- 明显的短板
- 1.0 Python
- 1.1 Kubernetes
- 1.18.2 《kubernetes in action》
- 遗漏知识点
- 1.18.3 GCP、azure、aliyun
- Azure文档
- 1.18.5 《program with kubernetes》
- Istio
- HELM
- 《Kubernetes best practice》
- Kubernetes源码学习
- Scheduler源码
- 调度器入口
- 调度器框架
- Node筛选算法
- Node优先级算法
- pod抢占调度
- 入口
- 主要代码结构
- new
- 文章翻译
- Flannel
- 从二进制集群搭建
- 信息收集
- docker优化
- 1.2 shell
- 面试题
- grep awk sed 常见用法
- shell实践
- 1.3 Data structure(数据结构)
- Calico
- Aliyun文档以及重点模块
- git
- 大数据组件
- 前端,后端,web框架
- cgroup,namespace
- 内核
- Linux搜集
- crontab
- centos7常用优化配置
- centos Mariadb
- eBPF
- ebpf的前世今生
- Linux性能问题排查与分析
- 性能分析搜集
- 性能分析常用10条
- 网络性能优化
- 文本处理命令
- sql
- Iptables
- python面试题
- iptables
- iptables详细
- zabbix面试题,proj
- prometheus
- web中间件
- nginx
- Haproxy
- grep sed awk
- Linux常用命令
- 云平台
- 书籍Linux应用技巧
- kafka
- kafka面试题
- ETCD
- Jenkins
- 3天补充的点
- K8s源码
- K8s
- k8s实操
- etcd
- test
- BPF
- PSFTP使用
- StackOverflow问答精选
- 问题
- 我对于学习思考
- 修改ssh超时时间
- 课程目录
- 运维与运维开发
- The Person
- 个人杂谈
- mysql主从复制
- 对于工作的认识与思考