zabbix剧本编写 布置zabbix zabbix.yaml agent server mysql
布置zabbix
ansible-galaxy init agent
ansible-galaxy init mysql
ansible-galaxy init server
touch zabbix.yaml
zabbix.yaml
---
- hosts: webremote_user: rootroles:- mysql - server
- hosts: dbremote_user: rootroles:- agent
agent
vim vars/main.yml ---
# vars file for agent
serverip: 10.12.153.118
vim tasks/main.yml ---
# tasks file for agent
#- name: 安装源
# shell: rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#
- name: 安装agent端yum: name=zabbix-agent state=present- name: 拷贝配置文件template: src=zabbix_agentd.conf dest=/etc/zabbix/zabbix_agentd.conf
vim templates/zabbix_agentd.confPidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server={{ serverip }}
ServerActive={{ serverip }}
Hostname={{ ansible_hostname }}
Include=/etc/zabbix/zabbix_agentd.d/*.conf
server
vim tasks/main.yml ---
# tasks file for server#- name: 安装server源
# shell: rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#
#- name: 安装工具
# yum: name=zabbix-server-mysql,zabbix-agent,centos-release-scl state=present
#
#- name: 拷贝repo文件
# copy: src=zabbix.repo dest=/etc/yum.repos.d/zabbix.repo backup=yes
#
#- name: 安装工具
# yum: name=zabbix-web-mysql-scl,zabbix-nginx-conf-scl state=present
- name: 导入初始数据shell: zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz |mysql -uzabbix -p0 zabbix- name: 修改数据库shell: mysql -e "set global log_bin_trust_function_creators = 0;"
#- name: 拷贝server配置文件
# copy: src=zabbix_server.conf dest=/etc/zabbix/zabbix_server.conf backup=yes
#
#- name: 拷贝php文件
# copy: src=zabbix.conf dest=/etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf backup=yes
#
#- name: 拷贝php配置文件
# copy: src=zabbix.con dest=/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf backup=yes
#
#- name: 拷贝nginx配置文件
# copy: src=nginx.conf dest=/etc/opt/rh/rh-nginx116/nginx/nginx.conf backup=yes- name: 启动zabbix-servershell: systemctl start zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
vim files/nginx.conf user nginx;
worker_processes auto;
error_log /var/opt/rh/rh-nginx116/log/nginx/error.log;
pid /var/opt/rh/rh-nginx116/run/nginx/nginx.pid;
include /opt/rh/rh-nginx116/root/usr/share/nginx/modules/*.conf;
events {worker_connections 1024;
}http {log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/opt/rh/rh-nginx116/log/nginx/access.log main;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;include /etc/opt/rh/rh-nginx116/nginx/mime.types;default_type application/octet-stream;include /etc/opt/rh/rh-nginx116/nginx/conf.d/*.conf;
}
vim files/zabbix.con[zabbix]
user = apache
group = apachelisten = /var/opt/rh/rh-php72/run/php-fpm/zabbix.sock
listen.acl_users = apache,nginx
listen.allowed_clients = 127.0.0.1pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 200php_value[session.save_handler] = files
php_value[session.save_path] = /var/opt/rh/rh-php72/lib/php/session/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[max_input_vars] = 10000
php_value[date.timezone] = Asia/Shanghai
vim files/zabbix.conf server {listen 80;server_name example.com;root /usr/share/zabbix;index index.php;location = /favicon.ico {log_not_found off;}location / {try_files $uri $uri/ =404;}location /assets {access_log off;expires 10d;}location ~ /\.ht {deny all;}location ~ /(api\/|conf[^\.]|include|locale|vendor) {deny all;return 404;}location ~ [^/]\.php(/|$) {fastcgi_pass unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock;
# fastcgi_pass unix:/var/opt/rh/rh-php73/run/php-fpm/zabbix.sock;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_index index.php;fastcgi_param DOCUMENT_ROOT /usr/share/zabbix;fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;include fastcgi_params;fastcgi_param QUERY_STRING $query_string;fastcgi_param REQUEST_METHOD $request_method;fastcgi_param CONTENT_TYPE $content_type;fastcgi_param CONTENT_LENGTH $content_length;fastcgi_intercept_errors on;fastcgi_ignore_client_abort off;fastcgi_connect_timeout 60;fastcgi_send_timeout 180;fastcgi_read_timeout 180;fastcgi_buffer_size 128k;fastcgi_buffers 4 256k;fastcgi_busy_buffers_size 256k;fastcgi_temp_file_write_size 256k;}
}
vim files/zabbix.repo [zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
vim files/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=0
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
mysql
vim tasks/main.yml---tasks file for mysql
- name: 清理环境yum: name=mysql*,mariadb* state=absent- name: 清理环境file: path=/var/lib/mysql,/etc/my.cnf,/var/log/mysql* state=absent
- name: 安装数据库yum: name=mariadb-server,mariadb state=present
- name: 启动数据库service: name=mariadb state=started enabled=yes
- name: 等待mariadb是否启动wait_for:host: localhostport: 3306
- name: 删除数据库shell: mysql -e "drop database zabbix;"
- name: 创建数据库shell: mysql -e "create database zabbix character set utf8 collate utf8_bin;set global log_bin_trust_function_creators = 1;grant all on *.* to 'zabbix'@'localhost' identified by '0';flush privileges"#- name: 安装mysql源
# shell: rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm#- name: 安装mysql
# yum: name=mysql-server disablerepo=mysql80-community enablerepo=mysql57-community state=present