saltstack(十四):saltStack实例-安装zabbix_agent
Saltstack实例-安装zibbix-agent
1.1 环境准备
1.1.1 创建目录
init #初始化 zabbix
1.1.2 yum-epel源管理
#yum-epel.sls
/etc/yum.repos.d/epel.repo: #文件作为ID file.managed: - source: salt://init/files/epel-7.repo - user: root - group: root
1.1.3 zabbix管理
zabbix_agentd.conf 文件 作为模板
#zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server={{ SERVER }} ServerActive=127.0.0.1 Hostname={{ HOSTNAME }} Include=/etc/zabbix_agentd.conf.d/
zabbix-agent.sls
#zabbix-agent.sls include: - init.yum-epel #引入epel源 zabbix-agent: pkg.installed: - name : zabbix22-agent - require: - file : /etc/yum.repos.d/epel.repo #epel源ID 不存在不执行 file.managed: - name: /etc/zabbix_agentd.conf #远程文件地址 - source : salt://zabbix/files/zabbix_agentd.conf #本地文件位置 - user: root - group: root - mode: 644 - template: jinja - defaults : SERVER: 10.6.76.27 HOSTNAME: {{ grains['fqdn'] }} - require: - pkg: zabbix-agent #依赖于上面的状态,包装上了才执行这个。 service.running: #不写name IDzabbix-agent 就是name - name : zabbix-agent - enable: True - watch: #文件、包发生变更重启 - file: zabbix-agent - pkg: zabbix-agent zabbix-agent.conf.d: file.directory: - name : /etc/zabbix_agentd.conf.d - watch_in: #目录有变化就重启 - service: zabbix-agent - require: - pkg: zabbix-agent #依赖于这个状态,包装上了才执行这个。 - file: zabbix-agent
执行
[root@pe-jira zabbix]# salt 'test-tms' state.sls zabbix.zabbix-agent test-tms: ---------- ID: /etc/yum.repos.d/epel.repo Function: file.managed Result: True Comment: File /etc/yum.repos.d/epel.repo updated Started: 17:04:26.779587 Duration: 21.937 ms Changes: ---------- diff: --- +++ @@ -1,27 +1,23 @@ - [epel] name=Extra Packages for Enterprise Linux 7 - $basearch -baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch -#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch +baseurl=http://mirrors.aliyun.com/epel/7/$basearch failovermethod=priority enabled=1 -gpgcheck=1 +gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 - + [epel-debuginfo] name=Extra Packages for Enterprise Linux 7 - $basearch - Debug -baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug -#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch +baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 -gpgcheck=1 - +gpgcheck=0 + [epel-source] name=Extra Packages for Enterprise Linux 7 - $basearch - Source -baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS -#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch +baseurl=http://mirrors.aliyun.com/epel/7/SRPMS failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 -gpgcheck=1 +gpgcheck=0 ---------- ID: zabbix-agent Function: pkg.installed Name: zabbix22-agent Result: True Comment: The following packages were installed/updated: zabbix22-agent Started: 17:04:27.257194 Duration: 15733.395 ms Changes: ---------- zabbix22: ---------- new: 2.2.23-1.el7 old: zabbix22-agent: ---------- new: 2.2.23-1.el7 old: ---------- ID: zabbix-agent Function: file.managed Name: /etc/zabbix_agentd.conf Result: True Comment: File /etc/zabbix_agentd.conf updated Started: 17:04:42.993354 Duration: 29.384 ms Changes: ---------- diff: --- +++ @@ -1,284 +1,7 @@ -# This is a config file for the Zabbix agent daemon (Unix) -# To get more information about Zabbix, visit http://www.zabbix.com - -############ GENERAL PARAMETERS ################# - -### Option: PidFile -# Name of PID file. -# -# Mandatory: no -# Default: PidFile=/run/zabbix/zabbix_agentd.pid - -### Option: LogFile -# Name of log file. -# If not set, syslog is used. -# -# Mandatory: no -# Default: -# LogFile= - LogFile=/var/log/zabbix/zabbix_agentd.log - -### Option: LogFileSize -# Maximum size of log file in MB. -# 0 - disable automatic log rotation. -# -# Mandatory: no -# Range: 0-1024 -# Default: LogFileSize=0 - -### Option: DebugLevel -# Specifies debug level -# 0 - no debug -# 1 - critical information -# 2 - error information -# 3 - warnings -# 4 - for debugging (produces lots of information) -# -# Mandatory: no -# Range: 0-4 -# Default: -# DebugLevel=3 - -### Option: SourceIP -# Source IP address for outgoing connections. -# -# Mandatory: no -# Default: -# SourceIP= - -### Option: EnableRemoteCommands -# Whether remote commands from Zabbix server are allowed. -# 0 - not allowed -# 1 - allowed -# -# Mandatory: no -# Default: -# EnableRemoteCommands=0 - -### Option: LogRemoteCommands -# Enable logging of executed shell commands as warnings. -# 0 - disabled -# 1 - enabled -# -# Mandatory: no -# Default: -# LogRemoteCommands=0 - -##### Passive checks related - -### Option: Server -# List of comma delimited IP addresses (or hostnames) of Zabbix servers. -# Incoming connections will be accepted only from the hosts listed here. -# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally. -# -# Mandatory: no -# Default: -# Server= - -Server=127.0.0.1 - -### Option: ListenPort -# Agent will listen on this port for connections from the server. -# -# Mandatory: no -# Range: 1024-32767 -# Default: -# ListenPort=10050 - -### Option: ListenIP -# List of comma delimited IP addresses that the agent should listen on. -# First IP address is sent to Zabbix server if connecting to it to retrieve list of active checks. -# -# Mandatory: no -# Default: -# ListenIP=0.0.0.0 - -### Option: StartAgents -# Number of pre-forked instances of zabbix_agentd that process passive checks. -# If set to 0, disables passive checks and the agent will not listen on any TCP port. -# -# Mandatory: no -# Range: 0-100 -# Default: -# StartAgents=3 - -##### Active checks related - -### Option: ServerActive -# List of comma delimited IP:port (or hostname:port) pairs of Zabbix servers for active checks. -# If port is not specified, default port is used. -# IPv6 addresses must be enclosed in square brackets if port for that host is specified. -# If port is not specified, square brackets for IPv6 addresses are optional. -# If this parameter is not specified, active checks are disabled. -# Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1] -# -# Mandatory: no -# Default: -# ServerActive= - +Server=10.6.76.27 ServerActive=127.0.0.1 - -### Option: Hostname -# Unique, case sensitive hostname. -# Required for active checks and must match hostname as configured on the server. -# Value is acquired from HostnameItem if undefined. -# -# Mandatory: no -# Default: -# Hostname= - -Hostname=Zabbix server - -### Option: HostnameItem -# Item used for generating Hostname if it is undefined. Ignored if Hostname is defined. -# Does not support UserParameters or aliases. -# -# Mandatory: no -# Default: -# HostnameItem=system.hostname - -### Option: HostMetadata -# Optional parameter that defines host metadata. -# Host metadata is used at host auto-registration process. -# An agent will issue an error and not start if the value is over limit of 255 characters. -# If not defined, value will be acquired from HostMetadataItem. -# -# Mandatory: no -# Range: 0-255 characters -# Default: -# HostMetadata= - -### Option: HostMetadataItem -# Optional parameter that defines an item used for getting host metadata. -# Host metadata is used at host auto-registration process. -# During an auto-registration request an agent will log a warning message if -# the value returned by specified item is over limit of 255 characters. -# This option is only used when HostMetadata is not defined. -# -# Mandatory: no -# Default: -# HostMetadataItem= - -### Option: RefreshActiveChecks -# How often list of active checks is refreshed, in seconds. -# -# Mandatory: no -# Range: 60-3600 -# Default: -# RefreshActiveChecks=120 - -### Option: BufferSend -# Do not keep data longer than N seconds in buffer. -# -# Mandatory: no -# Range: 1-3600 -# Default: -# BufferSend=5 - -### Option: BufferSize -# Maximum number of values in a memory buffer. The agent will send -# all collected data to Zabbix Server or Proxy if the buffer is full. -# -# Mandatory: no -# Range: 2-65535 -# Default: -# BufferSize=100 - -### Option: MaxLinesPerSecond -# Maximum number of new lines the agent will send per second to Zabbix Server -# or Proxy processing 'log' and 'logrt' active checks. -# The provided value will be overridden by the parameter 'maxlines', -# provided in 'log' or 'logrt' item keys. -# -# Mandatory: no -# Range: 1-1000 -# Default: -# MaxLinesPerSecond=100 - -############ ADVANCED PARAMETERS ################# - -### Option: Alias -# Sets an alias for an item key. It can be used to substitute long and complex item key with a smaller and simpler one. -# Multiple Alias parameters may be present. Multiple parameters with the same Alias key are not allowed. -# Different Alias keys may reference the same item key. -# For example, to retrieve the ID of user 'zabbix': -# Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1] -# Now shorthand key zabbix.userid may be used to retrieve data. -# Aliases can be used in HostMetadataItem but not in HostnameItem parameters. -# -# Mandatory: no -# Range: -# Default: - -### Option: Timeout -# Spend no more than Timeout seconds on processing -# -# Mandatory: no -# Range: 1-30 -# Default: -# Timeout=3 - -### Option: AllowRoot -# Allow the agent to run as 'root'. If disabled and the agent is started by 'root', the agent -# will try to switch to user 'zabbix' instead. Has no effect if started under a regular user. -# 0 - do not allow -# 1 - allow -# -# Mandatory: no -# Default: -# AllowRoot=0 - -### Option: Include -# You may include individual files or all files in a directory in the configuration file. -# Installing Zabbix will create include directory in /etc, unless modified during the compile time. -# -# Mandatory: no -# Default: -# Include= - -# Include=/etc/zabbix_agentd.userparams.conf -# Include=/etc/zabbix_agentd.conf.d/ - -####### USER-DEFINED MONITORED PARAMETERS ####### - -### Option: UnsafeUserParameters -# Allow all characters to be passed in arguments to user-defined parameters. -# 0 - do not allow -# 1 - allow -# -# Mandatory: no -# Range: 0-1 -# Default: -# UnsafeUserParameters=0 - -### Option: UserParameter -# User-defined parameter to monitor. There can be several user-defined parameters. -# Format: UserParameter=<key>,<shell command> -# See 'zabbix_agentd' directory for examples. -# -# Mandatory: no -# Default: -# UserParameter= - -####### LOADABLE MODULES ####### - -### Option: LoadModulePath -# Full path to location of agent modules. -# Default depends on compilation options. -# -# Mandatory: no -# Default: -# LoadModulePath=${libdir}/modules - -### Option: LoadModule -# Module to load at agent startup. Modules are used to extend functionality of the agent. -# Format: LoadModule=<module.so> -# The modules must be located in directory specified by LoadModulePath. -# It is allowed to include multiple LoadModule parameters. -# -# Mandatory: no -# Default: -# LoadModule= +Hostname=test-tms +Include=/etc/zabbix_agentd.conf.d/ ---------- ID: zabbix-agent.conf.d Function: file.directory Name: /etc/zabbix_agentd.conf.d Result: True Comment: Directory /etc/zabbix_agentd.conf.d updated Started: 17:04:43.040614 Duration: 0.898 ms Changes: ---------- /etc/zabbix_agentd.conf.d: New Dir ---------- ID: zabbix-agent Function: service.running Result: True Comment: Service zabbix-agent has been enabled, and is running Started: 17:04:43.041840 Duration: 759.625 ms Changes: ---------- zabbix-agent: True Summary ------------ Succeeded: 5 (changed=5) Failed: 0 ------------ Total states run: 5 [root@pe-jira zabbix]#