zoukankan      html  css  js  c++  java
  • Promethues-Operator对接ldap

    Promethues-Operator对接ldap

    1、创建ldap配置文件configmap

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: ldap-config
      namespace: monitoring
    data:
      ldap.toml: |-
          [[servers]]
          # Ldap server host (specify multiple hosts space separated)
          host = "ldap服务器"
          # Default port is 389 or 636 if use_ssl = true
          port = ldap服务器端口
          # Set to true if ldap server supports TLS
          use_ssl = false
          start_tls = false
          # set to true if you want to skip ssl cert validation
          ssl_skip_verify = false
          
          # Search user bind dn
          bind_dn = "uid=公司ldap某个账户,ou=People,dc=公司ldap的dc名称,dc=cn"
          bind_password = '密码'
          
          # User search filter, for example "(cn=%s)" or "(sAMAccountName=%s)" or "(uid=%s)"
          search_filter = "(cn=%s)"
          
          # An array of base dns to search through
          search_base_dns = ["ou=People,dc=公司ldap的dc名称,dc=cn"]
          
          [servers.attributes]
          name = "givenName"
          surname = "sn"
          username = "cn"
          member_of = "memberOf"
          email =  "email"
          
          # Map ldap groups to grafana org roles
          [[servers.group_mappings]]
          group_dn = "ou=admins,dc=公司ldap的dc名称,dc=cn"
          org_role = "Admin"
          
          [[servers.group_mappings]]
          group_dn = "ou=People,dc=公司ldap的dc名称,dc=cn"
          org_role = "Editor"
          
          [[servers.group_mappings]]
          group_dn = "*"
          org_role = "Editor"
    

    2、创建grafana.ini配置文件configmap

    因为Prometheus-Operator默认的注释了ldap的配置,所以需要把修改好的grafana.ini挂载至grafana,修改的部分如下所示:

    [auth.ldap]
    enabled = true
    config_file = /etc/grafana/ldap.toml
    allow_sign_up = true
    

    注意每个版本的grafana.ini配置文件可能不一样,进入grafana容器里拷贝一份即可

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: grafana-config-ini
      namespace: monitoring
    data:
      grafana.ini: |
        ##################### Grafana Configuration Example #####################
        #
        # Everything has defaults so you only need to uncomment things you want to
        # change
        
        # possible values : production, development
        ;app_mode = production
        
        # instance name, defaults to HOSTNAME environment variable value or hostname if HOSTNAME var is empty
        ;instance_name = ${HOSTNAME}
        
        #################################### Paths ####################################
        [paths]
        # Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
        ;data = /var/lib/grafana
        
        # Temporary files in `data` directory older than given duration will be removed
        ;temp_data_lifetime = 24h
        
        # Directory where grafana can store logs
        ;logs = /var/log/grafana
        
        # Directory where grafana will automatically scan and look for plugins
        ;plugins = /var/lib/grafana/plugins
        
        # folder that contains provisioning config files that grafana will apply on startup and while running.
        ;provisioning = conf/provisioning
        
        #################################### Server ####################################
        [server]
        # Protocol (http, https, h2, socket)
        ;protocol = http
        
        # The ip address to bind to, empty will bind to all interfaces
        ;http_addr =
        
        # The http port  to use
        ;http_port = 3000
        
        # The public facing domain name used to access grafana from a browser
        ;domain = localhost
        
        # Redirect to correct domain if host header does not match domain
        # Prevents DNS rebinding attacks
        ;enforce_domain = false
        
        # The full public facing url you use in browser, used for redirects and emails
        # If you use reverse proxy and sub path specify full url (with sub path)
        ;root_url = %(protocol)s://%(domain)s:%(http_port)s/
        
        # Serve Grafana from subpath specified in `root_url` setting. By default it is set to `false` for compatibility reasons.
        ;serve_from_sub_path = false
        
        # Log web requests
        ;router_logging = false
        
        # the path relative working path
        ;static_root_path = public
        
        # enable gzip
        ;enable_gzip = false
        
        # https certs & key file
        ;cert_file =
        ;cert_key =
        
        # Unix socket path
        ;socket =
        
        #################################### Database ####################################
        [database]
        # You can configure the database connection by specifying type, host, name, user and password
        # as separate properties or as on string using the url properties.
        
        # Either "mysql", "postgres" or "sqlite3", it's your choice
        ;type = sqlite3
        ;host = 127.0.0.1:3306
        ;name = grafana
        ;user = root
        # If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
        ;password =
        
        # Use either URL or the previous fields to configure the database
        # Example: mysql://user:secret@host:port/database
        ;url =
        
        # For "postgres" only, either "disable", "require" or "verify-full"
        ;ssl_mode = disable
        
        ;ca_cert_path =
        ;client_key_path =
        ;client_cert_path =
        ;server_cert_name =
        
        # For "sqlite3" only, path relative to data_path setting
        ;path = grafana.db
        
        # Max idle conn setting default is 2
        ;max_idle_conn = 2
        
        # Max conn setting default is 0 (mean not set)
        ;max_open_conn =
        
        # Connection Max Lifetime default is 14400 (means 14400 seconds or 4 hours)
        ;conn_max_lifetime = 14400
        
        # Set to true to log the sql calls and execution times.
        ;log_queries =
        
        # For "sqlite3" only. cache mode setting used for connecting to the database. (private, shared)
        ;cache_mode = private
        
        #################################### Cache server #############################
        [remote_cache]
        # Either "redis", "memcached" or "database" default is "database"
        ;type = database
        
        # cache connectionstring options
        # database: will use Grafana primary database.
        # redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=0,ssl=false`. Only addr is required. ssl may be 'true', 'false', or 'insecure'.
        # memcache: 127.0.0.1:11211
        ;connstr =
        
        #################################### Data proxy ###########################
        [dataproxy]
        
        # This enables data proxy logging, default is false
        ;logging = false
        
        # How long the data proxy waits before timing out, default is 30 seconds.
        # This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
        ;timeout = 30
        
        # If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false.
        ;send_user_header = false
        
        #################################### Analytics ####################################
        [analytics]
        # Server reporting, sends usage counters to stats.grafana.org every 24 hours.
        # No ip addresses are being tracked, only simple counters to track
        # running instances, dashboard and error counts. It is very helpful to us.
        # Change this option to false to disable reporting.
        ;reporting_enabled = true
        
        # Set to false to disable all checks to https://grafana.net
        # for new versions (grafana itself and plugins), check is used
        # in some UI views to notify that grafana or plugin update exists
        # This option does not cause any auto updates, nor send any information
        # only a GET request to http://grafana.com to get latest versions
        ;check_for_updates = true
        
        # Google Analytics universal tracking code, only enabled if you specify an id here
        ;google_analytics_ua_id =
        
        # Google Tag Manager ID, only enabled if you specify an id here
        ;google_tag_manager_id =
        
        #################################### Security ####################################
        [security]
        # disable creation of admin user on first start of grafana
        ;disable_initial_admin_creation = false
        
        # default admin user, created on startup
        ;admin_user = admin
        
        # default admin password, can be changed before first start of grafana,  or in profile settings
        ;admin_password = admin
        
        # used for signing
        ;secret_key = SW2YcwTIb9zpOOhoPsMm
        
        # disable gravatar profile images
        ;disable_gravatar = false
        
        # data source proxy whitelist (ip_or_domain:port separated by spaces)
        ;data_source_proxy_whitelist =
        
        # disable protection against brute force login attempts
        ;disable_brute_force_login_protection = false
        
        # set to true if you host Grafana behind HTTPS. default is false.
        ;cookie_secure = false
        
        # set cookie SameSite attribute. defaults to `lax`. can be set to "lax", "strict", "none" and "disabled"
        ;cookie_samesite = lax
        
        # set to true if you want to allow browsers to render Grafana in a <frame>, <iframe>, <embed> or <object>. default is false.
        ;allow_embedding = false
        
        # Set to true if you want to enable http strict transport security (HSTS) response header.
        # This is only sent when HTTPS is enabled in this configuration.
        # HSTS tells browsers that the site should only be accessed using HTTPS.
        ;strict_transport_security = false
        
        # Sets how long a browser should cache HSTS. Only applied if strict_transport_security is enabled.
        ;strict_transport_security_max_age_seconds = 86400
        
        # Set to true if to enable HSTS preloading option. Only applied if strict_transport_security is enabled.
        ;strict_transport_security_preload = false
        
        # Set to true if to enable the HSTS includeSubDomains option. Only applied if strict_transport_security is enabled.
        ;strict_transport_security_subdomains = false
        
        # Set to true to enable the X-Content-Type-Options response header.
        # The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised
        # in the Content-Type headers should not be changed and be followed.
        ;x_content_type_options = true
        
        # Set to true to enable the X-XSS-Protection header, which tells browsers to stop pages from loading
        # when they detect reflected cross-site scripting (XSS) attacks.
        ;x_xss_protection = true
        
        #################################### Snapshots ###########################
        [snapshots]
        # snapshot sharing options
        ;external_enabled = true
        ;external_snapshot_url = https://snapshots-origin.raintank.io
        ;external_snapshot_name = Publish to snapshot.raintank.io
        
        # Set to true to enable this Grafana instance act as an external snapshot server and allow unauthenticated requests for
        # creating and deleting snapshots.
        ;public_mode = false
        
        # remove expired snapshot
        ;snapshot_remove_expired = true
        
        #################################### Dashboards History ##################
        [dashboards]
        # Number dashboard versions to keep (per dashboard). Default: 20, Minimum: 1
        ;versions_to_keep = 20
        
        # Minimum dashboard refresh interval. When set, this will restrict users to set the refresh interval of a dashboard lower than given interval. Per default this is 5 seconds.
        # The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
        ;min_refresh_interval = 5s
        
        # Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
        ;default_home_dashboard_path =
        
        #################################### Users ###############################
        [users]
        # disable user signup / registration
        ;allow_sign_up = true
        
        # Allow non admin users to create organizations
        ;allow_org_create = true
        
        # Set to true to automatically assign new users to the default organization (id 1)
        ;auto_assign_org = true
        
        # Set this value to automatically add new users to the provided organization (if auto_assign_org above is set to true)
        ;auto_assign_org_id = 1
        
        # Default role new users will be automatically assigned (if disabled above is set to true)
        ;auto_assign_org_role = Viewer
        
        # Require email validation before sign up completes
        ;verify_email_enabled = false
        
        # Background text for the user field on the login page
        ;login_hint = email or username
        ;password_hint = password
        
        # Default UI theme ("dark" or "light")
        ;default_theme = dark
        
        # External user management, these options affect the organization users view
        ;external_manage_link_url =
        ;external_manage_link_name =
        ;external_manage_info =
        
        # Viewers can edit/inspect dashboard settings in the browser. But not save the dashboard.
        ;viewers_can_edit = false
        
        # Editors can administrate dashboard, folders and teams they create
        ;editors_can_admin = false
        
        [auth]
        # Login cookie name
        ;login_cookie_name = grafana_session
        
        # The lifetime (days) an authenticated user can be inactive before being required to login at next visit. Default is 7 days,
        ;login_maximum_inactive_lifetime_days = 7
        
        # The maximum lifetime (days) an authenticated user can be logged in since login time before being required to login. Default is 30 days.
        ;login_maximum_lifetime_days = 30
        
        # How often should auth tokens be rotated for authenticated users when being active. The default is each 10 minutes.
        ;token_rotation_interval_minutes = 10
        
        # Set to true to disable (hide) the login form, useful if you use OAuth, defaults to false
        ;disable_login_form = false
        
        # Set to true to disable the signout link in the side menu. useful if you use auth.proxy, defaults to false
        ;disable_signout_menu = false
        
        # URL to redirect the user to after sign out
        ;signout_redirect_url =
        
        # Set to true to attempt login with OAuth automatically, skipping the login screen.
        # This setting is ignored if multiple OAuth providers are configured.
        ;oauth_auto_login = false
        
        # OAuth state max age cookie duration. Defaults to 60 seconds.
        ;oauth_state_cookie_max_age = 60
        
        # limit of api_key seconds to live before expiration
        ;api_key_max_seconds_to_live = -1
        
        #################################### Anonymous Auth ######################
        [auth.anonymous]
        # enable anonymous access
        ;enabled = false
        
        # specify organization name that should be used for unauthenticated users
        ;org_name = Main Org.
        
        # specify role for unauthenticated users
        ;org_role = Viewer
        
        # mask the Grafana version number for unauthenticated users
        ;hide_version = false
        
        #################################### Github Auth ##########################
        [auth.github]
        ;enabled = false
        ;allow_sign_up = true
        ;client_id = some_id
        ;client_secret = some_secret
        ;scopes = user:email,read:org
        ;auth_url = https://github.com/login/oauth/authorize
        ;token_url = https://github.com/login/oauth/access_token
        ;api_url = https://api.github.com/user
        ;allowed_domains =
        ;team_ids =
        ;allowed_organizations =
        
        #################################### GitLab Auth #########################
        [auth.gitlab]
        ;enabled = false
        ;allow_sign_up = true
        ;client_id = some_id
        ;client_secret = some_secret
        ;scopes = api
        ;auth_url = https://gitlab.com/oauth/authorize
        ;token_url = https://gitlab.com/oauth/token
        ;api_url = https://gitlab.com/api/v4
        ;allowed_domains =
        ;allowed_groups =
        
        #################################### Google Auth ##########################
        [auth.google]
        ;enabled = false
        ;allow_sign_up = true
        ;client_id = some_client_id
        ;client_secret = some_client_secret
        ;scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
        ;auth_url = https://accounts.google.com/o/oauth2/auth
        ;token_url = https://accounts.google.com/o/oauth2/token
        ;api_url = https://www.googleapis.com/oauth2/v1/userinfo
        ;allowed_domains =
        ;hosted_domain =
        
        #################################### Grafana.com Auth ####################
        [auth.grafana_com]
        ;enabled = false
        ;allow_sign_up = true
        ;client_id = some_id
        ;client_secret = some_secret
        ;scopes = user:email
        ;allowed_organizations =
        
        #################################### Azure AD OAuth #######################
        [auth.azuread]
        ;name = Azure AD
        ;enabled = false
        ;allow_sign_up = true
        ;client_id = some_client_id
        ;client_secret = some_client_secret
        ;scopes = openid email profile
        ;auth_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
        ;token_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
        ;allowed_domains =
        ;allowed_groups =
        
        #################################### Okta OAuth #######################
        [auth.okta]
        ;name = Okta
        ;enabled = false
        ;allow_sign_up = true
        ;client_id = some_id
        ;client_secret = some_secret
        ;scopes = openid profile email groups
        ;auth_url = https://<tenant-id>.okta.com/oauth2/v1/authorize
        ;token_url = https://<tenant-id>.okta.com/oauth2/v1/token
        ;api_url = https://<tenant-id>.okta.com/oauth2/v1/userinfo
        ;allowed_domains =
        ;allowed_groups =
        ;role_attribute_path =
        
        #################################### Generic OAuth ##########################
        [auth.generic_oauth]
        ;enabled = false
        ;name = OAuth
        ;allow_sign_up = true
        ;client_id = some_id
        ;client_secret = some_secret
        ;scopes = user:email,read:org
        ;email_attribute_name = email:primary
        ;email_attribute_path =
        ;auth_url = https://foo.bar/login/oauth/authorize
        ;token_url = https://foo.bar/login/oauth/access_token
        ;api_url = https://foo.bar/user
        ;allowed_domains =
        ;team_ids =
        ;allowed_organizations =
        ;role_attribute_path =
        ;tls_skip_verify_insecure = false
        ;tls_client_cert =
        ;tls_client_key =
        ;tls_client_ca =
        
        #################################### Basic Auth ##########################
        [auth.basic]
        ;enabled = true
        
        #################################### Auth Proxy ##########################
        [auth.proxy]
        ;enabled = false
        ;header_name = X-WEBAUTH-USER
        ;header_property = username
        ;auto_sign_up = true
        ;sync_ttl = 60
        ;whitelist = 192.168.1.1, 192.168.2.1
        ;headers = Email:X-User-Email, Name:X-User-Name
        # Read the auth proxy docs for details on what the setting below enables
        ;enable_login_token = false
        
        #################################### Auth LDAP ##########################
        [auth.ldap]
        enabled = true
        config_file = /etc/grafana/ldap.toml
        allow_sign_up = true
        
        # LDAP backround sync (Enterprise only)
        # At 1 am every day
        ;sync_cron = "0 0 1 * * *"
        ;active_sync_enabled = true
        
        #################################### SMTP / Emailing ##########################
        [smtp]
        ;enabled = false
        ;host = localhost:25
        ;user =
        # If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
        ;password =
        ;cert_file =
        ;key_file =
        ;skip_verify = false
        ;from_address = admin@grafana.localhost
        ;from_name = Grafana
        # EHLO identity in SMTP dialog (defaults to instance_name)
        ;ehlo_identity = dashboard.example.com
        # SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
        ;startTLS_policy = NoStartTLS
        
        [emails]
        ;welcome_email_on_sign_up = false
        ;templates_pattern = emails/*.html
        
        #################################### Logging ##########################
        [log]
        # Either "console", "file", "syslog". Default is console and  file
        # Use space to separate multiple modes, e.g. "console file"
        ;mode = console file
        
        # Either "debug", "info", "warn", "error", "critical", default is "info"
        ;level = info
        
        # optional settings to set different levels for specific loggers. Ex filters = sqlstore:debug
        ;filters =
        
        # For "console" mode only
        [log.console]
        ;level =
        
        # log line format, valid options are text, console and json
        ;format = console
        
        # For "file" mode only
        [log.file]
        ;level =
        
        # log line format, valid options are text, console and json
        ;format = text
        
        # This enables automated log rotate(switch of following options), default is true
        ;log_rotate = true
        
        # Max line number of single file, default is 1000000
        ;max_lines = 1000000
        
        # Max size shift of single file, default is 28 means 1 << 28, 256MB
        ;max_size_shift = 28
        
        # Segment log daily, default is true
        ;daily_rotate = true
        
        # Expired days of log file(delete after max days), default is 7
        ;max_days = 7
        
        [log.syslog]
        ;level =
        
        # log line format, valid options are text, console and json
        ;format = text
        
        # Syslog network type and address. This can be udp, tcp, or unix. If left blank, the default unix endpoints will be used.
        ;network =
        ;address =
        
        # Syslog facility. user, daemon and local0 through local7 are valid.
        ;facility =
        
        # Syslog tag. By default, the process' argv[0] is used.
        ;tag =
        
        #################################### Usage Quotas ########################
        [quota]
        ; enabled = false
        
        #### set quotas to -1 to make unlimited. ####
        # limit number of users per Org.
        ; org_user = 10
        
        # limit number of dashboards per Org.
        ; org_dashboard = 100
        
        # limit number of data_sources per Org.
        ; org_data_source = 10
        
        # limit number of api_keys per Org.
        ; org_api_key = 10
        
        # limit number of orgs a user can create.
        ; user_org = 10
        
        # Global limit of users.
        ; global_user = -1
        
        # global limit of orgs.
        ; global_org = -1
        
        # global limit of dashboards
        ; global_dashboard = -1
        
        # global limit of api_keys
        ; global_api_key = -1
        
        # global limit on number of logged in users.
        ; global_session = -1
        
        #################################### Alerting ############################
        [alerting]
        # Disable alerting engine & UI features
        ;enabled = true
        # Makes it possible to turn off alert rule execution but alerting UI is visible
        ;execute_alerts = true
        
        # Default setting for new alert rules. Defaults to categorize error and timeouts as alerting. (alerting, keep_state)
        ;error_or_timeout = alerting
        
        # Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
        ;nodata_or_nullvalues = no_data
        
        # Alert notifications can include images, but rendering many images at the same time can overload the server
        # This limit will protect the server from render overloading and make sure notifications are sent out quickly
        ;concurrent_render_limit = 5
        
        
        # Default setting for alert calculation timeout. Default value is 30
        ;evaluation_timeout_seconds = 30
        
        # Default setting for alert notification timeout. Default value is 30
        ;notification_timeout_seconds = 30
        
        # Default setting for max attempts to sending alert notifications. Default value is 3
        ;max_attempts = 3
        
        # Makes it possible to enforce a minimal interval between evaluations, to reduce load on the backend
        ;min_interval_seconds = 1
        
        #################################### Explore #############################
        [explore]
        # Enable the Explore section
        ;enabled = true
        
        #################################### Internal Grafana Metrics ##########################
        # Metrics available at HTTP API Url /metrics
        [metrics]
        # Disable / Enable internal metrics
        ;enabled           = true
        # Graphite Publish interval
        ;interval_seconds  = 10
        # Disable total stats (stat_totals_*) metrics to be generated
        ;disable_total_stats = false
        
        #If both are set, basic auth will be required for the metrics endpoint.
        ; basic_auth_username =
        ; basic_auth_password =
        
        # Send internal metrics to Graphite
        [metrics.graphite]
        # Enable by setting the address setting (ex localhost:2003)
        ;address =
        ;prefix = prod.grafana.%(instance_name)s.
        
        #################################### Grafana.com integration  ##########################
        # Url used to import dashboards directly from Grafana.com
        [grafana_com]
        ;url = https://grafana.com
        
        #################################### Distributed tracing ############
        [tracing.jaeger]
        # Enable by setting the address sending traces to jaeger (ex localhost:6831)
        ;address = localhost:6831
        # Tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2)
        ;always_included_tag = tag1:value1
        # Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote
        ;sampler_type = const
        # jaeger samplerconfig param
        # for "const" sampler, 0 or 1 for always false/true respectively
        # for "probabilistic" sampler, a probability between 0 and 1
        # for "rateLimiting" sampler, the number of spans per second
        # for "remote" sampler, param is the same as for "probabilistic"
        # and indicates the initial sampling rate before the actual one
        # is received from the mothership
        ;sampler_param = 1
        # Whether or not to use Zipkin propagation (x-b3- HTTP headers).
        ;zipkin_propagation = false
        # Setting this to true disables shared RPC spans.
        # Not disabling is the most common setting when using Zipkin elsewhere in your infrastructure.
        ;disable_shared_zipkin_spans = false
        
        #################################### External image storage ##########################
        [external_image_storage]
        # Used for uploading images to public servers so they can be included in slack/email messages.
        # you can choose between (s3, webdav, gcs, azure_blob, local)
        ;provider =
        
        [external_image_storage.s3]
        ;endpoint =
        ;path_style_access =
        ;bucket =
        ;region =
        ;path =
        ;access_key =
        ;secret_key =
        
        [external_image_storage.webdav]
        ;url =
        ;public_url =
        ;username =
        ;password =
        
        [external_image_storage.gcs]
        ;key_file =
        ;bucket =
        ;path =
        
        [external_image_storage.azure_blob]
        ;account_name =
        ;account_key =
        ;container_name =
        
        [external_image_storage.local]
        # does not require any configuration
        
        [rendering]
        # Options to configure a remote HTTP image rendering service, e.g. using https://github.com/grafana/grafana-image-renderer.
        # URL to a remote HTTP image renderer service, e.g. http://localhost:8081/render, will enable Grafana to render panels and dashboards to PNG-images using HTTP requests to an external service.
        ;server_url =
        # If the remote HTTP image renderer service runs on a different server than the Grafana server you may have to configure this to a URL where Grafana is reachable, e.g. http://grafana.domain/.
        ;callback_url =
        # Concurrent render request limit affects when the /render HTTP endpoint is used. Rendering many images at the same time can overload the server,
        # which this setting can help protect against by only allowing a certain amount of concurrent requests.
        ;concurrent_render_request_limit = 30
        
        [panels]
        # If set to true Grafana will allow script tags in text panels. Not recommended as it enable XSS vulnerabilities.
        ;disable_sanitize_html = false
        
        [plugins]
        ;enable_alpha = false
        ;app_tls_skip_verify_insecure = false
        # Enter a comma-separated list of plugin identifiers to identify plugins that are allowed to be loaded even if they lack a valid signature.
        ;allow_loading_unsigned_plugins =
        
        #################################### Grafana Image Renderer Plugin ##########################
        [plugin.grafana-image-renderer]
        # Instruct headless browser instance to use a default timezone when not provided by Grafana, e.g. when rendering panel image of alert.
        # See ICU’s metaZones.txt (https://cs.chromium.org/chromium/src/third_party/icu/source/data/misc/metaZones.txt) for a list of supported
        # timezone IDs. Fallbacks to TZ environment variable if not set.
        ;rendering_timezone =
        
        # Instruct headless browser instance to use a default language when not provided by Grafana, e.g. when rendering panel image of alert.
        # Please refer to the HTTP header Accept-Language to understand how to format this value, e.g. 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5'.
        ;rendering_language =
        
        # Instruct headless browser instance to use a default device scale factor when not provided by Grafana, e.g. when rendering panel image of alert.
        # Default is 1. Using a higher value will produce more detailed images (higher DPI), but will require more disk space to store an image.
        ;rendering_viewport_device_scale_factor =
        
        # Instruct headless browser instance whether to ignore HTTPS errors during navigation. Per default HTTPS errors are not ignored. Due to
        # the security risk it's not recommended to ignore HTTPS errors.
        ;rendering_ignore_https_errors =
        
        # Instruct headless browser instance whether to capture and log verbose information when rendering an image. Default is false and will
        # only capture and log error messages. When enabled, debug messages are captured and logged as well.
        # For the verbose information to be included in the Grafana server log you have to adjust the rendering log level to debug, configure
        # [log].filter = rendering:debug.
        ;rendering_verbose_logging =
        
        # Instruct headless browser instance whether to output its debug and error messages into running process of remote rendering service.
        # Default is false. This can be useful to enable (true) when troubleshooting.
        ;rendering_dumpio =
        
        # Additional arguments to pass to the headless browser instance. Default is --no-sandbox. The list of Chromium flags can be found
        # here (https://peter.sh/experiments/chromium-command-line-switches/). Multiple arguments is separated with comma-character.
        ;rendering_args =
        
        # You can configure the plugin to use a different browser binary instead of the pre-packaged version of Chromium.
        # Please note that this is not recommended, since you may encounter problems if the installed version of Chrome/Chromium is not
        # compatible with the plugin.
        ;rendering_chrome_bin =
        
        # Instruct how headless browser instances are created. Default is 'default' and will create a new browser instance on each request.
        # Mode 'clustered' will make sure that only a maximum of browsers/incognito pages can execute concurrently.
        # Mode 'reusable' will have one browser instance and will create a new incognito page on each request.
        ;rendering_mode =
        
        # When rendering_mode = clustered you can instruct how many browsers or incognito pages can execute concurrently. Default is 'browser'
        # and will cluster using browser instances.
        # Mode 'context' will cluster using incognito pages.
        ;rendering_clustering_mode =
        # When rendering_mode = clustered you can define maximum number of browser instances/incognito pages that can execute concurrently..
        ;rendering_clustering_max_concurrency =
        
        # Limit the maximum viewport width, height and device scale factor that can be requested.
        ;rendering_viewport_max_width =
        ;rendering_viewport_max_height =
        ;rendering_viewport_max_device_scale_factor =
        
        # Change the listening host and port of the gRPC server. Default host is 127.0.0.1 and default port is 0 and will automatically assign
        # a port not in use.
        ;grpc_host =
        ;grpc_port =
        
        [enterprise]
        # Path to a valid Grafana Enterprise license.jwt file
        ;license_path =
        
        [feature_toggles]
        # enable features, separated by spaces
        ;enable =
    

    3、修改grafana-deployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: grafana
      name: grafana
      namespace: monitoring
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: grafana
      template:
        metadata:
          labels:
            app: grafana
        spec:
          containers:
          - env: []
            image: grafana/grafana:7.1.0
            name: grafana
            ports:
            - containerPort: 3000
              name: http
            readinessProbe:
              httpGet:
                path: /api/health
                port: http
            resources:
              limits:
                cpu: 2000m
                memory: 2000Mi
              requests:
                cpu: 100m
                memory: 100Mi
            volumeMounts:
            - mountPath: /var/lib/grafana
              name: grafana-storage
              readOnly: false
            - mountPath: /etc/grafana/ldap.toml
              name: grafana-ldap-grafana
              subPath: ldap.toml
              readOnly: false
            - mountPath: /etc/grafana/grafana.ini
              name: grafana-ini
              subPath: grafana.ini
              readOnly: false
            - mountPath: /etc/grafana/provisioning/datasources
              name: grafana-datasources
              readOnly: false
            - mountPath: /etc/grafana/provisioning/dashboards
              name: grafana-dashboards
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/apiserver
              name: grafana-dashboard-apiserver
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/cluster-total
              name: grafana-dashboard-cluster-total
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/controller-manager
              name: grafana-dashboard-controller-manager
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/k8s-resources-cluster
              name: grafana-dashboard-k8s-resources-cluster
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/k8s-resources-namespace
              name: grafana-dashboard-k8s-resources-namespace
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/k8s-resources-node
              name: grafana-dashboard-k8s-resources-node
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/k8s-resources-pod
              name: grafana-dashboard-k8s-resources-pod
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/k8s-resources-workload
              name: grafana-dashboard-k8s-resources-workload
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/k8s-resources-workloads-namespace
              name: grafana-dashboard-k8s-resources-workloads-namespace
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/kubelet
              name: grafana-dashboard-kubelet
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/namespace-by-pod
              name: grafana-dashboard-namespace-by-pod
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/namespace-by-workload
              name: grafana-dashboard-namespace-by-workload
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/node-cluster-rsrc-use
              name: grafana-dashboard-node-cluster-rsrc-use
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/node-rsrc-use
              name: grafana-dashboard-node-rsrc-use
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/nodes
              name: grafana-dashboard-nodes
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/persistentvolumesusage
              name: grafana-dashboard-persistentvolumesusage
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/pod-total
              name: grafana-dashboard-pod-total
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/prometheus-remote-write
              name: grafana-dashboard-prometheus-remote-write
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/prometheus
              name: grafana-dashboard-prometheus
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/proxy
              name: grafana-dashboard-proxy
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/scheduler
              name: grafana-dashboard-scheduler
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/statefulset
              name: grafana-dashboard-statefulset
              readOnly: false
            - mountPath: /grafana-dashboard-definitions/0/workload-total
              name: grafana-dashboard-workload-total
              readOnly: false
          nodeSelector:
            beta.kubernetes.io/os: linux
          securityContext:
            runAsNonRoot: true
            runAsUser: 65534
          serviceAccountName: grafana
          volumes:
          #- emptyDir: {}
          #  name: grafana-storage
          - name: grafana-storage
            persistentVolumeClaim:
              claimName: grafana-data-db
          - name: grafana-datasources
            secret:
              secretName: grafana-datasources
          - configMap:
              name: grafana-dashboards
            name: grafana-dashboards
          - configMap:
              name: grafana-dashboard-apiserver
            name: grafana-dashboard-apiserver
          - configMap:
              name: grafana-dashboard-cluster-total
            name: grafana-dashboard-cluster-total
          - configMap:
              name: grafana-dashboard-controller-manager
            name: grafana-dashboard-controller-manager
          - configMap:
              name: grafana-dashboard-k8s-resources-cluster
            name: grafana-dashboard-k8s-resources-cluster
          - configMap:
              name: grafana-dashboard-k8s-resources-namespace
            name: grafana-dashboard-k8s-resources-namespace
          - configMap:
              name: grafana-dashboard-k8s-resources-node
            name: grafana-dashboard-k8s-resources-node
          - configMap:
              name: grafana-dashboard-k8s-resources-pod
            name: grafana-dashboard-k8s-resources-pod
          - configMap:
              name: grafana-dashboard-k8s-resources-workload
            name: grafana-dashboard-k8s-resources-workload
          - configMap:
              name: grafana-dashboard-k8s-resources-workloads-namespace
            name: grafana-dashboard-k8s-resources-workloads-namespace
          - configMap:
              name: grafana-dashboard-kubelet
            name: grafana-dashboard-kubelet
          - configMap:
              name: grafana-dashboard-namespace-by-pod
            name: grafana-dashboard-namespace-by-pod
          - configMap:
              name: grafana-dashboard-namespace-by-workload
            name: grafana-dashboard-namespace-by-workload
          - configMap:
              name: grafana-dashboard-node-cluster-rsrc-use
            name: grafana-dashboard-node-cluster-rsrc-use
          - configMap:
              name: grafana-dashboard-node-rsrc-use
            name: grafana-dashboard-node-rsrc-use
          - configMap:
              name: grafana-dashboard-nodes
            name: grafana-dashboard-nodes
          - configMap:
              name: grafana-dashboard-persistentvolumesusage
            name: grafana-dashboard-persistentvolumesusage
          - configMap:
              name: grafana-dashboard-pod-total
            name: grafana-dashboard-pod-total
          - configMap:
              name: grafana-dashboard-prometheus-remote-write
            name: grafana-dashboard-prometheus-remote-write
          - configMap:
              name: grafana-dashboard-prometheus
            name: grafana-dashboard-prometheus
          - configMap:
              name: grafana-dashboard-proxy
            name: grafana-dashboard-proxy
          - configMap:
              name: grafana-dashboard-scheduler
            name: grafana-dashboard-scheduler
          - configMap:
              name: grafana-dashboard-statefulset
            name: grafana-dashboard-statefulset
          - configMap:
              name: grafana-dashboard-workload-total
            name: grafana-dashboard-workload-total
          - configMap:
              name: ldap-config
            name: grafana-ldap-grafana 
          - configMap:
              name: grafana-config-ini
            name: grafana-ini 
    

    增加的部分就是把前面2个步骤创建的configmap以subPath的模式挂载进去,增加的部分如下所示:

    - mountPath: /etc/grafana/ldap.toml
      name: grafana-ldap-grafana
      subPath: ldap.toml
      readOnly: false
    - mountPath: /etc/grafana/grafana.ini
      name: grafana-ini
      subPath: grafana.ini
      readOnly: false
    
    - configMap:
        name: ldap-config
       name: grafana-ldap-grafana 
    - configMap:
        name: grafana-config-ini
      name: grafana-ini
    
  • 相关阅读:
    fused multiply and add
    gcc优化选项解析
    gcc的搜索路径,头文件和库
    使用-Wl直接向ld传递参数
    ldd LD_TRACE_LOADED_OBJECTS
    linux下库的使用
    在RedHat 5下安装Oracle 10g详解(转)
    Centos下安装X Window+GNOME Desktop+FreeNX
    oracle exp direct 执行机制
    详解Oracle的unlimited tablespace系统权限
  • 原文地址:https://www.cnblogs.com/uglyliu/p/14254893.html
Copyright © 2011-2022 走看看