zabbix 从入门到放弃

docker 安装 zabbix, 添加主机,设置报警,性能调优。

docker 搭建

1
2
3
4
5
6
7
8
9
10
# install docker-ce
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
sudo systemctl start docker

# 做数据映射后的方案
mkdir -p /data/docker/mysql/zabbix/data
mkdir -p /data/docker/zabbix/alertscripts
mkdir -p /data/docker/zabbix/externalscripts

然后是安装 zabbix 前端,后端,数据库。

1
2
3
4
5
6
7
8
9
# 数据库。
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="feiyang@2019+" \
-e MYSQL_ROOT_PASSWORD="feiyang@2019+" \
-v /data/zabbix_data:/var/lib/mysql \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 后端 参数已经调优
docker run --name zabbix-server-mysql \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="feiyang@2019+" \
-e MYSQL_ROOT_PASSWORD="feiyang@2019+" \
-e ZBX_TIMEOUT=30 \
-e ZBX_CACHESIZE=8G \
-e ZBX_TRENDCACHESIZE=2G \
-e ZBX_STARTPOLLERS=500 \
-e ZBX_STARTPOLLERSUNREACHABLE=100 \
-e ZBX_HOUSEKEEPINGFREQUENCY=0 \
-v /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-v /data/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \
-v /data/zabbix/conf:/etc/zabbix \
--link mysql-server:mysql \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:centos-4.2-latest
1
2
3
4
5
6
7
8
9
10
11
12
# 前端
docker run --name zabbix-web-nginx-mysql \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="feiyang@2019+" \
-e MYSQL_ROOT_PASSWORD="feiyang@2019+" \
-e PHP_TZ="Asia/Singapore" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 8080:80 \
-d zabbix/zabbix-web-nginx-mysql:centos-4.2-latest

安装完成后,在浏览器打开 http://localhost:8080 默认的账户是 Admin 密码是 zabbix

ansible 批量添加主机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
---
- name: add zabbix hosts
local_action:
module: zabbix_host
server_url: "{{ var_server_url }}"
login_user: "{{ var_login_user }}"
login_password: "{{ var_login_password }}"
host_name: "{{ inventory_hostname }}"
visible_name: "{{ inventory_hostname }}-{{function}}"
host_groups:
- "{{ var_host_group }}"
link_templates:
- Template Sea Ops OS Linux
- Template Sea Ops Disk IO Linux
#status: disabled
status: enabled
state: present
interfaces:
- type: 1
main: 1
useip: 1
ip: "{{ inventory_hostname }}"
#ip: "{{ var_lanip }}"
dns: ""
port: 10050

Action

设置触发警告的 Action 时,当 Step 设置为从 1 到 0 时,会一直发送告警信息,直到事件状态变成 OK,当 Step 设置为从 1 到 1 时,则只会发送一次告警,后面不会继续发送告警信息。