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主從復制
- 對于工作的認識與思考